将python多处理池中的工作线程限制为每个1个CPU

将python多处理池中的工作线程限制为每个1个CPU,python,python-3.x,python-multiprocessing,cpu-usage,Python,Python 3.x,Python Multiprocessing,Cpu Usage,我正在使用多处理池在远程linux服务器上并行运行python3脚本,看起来像这样: 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

我正在使用多处理池在远程linux服务器上并行运行python3脚本,看起来像这样:

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个工作进程的CPU百分比都超过100%,通常为500%-600%。我知道这是以单个CPU的百分比表示的,这意味着每个工人都在使用多个内核。服务器总共有32个CPU(4个插槽,每个插槽4个内核,每个内核2个线程),但我只允许使用6个(服务器由少数人共享)


有没有办法将每个工作进程限制为1个CPU?

您使用的是Linux吗?@OlvinRoght哎呀,确实是Linux。我编辑了这个问题。谢谢我认为GIL已经将单个工作进程限制为1个CPU。然而,一些用C实现的Python库允许对单个进程使用多个CPU。您使用过这些库中的任何一个吗?请检查链接;)证明这一点,将其放入
defsomefunc(day)
中,查看是否获得超过
6
的不同进程id。