如何使用python在多个cpu内核上运行外部程序?

时间:2018-10-20 17:10:40

标签: python multicore os.system cpu-cores

我正在尝试使用python在外部程序CalculiX上运行多个模拟。我知道python脚本不能在多个cpu内核上运行,但是CalculiX是我通过os.system命令运行的外部程序。 我需要在多个内核上运行仿真以节省时间。

    os.system("ccx WireBend")

这是我用来运行外部程序的方法,它可以正常工作,因为只使用一个cpu即可完成计算,因此只需要花费很多时间。 那么,如何在多个内核上运行ccx? 我正在使用python 3.6

2 个答案:

答案 0 :(得分:0)

使用subprocess.Popen可以异步打开子流程(即,控件将在子流程完成之前返回python)。

多次使用它来生成多个子进程,然后检查每个进程是否已终止。

答案 1 :(得分:0)

您可以在运行程序的位置将环境变量设置到终端中,或在脚本中将其设置如下:

import os
os.environ['OMP_NUM_THREADS']
OR
os.environ['OMP_NUM_THREADS'] = '10'

然后运行

os.system("ccx WireBend")