我正在通过GNU Parallel totorial工作。在“多个参数”部分中,有以下示例(注意:num30000 是一个文本文件,其连续行上的数字为 1 到 30,000):
为了更好的并行性,当文件结束时,GNU Parallel 可以在所有并行作业之间分配参数。
并行运行 4 个作业会将最后一行参数拆分为 4 个作业,总共有 5 个作业:
cat num30000 | parallel --jobs 4 -m echo | wc -l
输出:
5
我的问题是:为什么我们期望总共有 5 个工作?我显然错过了一点,虽然我不知道这是否重要。我预计有 4 个工作,因为 30,000 可以被 4 整除。我决定在运行以下命令后发布这个问题:
cat num30000 | parallel --jobs 4 -m echo | colrm 12
这导致:
1 2 3 4 5 6
23696 23697
25273 25274
26850 26851
28427 28428
这在我看来就像第一个echo
命令传递了前 23,695 个参数。然后,其余的被分成 4 个作业,参数计数为 1577、1577、1577 和 1574。我是否误解了并行调用应该做什么?谢谢!