Shell 并行构建/部署

Shell 并行构建/部署,shell,parallel-processing,Shell,Parallel Processing,我不确定该在上面贴什么标签: 我有一个Xcode项目,有多个方案,可以输出多个应用程序。我有一个脚本archive\u all.sh,它通过调用archive.sh来设置一切,以构建和部署(测试飞行)每个应用程序(目前为13个)。我试图(愚蠢的我)做:sh archive.sh&在循环中,但我的笔记本电脑很难处理它,我计划在未来部署13个以上的应用程序 有没有一种方法,最好是在shell脚本中设置要调用的可执行文件队列?我的笔记本电脑可能一次可以处理3-4次调用archive.sh。尝试一下同时

我不确定该在上面贴什么标签:

我有一个Xcode项目,有多个方案,可以输出多个应用程序。我有一个脚本
archive\u all.sh
,它通过调用
archive.sh
来设置一切,以构建和部署(测试飞行)每个应用程序(目前为13个)。我试图(愚蠢的我)做:
sh archive.sh&
在循环中,但我的笔记本电脑很难处理它,我计划在未来部署13个以上的应用程序


有没有一种方法,最好是在shell脚本中设置要调用的可执行文件队列?我的笔记本电脑可能一次可以处理3-4次调用
archive.sh

尝试一下同时支持Linux和Mac OS X的操作系统。它将自动检测CPU中的内核数量,并在这些内核上高效地执行任务。

GNU Parallel适用于此类作业

parallel archive.sh {} ::: app1 app2 ... app15
这将通过每个CPU核心运行一个应用程序来为每个应用程序
archive.sh

GNU Parallel是一个通用的并行程序,它使得在同一台机器上或在您有ssh访问权的多台机器上并行运行作业变得非常容易

如果您有32个不同的作业要在4个CPU上运行,并行化的直接方法是在每个CPU上运行8个作业:

GNU Parallel会在完成时生成一个新进程—使CPU保持活动状态,从而节省时间:

安装

如果您的发行版没有打包GNU Parallel,那么您可以进行个人安装,而不需要root访问。通过执行以下操作,可在10秒内完成:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
有关其他安装选项,请参阅

了解更多信息

请参阅更多示例:

观看介绍视频:

浏览本教程:

注册电子邮件列表以获得支持: