i有一个数组(称为 data_inputs
),该数组包含数百个天文学图像文件的名称。然后操纵这些图像。我的代码工作,需要几秒钟来处理每个图像。但是,它一次只能执行一个图像,因为我正在通过循环的运行数组:
for name in data_inputs:
sci=fits.open(name+'.fits')
#image is manipulated
没有理由为什么我必须在其他任何之前修改图像,因此可以在我的计算机上使用所有4个内核,每个核心在其他图像上通过for循环运行?
我已经阅读了有关多处理
模块,但我不确定如何在我的情况下实现它。
我热衷于获得多处理
工作,因为最终我必须在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
关于python - 多处理for循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20190668/