Accelerating a Geometric Approach to Molecular Docking with OpenACC

In a drug discovery process, the Molecular Docking task aims at estimating the three-dimensional pose of a molecule when it interacts with the target protein. This task is usually used to perform a screening on a large library of molecules to find the most promising candidates. The output of this task is used to estimate the actual strength of atomic interactions. In this document we focus on an application that performs molecular docking using geometrical features of the molecule and of the protein, to quickly screen the target chemical library. Due to the size of the chemical library and to the complexity of the task, the application is a typical batch job that runs in an HPC platform, optimized for CPU processing. Given the amount of parallelism of this application, we evaluate the possibility to run such application on a GPU node, leveraging the OpenACC directive language. Preliminary results show that we are able to achieve a significant speedup on the kernel that was the bottleneck on the CPU (up to 16x), while we achieve a speedup of 5x on the overall execution.

[1]  Wu-chun Feng,et al.  The Green500 List: Encouraging Sustainable Supercomputing , 2007, Computer.

[2]  Rob Farber,et al.  Parallel Programming with OpenACC , 2016 .

[3]  Carlo Cavazzoni,et al.  LiGen: A High Performance Workflow for Chemistry Driven de Novo Design , 2013, J. Chem. Inf. Model..

[4]  John E. Stone,et al.  OpenCL: A Parallel Programming Standard for Heterogeneous Computing Systems , 2010, Computing in Science & Engineering.

[5]  Matthew P. Repasky,et al.  Glide: a new approach for rapid, accurate docking and scoring. 1. Method and assessment of docking accuracy. , 2004, Journal of medicinal chemistry.

[6]  Dirk Schmidl,et al.  Score-P: A Joint Performance Measurement Run-Time Infrastructure for Periscope, Scalasca, TAU, and Vampir , 2011, Parallel Tools Workshop.

[7]  René Thomsen,et al.  MolDock: a new technique for high-accuracy molecular docking. , 2006, Journal of medicinal chemistry.

[8]  Thomas Lengauer,et al.  Evaluation of the FLEXX incremental construction algorithm for protein–ligand docking , 1999, Proteins.

[9]  Carlo Cavazzoni,et al.  Use of Experimental Design To Optimize Docking Performance: The Case of LiGenDock, the Docking Module of Ligen, a New De Novo Design Program , 2013, J. Chem. Inf. Model..

[10]  Arthur J. Olson,et al.  AutoDock Vina: Improving the speed and accuracy of docking with a new scoring function, efficient optimization, and multithreading , 2009, J. Comput. Chem..

[11]  Tianyi David Han,et al.  Reducing branch divergence in GPU programs , 2011, GPGPU-4.

[12]  Ajay N. Jain Surflex-Dock 2.1: Robust performance from ligand energetic modeling, ring flexibility, and knowledge-based search , 2007, J. Comput. Aided Mol. Des..

[13]  Kevin Skadron,et al.  Scalable parallel programming , 2008, 2008 IEEE Hot Chips 20 Symposium (HCS).

[14]  Todd J. A. Ewing,et al.  DOCK 4.0: Search strategies for automated molecular docking of flexible molecule databases , 2001, J. Comput. Aided Mol. Des..

[15]  Luca Benini,et al.  The ANTAREX approach to autotuning and adaptivity for energy efficient HPC systems , 2016, Conf. Computing Frontiers.

[16]  P E Bourne,et al.  The Protein Data Bank. , 2002, Nucleic acids research.

[17]  Rob Farber From serial to parallel programming using OpenACC , 2017 .