我有一个shell脚本,它实际上有文件/文件夹位置和运行javascript的命令。我在一个拥有8个处理器和每个处理器4个CPU内核的Linux集群上运行这项工作。我想在多个处理器上运行它,同时每个作业访问多个线程以减少脚本的总运行时间。我的问题是: 这样的事情可能吗?如果是,那么这个命令或代码片段会是什么?
答案 0 :(得分:0)
您可以使用GNU parallel
。例如:
parallel "zcat {} | bzip2 >{.}.bz2 && rm {}" ::: *.gz
"这将使用bzip2重新压缩当前目录中名称以.gz结尾的所有文件,并行运行每个CPU(-j + 0)一个作业。"
如果您没有并行,那么您可以通过以下几种方式推出自己的协调员:
make -j
&
)您可以使用ssh
在远程计算机上运行命令,并且可以使用nfs
或其类似的网络存储。无论如何,您需要考虑如何对作业进行分区,以便他们可以合作,并根据需要合并结果。