Shell,并行运行四个进程

标签 shell unix ubuntu

目前,我正忙于高效地运行耗时的模拟。目的是并行运行 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/

相关文章:

linux - 我需要从两个文本文件中读取行并通过 shell 导入到一个新文件

linux - 如何使用完整路径列出 Linux 目录中的所有文件,这些文件包含 root 用户和其他用户使用的基本命令和 shell?

ubuntu - 无法将文件从本地机器 scp 到 vagrant

python - 在 PyCharm 中使用子进程执行 sudo 命令

c - 一分钟 while 循环

linux - 用于打印具有分隔符的变量的 Shell 脚本

Unix 变量最佳实践 : Should variable containing a path end in a slash

php - Codeigniter 扩展核心类 'My_Model' 在 unix 上找不到,但在 Windows 中正常?

linux - OpenNMS 安装失败并出现错误,预期稳定但得到了 opennms-23,是否有可能去解决它?

shell - Oozie Shell操作输出数据超出其限制[2048]