本文将详细解释如何在linux上使用并行软件ParaFly。这篇文章的内容质量很高,所以边肖会分享给大家参考。希望你看完这篇文章后有所了解。
很多时候,写信人处理多个文件,每个文件的操作都是一样的。此时,为循环串行处理编写一个可能就足够了。然而,有时串行操作需要很长时间,例如bwa mem比较。如果一个文件一个文件地处理,时间是累积的。
通常,我们在服务器上运行任务,这是多核多线程的。最坏的情况是我们自己的多核多线程笔记本,实际上可以让任务并行运行。
例如,使用htop查看,下面是一台40核服务器,需要时更好地使用空闲核,省时省力:
今天,我想介绍一个非常有用的小工具ParaFly,它可以通过简单的操作在linux上并行化任务。
首先,用anconda3安装ParaFly。
$condainstall-cbiocondaparafly
检查如何使用它:
$ para fly-h # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #需要: # # # # # # # # # # # # # # # # c str : filename,包含要执行的bash样式命令列表。#-CPU int : number _ of _ threads # # optional : #-shuffle :随机打乱命令顺序。# -failed_cmds str :filename捕获失败的命令。default(' failed commands ')#-v : simple进度监控。#-vv :进度监控的详细程度增加。# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #注:此过程创建一个名为的文件,其扩展名为.completed。这将启用恢复功能,如果重新运行,将只重新处理未成功完成的命令。
可以看到,Required参数只有两个,说明这个工具使用起来非常简单。其实只需要把要操作的命令写在一个文件中,用-c指定这个文件,用-CPU指定并行核心总数(需要同时执行几个命令)。
命令成功执行默认情况下,相应的命令行将输出到带有。文件名中已完成的后缀,未成功执行的命令将输出到FailedCommands文件。
parafly :s impleparallelunixcommandprocessingopenmpparafly providess implementoring for running predefinedlisto funixcommandsin并行使用多小时引导。失败的进程被重新捕获并报告。成功执行的进程被重新捕获。如果进程重新运行,将执行或失败的进程。
一个简单的例子:
Fastq-dump拆分三个SRA文件,这三个命令可以写入fastq_dump.txt文件:
$ catfastq _ dump . txtfastq-dump-split-3SRR 1510125.1 fastq-dump-split-3SRR 1004284.1 fastq-dump-split-3SRR 1004285.1
然后用ParaFly并行化:
$ParaFly-cfastq_dump.txt-CPU3
服务器将分别用三个内核同时运行这三个命令。飞行结果文件:
$ catfastq _ dump . txt.completedfastq-dump-split-3SRR 1004285 . 1 fastq-dump-split-3SRR 1004284 . 1 fastq-dump-split-3SRR 1510125 . 1
总的来说,ParaFly比linux附带的并行更容易学习和使用。可以考虑添加它在linux上做多任务处理,这样会大大缩短数据处理时间。
如何在linux上使用并行软件ParaFly,我希望在这里分享。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/141709.html