具有最大进程数的并行Bash脚本
Parallelize Bash script with maximum number of processes让我们说我在Bash中有一个循环:
天真的方法似乎是:
这将一次运行所有 您如何编写此循环,以便总是同时运行X个 根据您要执行的操作,xargs也可以提供帮助(此处:使用pdf2ps转换文档):
来自文档:
使用GNU Parallel http://www.gnu.org/software/parallel/,您可以编写:
GNU Parallel还支持在远程计算机上运行作业。这将在远程计算机上的每个CPU内核上运行一个内核-即使它们具有不同数量的内核:
一个更高级的示例:在这里,我们列出了要运行my_script的文件。文件具有扩展名(也许是.webp)。我们希望将my_script的输出放在basename.out中的文件旁边(例如foo.webp-> foo.out)。我们希望为计算机具有的每个核心运行一次my_script,我们也希望在本地计算机上运行它。对于远程计算机,我们希望将要处理的文件传输到给定的计算机。当my_script完成时,我们希望将foo.out传输回去,然后再从远程计算机中删除foo.webp和foo.out:
GNU Parallel确保每个作业的输出不会混合,因此您可以将输出用作另一个程序的输入:
有关更多示例,请参见视频:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
这里是可以插入.bashrc并用于日常一个班轮的替代解决方案:
要使用它,必须要做的就是将
使用 使用Makefile代替普通的bash,然后使用 或者您可以使用
如果您需要存储作业的结果,则将其结果分配给变量。在 也许尝试使用并行化实用程序而不是重写循环?我是xjobs的忠实粉丝。通常,在设置新的数据库服务器时,我一直使用xjobs在网络上批量复制文件。 如果您熟悉
然后运行
最多可并行运行NUMBER个命令。 虽然可能无法在
没有这些缺陷的另一个近似值是:
请注意,此作业很容易适应,还可以在每个作业结束时检查其退出代码,因此您可以警告用户作业失败,或者根据失败的作业数量为 此代码的问题仅在于:
解决最后一个问题的解决方案必须使用 在 bash功能:
使用:
我从事的项目使用wait命令来控制并行shell(实际上是ksh)进程。为了解决您对IO的担忧,在现代OS上,并行执行实际上可能会提高效率。如果所有进程都读取磁盘上的相同块,则只有第一个进程必须运行物理硬件。其他进程通常将能够从内存中OS的磁盘缓存中检索该块。显然,从内存中读取要比从磁盘中读取快几个数量级。同样,该优点不需要更改编码。 n 对于大多数目的来说这可能已经足够了,但并不是最佳选择。
n 您可以使用一个简单的嵌套for循环(用下面的N和M替换适当的整数):
这将在M轮中执行do_something N * M次,每轮并行执行N个作业。您可以使N等于您拥有的CPU数量。 n $ DOMAINS = "命令中某些域的列表"
完成 Ndomains = 对于$(seq 1 1 $ Ndomains)中的i 在此概念中, 将用于并行化。重要的是评估的最后一行是\\' |
相关内容
-
英特尔的所有时间最认真的i74790k处理器
英特尔的所有时间最认真的i74790k处理器,,早在上个月开始,对英...
-
英特尔的核心i34130处理器的基本情况及评价
英特尔的核心i34130处理器的基本情况及评价,,Haswell虽然推出...
-
最新的AMD低端APUa46300盒装处理器上市
最新的AMD低端APUa46300盒装处理器上市,,APU处理器,AMD的APU系...
-
处理器计划怎么设置|处理器计划怎么设置的
处理器计划怎么设置|处理器计划怎么设置的,,1. 处理器计划怎么...
-
高通骁龙695处理器排名第几
高通骁龙695处理器排名第几,主频,麒麟,Red米6A屏幕在屏幕周围...
-
IE脚本错误如何做Web脚本错误解决技巧
IE脚本错误如何做Web脚本错误解决技巧,,这个问题是由于这样的...
-
苹果笔记本 处理器 型号有哪些
苹果笔记本 处理器 型号有哪些,处理器,苹果,笔记本,之前是不同...
-
哪个牌子的电脑处理器好?
哪个牌子的电脑处理器好?,牌子,处理器,哪个,目前电脑处理器主要...
-
兼容性问题和DIY攒机6CPU处理器的未来发展趋势
兼容性问题和DIY攒机6CPU处理器的未来发展趋势,,虽然2010 DIY...
-
满足游戏和设计要求1200元i5-3450全能四核心处
满足游戏和设计要求1200元i5-3450全能四核心处理器推荐,,英特...
-
英特尔取消了45nmCPU+GPU处理器直接在32nm
英特尔取消了45nmCPU+GPU处理器直接在32nm,,在谣言被证实今天:...
-
AMDPhenomII处理器速度再新增加3
AMDPhenomII处理器速度再新增加3,,目前,AMD的处理器最高端型号P...
-
e5双cpu电脑功耗|e5功耗低的处理器
e5双cpu电脑功耗|e5功耗低的处理器,,1. e5功耗低的处理器两个...
-
Kaveri的华丽a107700k处理器售1030元
Kaveri的华丽a107700k处理器售1030元,,AMD今年推出的新一代APU...
-
视频循环播放怎么设置|苹果相册视频循环播放怎
视频循环播放怎么设置|苹果相册视频循环播放怎么设置,,1. 苹果...