【问题标题】:GNU Parallel - Multiple argumentsGNU Parallel - 多个参数
【发布时间】:2016-10-18 02:48:19
【问题描述】:

使用 GNU parallel,我正在尝试运行一个子采样脚本,该脚本输入两个文件并输出一个特定的子采样文件。我正在使用这个命令:

parallel -j+0 --eta python sub_sample_.2.py ::: file1 file2 ::: file3 file4 ::: file5 file6

但是命令行上没有ETA,即:

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
ETA: 0s Left 8 AVG:0.00s local:8/0/1005/0.0

也只处理前四个文件,而不处理后两个file5file6

【问题讨论】:

    标签: python shell gnu-parallel subsampling


    【解决方案1】:
    parallel -j+0 --eta python sub_sample_.2.py ::: file1 file2 ::: file3 file4 ::: file5 file6
    

    2*2*2 = 总共 8 个工作。

    Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
    ETA: 0s Left 8 AVG:0.00s local:8/0/1005/0.0
    

    ETA 是根据已完成作业的运行时间计算得出的。这里还没有工作完成,所以没有 ETA。您还可以看到所有 8 个作业都在您的本地系统上运行,因此您可能有 8 个或更多内核。

    也只处理前四个文件,而不处理后两个file5file6

    这样写我怀疑你可能不知道 multiple ::: 做什么。运行 --dryrun 看看这是否是你所期望的。

    我的猜测是你真正想要运行的是(需要版本 20160422 或更高版本):

    parallel --eta python sub_sample_.2.py ::: file1 file3 file5 :::+ file2 file4 file6
    

    或者:

    parallel --xapply --eta python sub_sample_.2.py ::: file1 file3 file5 ::: file2 file4 file6
    

    【讨论】:

    • 谢谢。我不知道必须完成工作才能提供 ETA。需要说明的是,使用 :::+ 与使用 --xapply 相同吗?
    • @Labrat :::+ 是一种更高级的 --xapply,但在这种情况下它们的作用相同。
    • 如果我使用的命令带有输出和输入参数,例如: samtools sort -n 我将如何并行处理?
    • 并行 samtools sort -n {}.out {} ::: input*files
    • 最后一件事。尝试运行时:parallel --eta htseq-count -m intersection-nonempty -i Name -s reverse -f bam {} >{}_htseq_Counts.txt 2>{}_OUTPUT_WARNINGS_.txt ::: *.bam它正在将 eta 写入“{}_OUTPUT_WARNINGS_.txt”,并将所有计数写入“{}_htseq_Counts.txt”,而不是单独的文件。有什么帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多