首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用股票Linux工具最小的“任务队列”来利用多核CPU

使用股票Linux工具最小的“任务队列”来利用多核CPU
EN

Stack Overflow用户
提问于 2009-05-06 23:14:57
回答 8查看 3.7K关注 0票数 7

使用bash和常用工具为Linux构建最小任务队列系统的最佳/最简单方法是什么?

我有一个9'000行的文件,每一行都有一个bash命令行,命令是完全独立的。

代码语言:javascript
复制
command 1 > Logs/1.log
command 2 > Logs/2.log
command 3 > Logs/3.log
...

我的盒子有多个核心,我想同时执行X任务。我在网上搜索了一种很好的方法。显然,很多人都有这个问题,但到目前为止还没有一个很好的解决办法。

如果该解决方案具有以下特性,那就太好了:

  • 可以解释多个命令(例如command; command)
  • 可以解释行上的流重定向(例如,ls > /tmp/ls.txt)
  • 只使用常用的Linux工具。

如果它工作在其他Unix-克隆没有太异国情调的要求。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-05-06 23:23:38

您能将命令列表转换为Makefile吗?如果是这样的话,您可以只运行"make -j X“。

票数 15
EN

Stack Overflow用户

发布于 2010-06-10 20:09:18

GNU并行http://www.gnu.org/software/parallel/是一种比PPSS更通用的并行化工具。

如果runfile包含:

代码语言:javascript
复制
command 1 > Logs/1.log
command 2 > Logs/2.log
command 3 > Logs/3.log

你可以:

代码语言:javascript
复制
cat runfile | parallel -j+0

它将运行每个CPU核心的一个命令。

如果您的命令像上面这样简单,您甚至不需要runfile,但是可以:

代码语言:javascript
复制
seq 1 3 | parallel -j+0 'command {} > Logs/{}.log'

如果您有更多的计算机可以进行处理,您可能需要查看GNU并行的--sshlogin和--trc选项。

票数 11
EN

Stack Overflow用户

发布于 2009-05-06 23:17:48

好的,在这里发布了这个问题之后,我发现了以下看起来很有前途的项目:ppss

编辑:不完全是我想要的,PPSS专注于处理“目录A中的所有文件”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/832253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档