python 64位,多处理未使用max

时间:2019-02-22 19:29:24

标签: python multiprocessing

在使用处理器内核以最大程度地在64位python上进行多处理的过程中遇到了问题。

代码中有2个地方可以进行多处理。该代码实际上非常耗费资源。我已经尝试根据带有简单代码示例的文档在处理器池上使用“映射”功能,并且它过去还可以正常工作,我发现处理器利用率峰值达到了99%。不过,这个比例保持在20%左右,它使用了所有内核,但是不知何故它没有“推动”到最大程度。目前,它的利用率很低,它已经运行了约24小时。显然,有很多计算工作要做,但是有些事情使它步伐缓慢。好像Windows可能正在控制它(尽管服务器上没有其他运行的软件)。会是什么

    with Pool() as p: # should calculate the number of processors automatically
         p.map(fdas_and_digitize, Reports)

    with Pool() as p: # should calculate the number of processes automatically
    # put permutations of 2 reports there
         p.map(PnL, files_periods) # this executes in parallel now

平均一次内存中有260个python进程(它们完成并创建了新进程)。

这是完整的源代码 https://pastebin.com/PnPFUxeL

Windows Server 2016(64位,24核)

C:\ Users \ Administrator> python --version Python 3.7.1

enter image description here

0 个答案:

没有答案