Skip to content

ORNL-PE/miniMDock

Repository files navigation

miniMDock

A GPU based portable protein-ligand docking code, can be used for virtual drug discovery compound screens based on a molecular recognition model, that analysis a three-dimensional model of an interaction between a protein and a small molecule (ligand). The key calculation, namely, the Lamarckian genetic algorithm (LGA) combined with a local search using a Solis-Wets based random optimization algorithm, are implemented using performance portable programming models (Kokkos) that enables porting to different emerging systems with minimal efforts, vendor-specific programming models such as CUDA for NVIDIA GPUs, and Heterogeneous-computing Interface for Portability (HIP) versions that can be applicable for AMD and NVIDIA GPUs. The miniapp is developed based on AutoDock-GPU, can be used to evaluate the performance and portability of GPU-accelerated particle-grid based protein ligand docking programs on different computer architectures, and targets NVIDIA and AMD GPUs. The miniMDock is available under GNU GPL version 2 and/or LGPL version 2.1 licenses.

Programming Base (API/ Model)

  • CUDA
  • HIP
  • Kokkos

Compilation

Compilation in General

make DEVICE=<TYPE> API=<SUPPORT> CARD=<VENDOR> NUMWI=<NWI>  
Prameters Description Values
<TYPE> Accelerator chosen CPU, GPU
<SUPPORT> API chosen CUDA, HIP, KOKKOS
<VENDOR> GPU vendor/type NVIDIA, AMD
<NWI> work-group size 1, 2, 4, 8, 16, 32, 64, 128, 256

After successful compilation, the host binary autodock_<api><card><N>wi is placed under bin.

Binary-name portion Description Values
<api> Accelerator chosen cuda , hip, kokkos
<card> Accelerator chosen nv, amd
<N> work-group size 1, 2, 4, 8,16, 32, 64, 128, 256

Programming model and platform based compilation

Steps to build the CUDA, HIP, and Kokkos versions of miniMDock,

+ CUDA version 
  • Prerequisites: cuda 8.0 or above and at least gcc 5.3 (choose based on cuda version).
  • Build: Define the environment varables GPU_LIBRARY_PATH and GPU_INCLUDE_PATH before build it.
  • Example: Build on summit.
module load cuda 
export GPU_LIBRARY_PATH=/sw/summit/cuda/10.1.243/lib64 
export GPU_INCLUDE_PATH=/sw/summit/cuda/10.1.243/include 
make API=CUDA 

+ HIP version 
  • Prerequisites: rocm 3.7 or above and at least gcc 7.2 (choose based on rocm version).
  • Build: Define the environment varables HIP_PLATFORM, GPU_LIBRARY_PATH and GPU_INCLUDE_PATH before build it.
  • Example: Build on Frontier Center of Excellence (CoE).
ROCMV=3.7.0 
PLATFORM=hcc 
module load rocm/${ROCMV}  
export HIP_PLATFORM=${PLATFORM} 
export GPU_LIBRARY_PATH=/opt/rocm-${ROCMV}/lib 
export GPU_INCLUDE_PATH=/opt/rocm-${ROCMV}/include 
make API=HIP CARD=AMD 

+ Kokkos version 
  • Prerequisites: Built kokkos with the specific backend, rocm 3.7 or above, cuda 8.0 or above, and gcc 6.1 or above.
  • Build: Define the environment varables KOKKOS_SRC_DIR, KOKKOS_LIB_PATH and KOKKOS_INC_PATH before build it.
  • Example: Build kokkos with HIP backend version on Frontier Center of Excellence (CoE).
ROCMV=3.7.0 
module load rocm/${ROCMV} cuda10.2/toolkit 
export KOKKOS_SRC_DIR=/home/users/coe0179/kokkos 
export KOKKOS_INC_PATH=/home/users/coe0179/kokkos/include/ 
export KOKKOS_LIB_PATH=/home/users/coe0179/kokkos/lib64/ 
make API=KOKKOS DEVICE=GPU  CARD=AMD

Running

Basic command

./bin/autodock_<api>_<card>_<N>wi \ 
-lfile <ligand>.pdbqt \ 
-nrun <nruns> 
Mandatory options Description Value
-lfile Ligand file <ligand>.pdbqt
-nrun # LGA runs <nruns>

Example

./bin/autodock_hip_nv_64wi \ 
-lfile ./input/7cpa/7cpa_ligand.pdbqt  \ 
-nrun 10 

References

miniMDock development, discussion, and benchmark have been published in 2020 IEEE/ACM International Workshop on P3HPC. Please cite these references if you use miniMDock in your research:
[1] M. Thavappiragasam, A. Scheinberg, W. Elwasif, O. Hernandez and A. Sedova, "Performance Portability of Molecular Docking Miniapp On Leadership Computing Platforms," 2020 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC), GA, USA, 2020, pp. 36-44, doi: 10.1109/P3HPC51967.2020.00009.

About

A molecular docking mini app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published