Bash:在多个内核上运行同一程序

Bash:在多个内核上运行同一程序,第1张

Bash:在多个内核上运行同一程序

你可以用

for f in *.fa; do    myProgram (options) "./$f" "./$f.tmp" &donewait

这将并行启动所有工作,然后等到 所有工作 完成后再继续。如果您的工作多于核心,那么您将启动所有这些工作,并让您的OS调度程序担心换出进程

一种修改是一次启动10个作业

count=0for f in *.fa; do    myProgram (options) "./$f" "./$f.tmp" &    (( count ++ )) if (( count = 10 )); then        wait        count=0    fidone

但这不如使用,

parallel
因为您无法在旧工作完成时开始新工作,并且在设法启动10个工作之前也无法检测到旧工作是否完成。
wait
允许您等待单个特定进程或_所有_ 后台进程,但不会让您知道任意一组后台进程的完成时间。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5019103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存