在我的机器上,它有八个CPU,我希望运行一些Python文件。我只想同时使用7个CPU。是否有可能使这一过程自动化?
目前,我正在做
pids0=""
for i in $(seq 1.5 0.05 1.8); do
python3 $i &
pids0="$pids0 $!"
done
wait $pids0
pids1=""
for i in $(seq 1.85 0.05 2.0); do
python3 $i &
pids1="$pids1 $!"
done
wait $pids1每个循环的设计方式是只提交7个脚本,因此我必须编写几个for-循环来执行100次计算。如您所见,我的方法效率极低,因为我必须等待7个提交的python脚本完成运行,然后才能继续执行下一个循环。
我的目标是编写代码,在完成前一个任务之后,只要有可用的空闲CPU,就可以提交下一个任务,而无需编写几个for-循环。
PS:我在用我的办公室电脑,我不是管理员。
发布于 2022-08-02 20:18:10
您可以使用GNU并行:
parallel -j 7 python3 script.py ::: $(seq 1.5 0.05 2.0)
根据Mark Setchell的评论编辑
https://stackoverflow.com/questions/73213193
复制相似问题