Ограничьте работников в многопроцессорном пуле Python до 1 ЦП каждый - PullRequest
0 голосов
/ 03 мая 2019

Я параллельно запускаю скрипт python3 на удаленном сервере Linux с помощью многопроцессорного пула, который выглядит примерно так:

import multiprocessing

def somefunc(day):
    #do something
    print(day)


if __name__ == '__main__':
    pool = multiprocessing.Pool(6) #6 worker processes
    days = range(1,32) #iterate over 31 days (1 month)
    pool.map(somefunc, days)
    pool.close()
    pool.join()

Когда я запускаю top, все 6 рабочих процессов показывают процент загрузки процессораболее 100%, обычно 500% -600%.Я знаю, что это показано в процентах от одного процессора, что означает, что каждый работник использует несколько ядер.На сервере всего 32 ЦП (4 сокета, 4 ядра на сокет, 2 потока на ядро), но мне разрешено использовать только 6 (сервер используется несколькими людьми).

Есть ли способограничить каждый рабочий процесс одним процессором?

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