linux - Shell脚本,并行和多线程?

标签 linux multithreading shell parallel-processing

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

最佳答案

您可以使用 GNU parallel .示例:

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

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


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

  1. 使用make -j
  2. 使用 bash 内置后台(&)

您可以使用 ssh 在远程机器上运行命令,您可以使用 nfs 或类似的网络存储。无论您如何做,您都需要考虑如何划分您的工作,以便它们能够合作,并根据需要合并结果。

关于linux - Shell脚本,并行和多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30130745/

相关文章:

Android:在 Linux 中调试 Samsung Galaxy Tab 10.1

C++ qt编程,windows和linux

linux - Bash 自动获取 docker 镜像 ID

java - Jersey Rest API立即返回,长任务继续

linux - 如何在备份脚本中实现进度条

c - 信号量和共享内存

java - 对单个进程集体使用多个线程

java - 如果 FX 线程在 Java 中终止,则终止线程的最有效方法

linux - Snmpwalk Linux Bash 不返回数组

linux - 我的 sed 命令是否正确解析来自 JSON 响应的特定键的值