小编use*_*922的帖子

如何判断 Python 的 Multiprocessing 模块是否正在使用我的所有内核进行计算?

我有一些来自这样的教程的简单代码:

from multiprocessing import Process, Lock
import os

def f(i):
    print 'hello world', i
    print 'parent process:', os.getppid()
    print 'process id:', os.getpid(), "\n\n"

if __name__ == '__main__':
    lock = Lock()

    for num in range(10):
        p = Process(target=f, args=(num,))
        p.start()
    p.join()
Run Code Online (Sandbox Code Playgroud)

我怎么知道这是否使用了我的两个内核?目前我正在运行 Ubuntu 11.04 w/ 3 GB RAM 和 Intel Core 2 Duo @ 2.2GHz。

我正在学习的项目将被转移到某人办公室的一台巨大机器上,其马力比我目前可以使用的要大得多。具体来说,处理器将至少有 4 个内核,我希望确保我的算法能够自动检测和利用所有可用的内核。此外,该系统可能不是 Linux,那么在操作系统之间移动多处理模块时是否有任何常见的错误需要注意?

哦,是的,脚本的输出也如下所示:

hello world 0
parent process: 29362
process id: 29363 


hello world 1
parent process: 29362
process id: 29364 


hello world 2 …
Run Code Online (Sandbox Code Playgroud)

python porting module multiprocessing cpu-cores

5
推荐指数
1
解决办法
5014
查看次数

标签 统计

cpu-cores ×1

module ×1

multiprocessing ×1

porting ×1

python ×1