Clara-Parabricks on Ibex
- 1 Installation
- 1.1 Getting the source
- 1.2 Intall command
- 2 Testing
- 2.1 Getting data
- 2.2 Typical Jobscript
- 2.3 Output
- 3 Benchmarks
Installation
requires fakeroot feature of Singularity to be working
must build the image on a compute node
Getting the source
Goto https://developer.nvidia.com/clara-parabricks and choose appropriate Licensing method:
I chose “standard evaluation license” for testing
Fill in the requested details and the link to tarball containing the installation script and license will be emailed by NVIDIA
It appears that Parabricks is a container image, which when installed using the provided
installer.py
in the tarball, creates a Singularitysandbox
as a installation directory and builds a statically built executable(s)pbrun
.
Intall command
salloc --gres=gpu:1 --time=01:00:00
Once GPU node is allocated, the following needs to run on compute node:
export XDG_RUNTIME_DIR=/path/to/some/tmp/space
srun --pty ./installer.py --container singularity --install-location /path/to/installation/directory
To pull a container image from NVIDIA GPU Containers Cloud, you will need to add --ngc
to the installer command line. Before using the NGC container image please check the version, its v2.5.0 at the moment whereas the newest in gitlab
in v3.0.0.2
:
srun --pty ./installer.py --container singularity --ngc --install-location /path/to/installation
Testing
I am using the testing recipe from https://ngc.nvidia.com/catalog/containers/hpc:parabricks
Getting data
$ wget https://s3.amazonaws.com/parabricks.sample/parabricks_sample.tar.gz
$ tar xf parabricks_sample.tar.gz
$ ls parabricks_sample
Data Ref
Typical Jobscript
#!/bin/bash
#SBATCH --job-name=parabricks-test
#SBATCH --time=02:00:00
#SBATCH --gres=gpu:1
#SBATCH --constraint=gpu_ai
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=20G
module load parabricks/3.0.0.2
export DATA_DIR=/ibex/scratch/shaima0d/scratch/parabricks-testing
pbrun fq2bam \
--ref ${DATA_DIR}/parabricks_sample/Ref/Homo_sapiens_assembly38.fasta \
--in-fq ${DATA_DIR}/parabricks_sample/Data/sample_1.fq.gz parabricks_sample/Data/sample_2.fq.gz \
--out-bam output.bam
Output
Loading module for Singularity
Singularity 3.5 modules now loaded
Loading module for parabricks-3.0.0.2
parabricks-3.0.0.2 modules now loaded
[Parabricks Options Mesg]: Checking argument compatibility
[Parabricks Options Mesg]: Automatically generating ID prefix
[Parabricks Options Mesg]: Read group created for /ibex/scratch/shaima0d/scratch/parabricks-
testing/parabricks_sample/Data/sample_1.fq.gz and /ibex/scratch/shaima0d/scratch/parabricks-
testing/parabricks_sample/Data/sample_2.fq.gz
[Parabricks Options Mesg]: @RG\tID:HK3TJBCX2.1\tLB:lib1\tPL:bar\tSM:sample\tPU:HK3TJBCX2.1
------------------------------------------------------------------------------
|| Parabricks accelerated Genomics Pipeline ||
|| Version v3.0.0.2 ||
|| GPU-BWA mem, Sorting Phase-I ||
|| Contact: Parabricks-Support@nvidia.com ||
------------------------------------------------------------------------------
[M::bwa_idx_load_from_disk] read 0 ALT contigs
GPU-BWA mem
ProgressMeter Reads Base Pairs Aligned
[16:21:48] 5043564 580000000
[16:22:36] 10087128 1160000000
[16:23:25] 15130692 1740000000
[16:24:13] 20174256 2320000000
[16:25:01] 25217820 2900000000
[16:25:49] 30261384 3480000000
[16:26:38] 35304948 4060000000
[16:27:26] 40348512 4640000000
[16:28:16] 45392076 5220000000
[16:29:05] 50435640 5800000000
GPU-BWA Mem time: 525.787852 seconds
GPU-BWA Mem is finished.
GPU Sorting, Marking Dups, BQSR
ProgressMeter SAM Entries Completed
Total GPU-BWA Mem + Sorting + MarkingDups + BQSR Generation + BAM writing
Processing time: 570.052968 seconds
[main] CMD: PARABRICKS mem -Z ./pbOpts.txt /ibex/scratch/shaima0d/scratch/parabricks-testing/parabricks_sample/Ref/Homo_sapiens_assembly38.fasta /ibex/scratch/shaima0d/scratch/parabricks-testing/parabricks_sample/Data/sample_1.fq.gz /ibex/scratch/shaima0d/scratch/parabricks-testing/parabricks_sample/Data/sample_2.fq.gz @RG\tID:HK3TJBCX2.1\tLB:lib1\tPL:bar\tSM:sample\tPU:HK3TJBCX2.1
[main] Real time: 576.339 sec; CPU: 2121.508 sec
------------------------------------------------------------------------------
|| Program: GPU-BWA mem, Sorting Phase-I ||
|| Version: v3.0.0.2 ||
|| Start Time: Mon Jul 27 16:20:45 2020 ||
|| End Time: Mon Jul 27 16:30:21 2020 ||
|| Total Time: 9 minutes 36 seconds ||
------------------------------------------------------------------------------
------------------------------------------------------------------------------
|| Parabricks accelerated Genomics Pipeline ||
|| Version v3.0.0.2 ||
|| Sorting Phase-II ||
|| Contact: Parabricks-Support@nvidia.com ||
------------------------------------------------------------------------------
progressMeter - Percentage
[16:30:24] 0.0 0.00 GB
[16:30:34] 47.6 0.27 GB
[16:30:44] 94.0 0.11 GB
Sorting and Marking: 30.002 seconds
------------------------------------------------------------------------------
|| Program: Sorting Phase-II ||
|| Version: v3.0.0.2 ||
|| Start Time: Mon Jul 27 16:30:24 2020 ||
|| End Time: Mon Jul 27 16:30:54 2020 ||
|| Total Time: 30 seconds ||
------------------------------------------------------------------------------
------------------------------------------------------------------------------
|| Parabricks accelerated Genomics Pipeline ||
|| Version v3.0.0.2 ||
|| Marking Duplicates, BQSR ||
|| Contact: Parabricks-Support@nvidia.com ||
------------------------------------------------------------------------------
progressMeter - Percentage
[16:31:05] 9.0 5.95 GB
[16:31:15] 22.3 13.18 GB
[16:31:25] 38.2 11.80 GB
[16:31:35] 52.4 9.11 GB
[16:31:45] 64.0 6.49 GB
[16:31:55] 76.7 3.97 GB
[16:32:05] 87.1 1.24 GB
[16:32:15] 100.0 0.00 GB
BQSR and writing final BAM: 80.932 seconds
------------------------------------------------------------------------------
|| Program: Marking Duplicates, BQSR ||
|| Version: v3.0.0.2 ||
|| Start Time: Mon Jul 27 16:30:55 2020 ||
|| End Time: Mon Jul 27 16:32:16 2020 ||
|| Total Time: 1 minute 21 seconds ||
------------------------------------------------------------------------------
Benchmarks
NOTES
Ran the benchmark with data in local SSD (/tmp of the compute node) with Single GPU. There was no change in compute time of phases.