当前位置: 首页 > 面试题库 >

多处理for循环?

鲁永福
2023-03-14
问题内容

我有一个数组(称为data_inputs),其中包含数百个天文学图像文件的名称。然后处理这些图像。我的代码有效,并且需要几秒钟来处理每个图像。但是,一次只能执行一张图像,因为我是通过for循环运行阵列:

for name in data_inputs:
    sci=fits.open(name+'.fits')
    #image is manipulated

没有理由我必须先修改映像,因此可以利用计算机上的所有4个内核,每个内核都通过for循环在不同的映像上运行吗?

我已经阅读了有关该multiprocessing模块的信息,但是不确定如何在我的情况下实现它。我热衷于multiprocessing工作,因为最终我必须在10,000幅以上的图像上运行它。


问题答案:

您可以简单地使用multiprocessing.Pool

from multiprocessing import Pool

def process_image(name):
    sci=fits.open('{}.fits'.format(name))
    <process>

if __name__ == '__main__':
    pool = Pool()                         # Create a multiprocessing Pool
    pool.map(process_image, data_inputs)  # process data_inputs iterable with pool


 类似资料:
  • 问题内容: 我使用numpy计算了向量。如何使用多核和numpy计算向量? 问题答案: 我们可以利用基于NumPy的解决方案- 将此移植以利用快速操作以及多核功能- 时间- 对于具有不同数量的内核/线程的Numexpr解决方案-

  • 问题内容: 这个问题已经在这里有了答案 : 循环内的JavaScript封闭-简单的实际示例 (44个答案) 2年前关闭。 我正在运行以下形式的事件循环: 我正在尝试显示一系列警报,显示从0到10的数字。问题是,当触发回调函数时,循环已经经历了几次迭代,并且显示了更高的值。有关如何解决此问题的任何建议? 问题答案: 在启动所有异步操作时,循环将立即运行到完成。当他们将来完成某个时间并调用其回调时,

  • 问题内容: 我试图用NodeJS编写代码,从外部API抓取数据,然后使用Mongoose在MongoDB中填充它们。在这之间,我将检查该特定对象是否已经存在于Mongo中。下面是我的代码。 我的问题是,由于NodeJS回调是并行的,因此不会按顺序调用它。我的最终结果将是这样的: 呼叫报告API console.log(长度)= 100 ^^^^^^^^^^^^^^^^^^^^^^^^^ conso

  • 本文向大家介绍DOS 批处理命令For循环命令详解,包括了DOS 批处理命令For循环命令详解的使用技巧和注意事项,需要的朋友参考一下 for命令是一种对一系列对象依次循环执行同一个或多个命令的在命令行或批处理中运行的命令,结合一些Windows管理中的程序后,其处理功能强大、应用灵活方便程度令人刮目相看。但是,其帮助信息也因此复杂往往令初学者望而生畏,这里根据本人的学习理解,把其用法分解简化,疏

  • 问题内容: 我有几个div的,,,…和要指派点击处理对他们说: 但是,我没有得到单击时的显示(就像其他所有单击一样)。我究竟做错了什么? 问题答案: 在Javascript 中的循环中创建闭包是一个常见的错误。您需要具有以下某种回调函数: 由于这个问题仍然受到关注,并且ES6也越来越受欢迎,因此我建议使用一种现代的解决方案。如果您编写ES6,则可以使用关键字,它使变量在循环本地而不是全局: 它更短

  • 我试图使用处理程序线程设置一个延迟的for循环。但是当我在for循环中设置处理程序线程时,我不能使用for循环的索引,因为它说它必须被称为final,但这也不起作用。有人知道怎么修吗?