andreipoe / bude-portability-benchmark

A BUDE virtual-screening benchmark, in many programming models

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BUDE Benchmark

This repository contains implementation of the core computation of the Bristol University Docking Engine (BUDE) in different HPC programming models. The benchmark is a virtual screening run of the NDM-1 protein and runs the energy evaluation for a single generation of poses repeatedly, for a configurable number of iterations. Increasing the iteration count has similar performance effects to docking multiple ligands back-to-back in a production BUDE docking run.

Structure

The top-level data directory contains the input common to implementations. The top-level makedeck directory contains an input deck generation program and a set of mol2/bhff input files. Each other subdirectory contains a separate implementation:

Building

To build with the default options, type make in an implementation directory. There are options to choose the compiler used and the architecture targetted.

Refer to each implementation's README for further build instructions.

Running

To run with the default options, run the binary without any flags. To adjust the run time, use -i to set the number of iterations. For very short runs, e.g. for simulation, use -n 1024 to reduce the number of poses. The maximum number of poses supported is 65536.

Refer to each implementation's README for further run instructions.

Benchmarks

Two input decks are included in this repository:

  • bm1 is a short benchmark (~100 ms/iteration on a 64-core ThunderX2 node) based on a small ligand (26 atoms)
  • bm2 is a long benchmark (~25 s/iteration on a 64-core ThunderX2 node) based on a big ligand (2672 atoms)

They are located in the data directory, and bm1 is run by default. All implementations accept a --deck parameter to specify an input deck directory. See makedeck for how to generate additional input decks.

About

A BUDE virtual-screening benchmark, in many programming models

License:Apache License 2.0


Languages

Language:C 67.7%Language:C++ 20.5%Language:CMake 7.1%Language:Cuda 2.0%Language:Makefile 1.5%Language:Python 1.3%