繁体   English   中英

Python:将不同的作业提交到不同的CPU

[英]Python: Submitting different jobs to different CPUs

我有一个执行某些功能的fortran atoms.out文件。 我正在使用以下命令从python中调用该fortran文件:

values = subprocess.Popen(["./atoms.out", "./%s.klj" % test1, "./%s.out" % test1], stdout = subprocess.PIPE)

我看过Python PP ,但是我不认为这是我想要的,因为它单次使用n个CPU。

由fortran文件执行的计算不是独立的,不能与python pp一起使用

因此,我的问题是如何向多个不同的CPU提交许多作业,例如,我有:7个要在4个CPU上运行的文件。

因此,每个作业的分布为:

File1 -> CPU1
File2 -> CPU2
File3 -> CPU3
File4 -> CPU4

然后,当作业在CPU上完成时,它将被其余3个要运行的文件替换。 File1完成对CPU1它被替换File5 ,这样的工作分配将是这样的:

File5 -> CPU1
File2 -> CPU2
File3 -> CPU3
File4 -> CPU4

依此类推,直到在7个文件上运行完fortran文件为止。

使用multiprocessing.pool.ThreadPool类创建一个线程池,该线程池由四个线程组成(在您的情况下)。 提交subprocess.Popen任务使用例如游泳池pool.map 然后,Python中的四个线程将各自产生一个Fortran进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM