Я пытался понять многопроцессорный модуль.
У меня есть 1000 файлов (общий размер = 8 ГБ), которые содержат строки, которые мне нужно отфильтровать.Я создаю два документа для каждого файла filename_good filename_bad на основе моих критериев фильтрации.
- Ниже приведен список из 1000 имен файлов
- моя процедура, которая выполняет фильтрацию и запись
- Я пытался изменить chunksize и maxtasksperchild, однако продолжаю получать ошибки памяти
- Каждый из 8 процессов не завершает свою программу перед открытием следующего файла;отсюда и ошибки памяти.
- Я бы подумал, что maxtasksperchild заставил бы каждого завершить процедуру перед тем, как ее убить и создать новый процесс.
from multiprocessing import Pool
if __name__ == '__main__' :
with Pool(processes=8, maxtasksperchild=1) as pool:
pool.map(startroutine,globs,chunksize=1)