У меня есть массив (называемый data_inputs), содержащий имена сотен файлов изображений астрономии. Затем эти изображения обрабатываются. Мой код работает и занимает несколько секунд для обработки каждого изображения. Тем не менее, это может сделать только одно изображение в то время, потому что я бегу массив через «для» петли:Python Многопроцессорный цикл for
for name in data_inputs:
sci=fits.open(name+'.fits')
#image is manipulated
Там нет причин, почему я должен изменить изображение перед любой другой, так это можно использовать все 4 ядра на моей машине, причем каждое ядро работает через цикл for на другом изображении?
Я читал о модуле многопроцессорности, но я не уверен, как его реализовать в моем случае. Я очень хочу получить многопроцессорную работу, потому что в конечном итоге мне придется запускать ее на 10000 изображений.
Возможно, было бы лучше использовать: 'pool = Pool (os.cpu_count())' Это более общий способ использования многопроцессорности. –
Примечание: 'os.cpu_count()' был добавлен в Python 3.4. Для Python 2.x используйте 'multiprocessing.cpu_count()'. – dwj
'Pool()' такой же, как 'Pool (os.cpu_count())' – Tim