Kle*_*oel 9 unix xargs gnu-parallel
这是一个基本问题。我很好奇 xargs 和 gnu parallel 在并行化代码时有何不同?
是否存在您会使用其中一种而不是另一种的用例?
我问这个问题是因为我已经看到了并行化问题的答案,其中使用任何一种工具都被社区认为是可以接受的。
一些差异包含在: https: //www.gnu.org/software/parallel/parallel_alternatives.html#differences- Between-xargs-and-gnu-parallel
Tl;dr:xargs 更快,因为几乎没有开销(每作业约 0.3 毫秒,而 GNU Parallel 的每作业约 3 毫秒)。GNU Parallel 更安全,因为它采取了各种预防措施,因此您无需担心(例如,并行运行的两个作业的输出不会混合)。GNU Parallel 具有许多 xargs 所没有的功能。GNU Parallel 需要 Perl,而 xargs 不需要。xargs 无处不在,GNU Parallel 要求您使用--embed
以确保它无处不在。
所以一般来说:如果主要关心的是避免开销(例如,如果您的作业需要几毫秒来运行每个)或避免安装 Perl(例如,如果您的系统是嵌入式的,因此资源紧张),那么使用 xargs(并采取相关的预防措施取决于您的输入/输出)。
全面披露:我对 GNU Parallel 拥有既得利益。
归档时间: |
|
查看次数: |
3837 次 |
最近记录: |