当前位置:  开发笔记 > 编程语言 > 正文

使用库存Linux工具的最小"任务队列"来利用多核CPU

如何解决《使用库存Linux工具的最小"任务队列"来利用多核CPU》经验,为你挑选了2个好方法。

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

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

command 1 > Logs/1.log
command 2 > Logs/2.log
command 3 > Logs/3.log
...

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

如果解决方案具有以下功能,那将是很好的:

可以解释多个命令(例如command; command)

可以解释行上的流重定向(例如ls > /tmp/ls.txt)

仅使用常见的Linux工具

如果它适用于其他Unix克隆而没有太多异国情调的要求,则可获得奖励积分.



1> Gerald Combs..:

你可以将命令列表转换为Makefile吗?如果是这样,你可以运行"make -j X".



2> Ole Tange..:

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

如果runfile包含:

command 1 > Logs/1.log
command 2 > Logs/2.log
command 3 > Logs/3.log

你可以做:

cat runfile | parallel -j+0

每个CPU核心运行一个命令.

如果您的命令如上所述,您甚至不需要运行文件,但可以执行以下操作:

seq 1 3 | parallel -j+0 'command {} > Logs/{}.log'

如果有更多计算机可用于处理,您可能需要查看GNU Parallel的--sshlogin和--trc选项.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有