簡體   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