Почему я продолжаю получать [BrokenPipeError: [Errno 32] Broken pipe] независимо от количества рабочих в моем пуле с многопроцессорной библиотекой в ​​python3 .8? - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь использовать библиотеку многопроцессорной обработки 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 процессов: введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...