Coder Social home page Coder Social logo

minimdock's Introduction

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.

minimdock's People

Contributors

lin-mao avatar mathialakan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

appcases alijahan

minimdock's Issues

Runtime error

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

AutoDock-GPU version: 

CUDA Setup time 0.344651s

Running the Job 
Local-search chosen method is: Solis-Wets (sw)
SetKernelsGpuData copy to cData failed invalid device symbol
autodock_gpu_64wi: ./device/cuda/kernels.cu:147: void SetKernelsGpuData(GpuData*): Assertion `0' failed.
Aborted (core dumped)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.