目前,我正忙于高效地运行耗时的模拟。目的是并行运行 4 个模拟,因为它是一个单线程应用程序和一个四核系统。我必须改变 shell 脚本:
./sim -r 1 &
./sim -r 2 &
./sim -r 3 &
./sim -r 4 &
wait
./sim -r 5 &
./sim -r 6 &
./sim -r 7 &
./sim -r 8 &
wait
... (another 112 jobs)
使用此代码会一次又一次地等待。我还尝试将任务分成四个脚本并运行每个脚本,结果是一个脚本完成了,而另一个脚本完成了大约 30% 的剩余工作。我无法预测模拟需要多长时间。
有什么建议可以随时运行 4 个模拟吗?
最佳答案
安装 moreutils
在 Ubuntu 中打包,然后使用 parallel
效用:
parallel -j 4 ./sim -r -- 1 2 3 4 5 6 7 8 ...
关于Shell,并行运行四个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19747644/