Shell脚本,并行和多线程?

时间:2015-05-08 18:41:40

标签: linux multithreading shell parallel-processing

我有一个shell脚本,它实际上有文件/文件夹位置和运行javascript的命令。我在一个拥有8个处理器和每个处理器4个CPU内核的Linux集群上运行这项工作。我想在多个处理器上运行它,同时每个作业访问多个线程以减少脚本的总运行时间。我的问题是: 这样的事情可能吗?如果是,那么这个命令或代码片段会是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用GNU parallel。例如:

parallel "zcat {} | bzip2 >{.}.bz2 && rm {}" ::: *.gz

"这将使用bzip2重新压缩当前目录中名称以.gz结尾的所有文件,并行运行每个CPU(-j + 0)一个作业。"

如果您没有并行,那么您可以通过以下几种方式推出自己的协调员:

  1. 使用make -j
  2. 使用bash内置背景(&
  3. 您可以使用ssh在远程计算机上运行命令,并且可以使用nfs或其类似的网络存储。无论如何,您需要考虑如何对作业进行分区,以便他们可以合作,并根据需要合并结果。