Я пытаюсь использовать библиотеку многопроцессорной обработки Pool of worker python3 для ускорения задачи с интенсивным использованием ЦП. Я замечаю, что независимо от количества рабочих в моем пуле, я всегда получаю следующую ошибку:
BrokenPipeError: [Errno 32] Broken pipe
Код что приводит к этой ошибке:
def save_result(rincL):
#Save results here
if __name__ == '__main__':
p = Pool(8)
allProcesses = []
for i in range(60):
rincL = RINC_L(2, X_train, y_train[:,i].ravel(), X_test, y_test[:,i].ravel(), 6, i)
allProcesses.append(p.apply_async(rincL.RINC_N, [0]))
#Moved the two following lines based on suggestions in the comment
#Still getting the same error.
#p.close()
#p.join()
for process in allProcesses:
save_result(process.get())
time.sleep(1)
p.close()
p.join()
Я также заметил, что через некоторое время эта программа работает. Количество процессов увеличивается с 8 до очень большого числа. Создается около 30 процессов: введите описание изображения здесь