Clara Parabricks v4.4.0

最佳性能

当为其提供所有必需的计算资源时,NVIDIA Parabricks 软件可以提供非常高的性能。它应满足安装要求部分中的所有要求。以下是一些示例,说明如何使 Parabricks 软件发挥其最佳性能。

有关最低硬件要求,请参阅硬件要求部分。

有关最低软件要求,请参阅软件要求部分。

NVIDIA Parabricks 软件的目标是为生物信息学和基因组分析获得最高性能。您可以调整一些关键的基本系统选项以实现最佳性能。

使用快速 SSD

Parabricks 软件使用两种类型的文件

  • 用户指定的输入/输出文件

  • 执行期间创建并在运行结束时删除的临时文件

当两种类型的文件都位于快速本地 SSD 上时,可实现最佳性能。如果不可能,您可以将输入/输出文件放在快速网络存储设备上,并将临时文件放在本地 SSD 上,使用 --tmp-dir 选项。

注意

测试表明,对于输入/输出文件,您可以使用最多 4 个 GPU,并且仍然可以通过 Lustre 网络获得良好的性能。如果您计划使用超过 4 个 GPU,我们强烈建议对所有类型的文件使用本地 SSD。

DGX 用户

DGX 配备 SSD,通常挂载在 /raid 上。使用此磁盘,并将此磁盘上的目录用作 --tmp-dir。对于初始测试,您甚至可以将输入文件复制到此磁盘以消除性能的可变性。

在某些情况下,已发现透明大页支持 (THP) 可以提高性能。考虑启用 THP 并在基准测试用例中测试性能。

指定要使用的 GPU

您可以使用命令行选项 --num-gpus N 为那些使用 GPU 的工具选择要运行的 GPU 数量。使用此选项,将仅使用 nvidia-smi 输出中列出的前 N 个 GPU。

要使用特定的 GPU,请设置环境变量 NVIDIA_VISIBLE_DEVICES。GPU 从零开始编号。例如,此命令将仅使用第二个(GPU #1)和第四个(GPU #3)GPU

复制
已复制!
            

$ NVIDIA_VISIBLE_DEVICES="1,3" pbrun fq2bam --num-gpus 2 --ref Ref.fa --in-fq S1_1.fastq.gz --in-fq S1_2.fastq.gz

本节详细介绍了特定于各个工具的指南。

Germline Pipeline 的最佳性能

在 H100 DGX 上,germline pipeline 通常在十分钟内运行。

复制
已复制!
            

$ # This command assumes all the inputs are in INPUT_DIR and all the outputs go to OUTPUT_DIR. docker run --rm --gpus all --volume INPUT_DIR:/workdir --volume OUTPUT_DIR:/outputdir \ --workdir /workdir \ --env TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=268435456 \ nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun germline \ --ref /workdir/Homo_sapiens_assembly38.fasta \ --in-fq /workdir/fastq1.gz /workdir/fastq2.gz \ --out-bam /outputdir/fq2bam_output.bam \ --tmp-dir /workdir \ --bwa-cpu-thread-pool 16 \ --out-variants /outputdir/out.vcf \ --run-partition \ --read-from-tmp-dir \ --gpusort \ --gpuwrite \ --keep-tmp

Deepvariant Germline Pipeline 的最佳性能

复制
已复制!
            

$ # This command assumes all the inputs are in INPUT_DIR and all the outputs go to OUTPUT_DIR. docker run --rm --gpus all --volume INPUT_DIR:/workdir --volume OUTPUT_DIR:/outputdir \ --workdir /workdir \ --env TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=268435456 \ nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun deepvariant_germline \ --ref /workdir/Homo_sapiens_assembly38.fasta \ --in-fq /workdir/fastq1.gz /workdir/fastq2.gz \ --out-bam /outputdir/fq2bam_output.bam \ --tmp-dir /workdir \ --bwa-cpu-thread-pool 16 \ --out-variants /outputdir/out.vcf \ --run-partition \ --read-from-tmp-dir \ --num-streams-per-gpu 4 \ --gpusort \ --gpuwrite \ --keep-tmp

PacBio Germline Pipeline 的最佳性能

复制
已复制!
            

$ # This command assumes all the inputs are in INPUT_DIR and all the outputs go to OUTPUT_DIR. docker run --rm --gpus all --volume INPUT_DIR:/workdir --volume OUTPUT_DIR:/outputdir \ --workdir /workdir --env TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=268435456 nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun pacbio_germline \ --ref /workdir/${REFERENCE_FILE} \ --in-fq /workdir/${INPUT_FASTQ} \ --out-bam /outputdir/${OUTPUT_BAM} \ --out-variants /outputdir/out.vcf --num-chaining-threads 3 \ --alignment-large-pair-size 5000 \ --process-large-alignments-on-cpu \ --num-alignment-threads-per-gpu 8 \ --num-alignment-device-mem-buffers 8 \ --run-partition \ --read-from-tmp-dir \ --num-streams-per-gpu 4 \ --gpusort \ --gpuwrite \ --keep-tmp

fq2bam 的最佳性能

复制
已复制!
            

$ # This command assumes all the inputs are in INPUT_DIR and all the outputs go to OUTPUT_DIR. docker run --rm --gpus all --volume INPUT_DIR:/workdir --volume OUTPUT_DIR:/outputdir \ --workdir /workdir --env TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=268435456 \ nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun fq2bam \ --ref /workdir/Homo_sapiens_assembly38.fasta \ --in-fq /workdir/fastq1.gz /workdir/fastq2.gz \ --out-bam /outputdir/fq2bam_output.bam \ --tmp-dir /workdir \ --bwa-cpu-thread-pool 16 \ --out-recal-file recal.txt \ --knownSites /workdir/hg.known_indels.vcf \ --gpusort \ --gpuwrite

deepvariant 的最佳性能

Parabricks 的 DeepVariant 能够在 GPU 上使用多个流。可以使用的流的数量取决于可用资源。默认流的数量设置为两个,但最多可以增加到六个以获得更好的性能。这需要进行实验,才能在您的系统上获得最佳数量。

复制
已复制!
            

$ # This command assumes all the inputs are in INPUT_DIR and all the outputs go to OUTPUT_DIR. docker run --rm --gpus all --volume INPUT_DIR:/workdir --volume OUTPUT_DIR:/outputdir \ --workdir /workdir --env TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=268435456 nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun deepvariant \ --ref /workdir/Homo_sapiens_assembly38.fasta \ --in-bam /outputdir/fq2bam_output.bam \ --out-variants /outputdir/out.vcf \ --num-streams-per-gpu 4 \ --run-partition

haplotypecaller 的最佳性能

复制
已复制!
            

$ # This command assumes all the inputs are in INPUT_DIR and all the outputs go to OUTPUT_DIR. docker run --rm --gpus all --volume INPUT_DIR:/workdir --volume OUTPUT_DIR:/outputdir \ --workdir /workdir --env TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=268435456 nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun haplotypecaller \ --ref /workdir/Homo_sapiens_assembly38.fasta \ --in-bam /outputdir/fq2bam_output.bam \ --out-variants /outputdir/out.vcf \ --num-htvc-threads 8 \ --no-alt-contigs \#This flag will ignore all outputs after chrM --run-partition

minimap2 的最佳性能

以下命令行选项为在 2x 7742 + 2x A100 80GB PCIe 上运行的 PacBio 数据提供了最佳性能。

复制
已复制!
            

$ # This command assumes all the inputs are in INPUT_DIR and all the outputs go to OUTPUT_DIR. docker run --rm --gpus all --volume INPUT_DIR:/workdir --volume OUTPUT_DIR:/outputdir \ --workdir /workdir --env TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=268435456 nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun minimap2 \ --ref /workdir/${REFERENCE_FILE} \ --in-fq /workdir/${INPUT_FASTQ} \ --out-bam /outputdir/${OUTPUT_BAM} \ --num-chaining-threads 3 \ --alignment-large-pair-size 5000 \ --process-large-alignments-on-cpu \ --num-alignment-threads-per-gpu 8 \ --num-alignment-device-mem-buffers 8 \ --gpusort \ --gpuwrite

为了进一步提高性能和最终 BAM 写入带宽,请使用 GPUDirect Storage (GDS),它是 CUDA 工具包的一部分。请注意,系统必须设置并支持使用 GDS。

以下是设置和使用 GDS 的参考资料

复制
已复制!
            

# Using GDS with the convenience docker wrapper. $ wget https://raw.githubusercontent.com/NVIDIA/MagnumIO/main/gds/docker/gds-run-container $ chmod +x gds-run-container $ ./gds-run-container run \ --rm \ --gpus all \ --enable-mofed \ --enable-gds \ --volume INPUT_DIR:/workdir \ --volume OUTPUT_DIR:/outputdir \ --workdir /workdir \ --env TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=268435456 \ nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun fq2bam \ --ref /workdir/Homo_sapiens_assembly38.fasta \ --in-fq /workdir/fastq1.gz /workdir/fastq2.gz \ --out-bam /outputdir/fq2bam_output.bam \ --tmp-dir /workdir \ --out-recal-file recal.txt \ --knownSites /workdir/hg.known_indels.vcf \ --gpusort \ --gpuwrite \ --use-gds # Using GDS without the wrapper. $ docker run \ --ipc host \ --volume /run/udev:/run/udev:ro \ --device=/dev/nvidia-fs0 \ --device=/dev/nvidia-fs1 \ --device=/dev/nvidia-fs2 \ --device=/dev/nvidia-fs3 \ --device=/dev/nvidia-fs4 \ --device=/dev/nvidia-fs5 \ --device=/dev/nvidia-fs6 \ --device=/dev/nvidia-fs7 \ --device=/dev/nvidia-fs8 \ --device=/dev/nvidia-fs9 \ --device=/dev/nvidia-fs10 \ --device=/dev/nvidia-fs11 \ --device=/dev/nvidia-fs12 \ --device=/dev/nvidia-fs13 \ --device=/dev/nvidia-fs14 \ --device=/dev/nvidia-fs15 \ --rm \ --gpus all \ -enable-mofed \ --volume INPUT_DIR:/workdir \ --volume OUTPUT_DIR:/outputdir \ --workdir /workdir \ --env TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=268435456 \ nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun fq2bam --ref /workdir/Homo_sapiens_assembly38.fasta \ --in-fq /workdir/fastq1.gz /workdir/fastq2.gz \ --out-bam /outputdir/fq2bam_output.bam \ --tmp-dir /workdir \ --out-recal-file recal.txt \ --knownSites /workdir/hg.known_indels.vcf \ --gpusort \ --gpuwrite \ --use-gds

上一篇 输出准确性和兼容的 CPU 软件版本
下一篇 教程
© 版权所有 2025,Nvidia。 上次更新于 2025 年 1 月 13 日。