многопроцессорность продолжает вызывать "OSError: [Errno 24] Too many open files" - PullRequest
0 голосов
/ 27 мая 2020

Многие ответы говорят, что я должен поставить pool под оператором with, который у меня уже есть. Мне не удалось найти связанных тем, не говоря уже о доступных решениях.

ps: я порождаю 100 процессов (n_games в коде) на 48-ядерном ЦП в Linux.

Код в основном

with mp.Pool(mp.cpu_count() - 1) as pool:

    jobs = [pool.apply_async(
        game.start_play,
        (player1, player2, i % 2, 0)
    ) for i in range(n_games)]

    for job in jobs:
        win_cnt[job.get()] += 1

    pool.close()
    pool.join()
...