Last year we accelerated the OpenCL-code in PaSWAS, which is open source software to do DNA/RNA/protein sequence alignment and trimming. It has users world-wide in universities, research groups and industry.
Below you’ll find the benchmark results of our acceleration work. You can also test out yourself, as the code is public. In the readme-file you can learn more about the idea of the software. Lots of background information is described in these two papers:
- Flexible, Fast and Accurate Sequence Alignment Profiling on GPGPU with PaSWAS
- pyPaSWAS: Python-based multi-core CPU and GPU sequence alignment
We chose PaSWAS because we really like bio-informatics and computational chemistry – the science is interesting, the problems are complex and the potential GPU-speedup is real. Other examples of such software we worked on are GROMACS and TeraChem.
Benchmarks
A number of different datasets were used for the query and database. The comparison is between the performance of the original code and our branch. The scoring matrix used is BLOSUM80, with all other parameters set to default. NOTE: The results below are for the non-affine gap method.
An example of how a benchmark is run, is: time python pypaswas.py --loglevel=info -M BLOSUM80 data/canisLupusAnkyrinPRED.fasta ../canisLupusFamiliaris.faa_4284.faa --device_type=GPU --platform_name=AMD --framework=OpenCL --device=1
You can change the variables as we put in the dataset description.
Dataset 1
- Query file: canisLupusAnkyrin.fasta
- Target file: canisLupusAnkyrinPRED.fasta
- Number of queries: 8
- Number of targets: 346
OpenCL Device | Original | Stream | Speedup | ||
Time | Time | GCUPS | Time | GCUPS | |
Dual Intel Xeon CPU E5-2650 v3 @ 2.30GHz | 0m48.244s | 0.03 | X | X | |
AMD Firepro s9300 (only 1 GPU used) | 0m16.648s | 0.09 | 0m4.841s | 0.47 | 5.2x |
AMD Radeon Instinct MI25 | 0m11.464s | 0.13 | 0m3.938s | 0.45 | 3.4x |
NVIDIA GeForce GTX980 | 0m19.943s | 0.07 | 0m4.131s | 0.38 | 5.4x |
Dataset 2
- Query file: canisLupusAnkyrin.fasta
- Target file: canisLupusFamiliaris.faa_4284.faa
- Number of queries: 8
- Number of targets: 4284
OpenCL Device | Original | Stream | Speedup | ||
Time | Time | GCUPS | Time | GCUPS | |
Dual Intel Xeon CPU E5-2650 v3 @ 2.30GHz | 5m16.338s | 0.03 | X | X | |
AMD Firepro s9300 (only 1 GPU used) | 1m30.050s | 0.12 | 0m9.644s | 1.41 | 11.7x |
AMD Radeon Instinct MI25 | 0m55.800s | 0.19 | 0m9.403s | 1.24 | 6.5x |
NVIDIA GeForce GTX980 | 2m19.006s | 0.07 | 0m13.478s | 0.81 | 11.5x |
Dataset 3
- Query file: canisLupusAnkyrinPRED.fasta
- Target file: canisLupusFamiliaris.faa_4284.faa
- Number of queries: 346
- Number of targets: 4284
OpenCL Device | original | Stream | Speedup | ||
Time | Time | GCUPS | Time | GCUPS | |
Dual Intel Xeon CPU E5-2650 v3 @ 2.30GHz | 95m40.606s | 0.11 | X | X | |
AMD Firepro s9300 (only 1 GPU used) | 16m41.019s | 0.63 | 2m11.045s | 4.90 | 7.7x |
AMD Radeon Instinct MI25 | 10m12.648s | 1.03 | 2m8.425s | 4.96 | 4.8x |
NVIDIA GeForce GTX980 | 39m13.160s | 0.27 | 3m21.758s | 3.15 | 11.6x |
Thanks
Big thanks go to Sven Warris, the author of the software and first author of the papers, who supported us with papers and background info to make this happen.
If you want to use the software for your own research, download a release at https://github.com/swarris/pyPaSWAS/releases