Skip to content

Guideline for developers

Leonardo Solis V edited this page Jun 17, 2019 · 11 revisions

Repository description

% tree  -L 1
.
├── add_preamble_license.sh
├── bin
├── common
├── device
├── doc
├── examples
├── host
├── input
├── LICENSE
├── logo.png
├── Makefile
├── preamble_license
├── prebuilt
├── README.md
├── remove_preamble_license.sh
├── stringify_ocl_krnls.sh
├── win
└── wrapcl

10 directories, 8 files

bin: Linux binary files are placed here once compiled.

File Description
ocladock_<type>_<N>wi Binary file for <type> (cpu, gpu) device with <N> (16, 32, 64, 128, 256) work items

common: common header files for host and device.

File Description
calcenergy_basic.h Basic defines and macros for energy calculation
defines.h Basic defines for energy calculation and kernels optimization

device: source files containing kernels.

File Description
auxiliary_genetic.cl Auxiliary functions for energy calculation
calcenergy.cl Main function for score (binding energy) calculation
calcgradient.cl Main function for gradient calculation
calcMergedEneGrad.cl Score and gradient merged calculation
kernel1.cl gpu_calc_initpop: calculates the scores of initial population
kernel2.cl gpu_sum_evals: sums the evaluation counter states
kernel3.cl perform_LS: performs the Solis-Wets local search
kernel4.cl gpu_gen_and_eval_newpops: performs the genetic generation or global search
kernel_sd.cl gradient_minSD: performs the Steepest-Descent local search
kernel_fire.cl gradient_minFire: performs the Steepest-Descent local search
kernel_ad.cl gradient_minAD: performs the ADADELTA local search

examples/output: examples of docking log files.

host: host source files.

File Description
calcenergy{.h}{.cpp} Auxiliary functions for parallel energy-calculation
getparameters{.h}{.cpp} Functions for processing program input arguments
miscellaneous{.h}{.cpp} General-purpose functions
main.cpp Main source file
performdocking{.h}{.cpp} Entry point for OpenCL-platform setup and kernels execution
processgrid{.h}{.cpp} Functions for processing and converting the energy grids
processligand{.h}{.cpp} Functions for performing operations in the ligand
processresult{.h}{.cpp} Functions for processing docking results

input: chemical compounds taken from PDB.

Ligan-receptor complex Description
1stp Structural origins of high-affinity biotin binding to streptavidin
3ce3 Crystal structure of the tyrosine kinase domain of the hepatocyte growth factor receptor C-MET in complex with a Pyrrolopyridinepyridone based inhibitor

For both complexes, the containing folder has a similar structure.

wrapcl: custom wrapper functions for OpenCL API calls (compliant to OpenCL 1.2).

File Description
BufferObjects{.h}{.cpp} Functions for allocating, mapping, copying, and querying info of buffers
CommandQueues{.h}{.cpp} Functions for creating and querying info of command queues
commonMacros.h Header with defines to enable features and display of info of OpenCL elements (platform, devices, etc)
Contexts{.h}{.cpp} Functions for creating and querying info of contexts
Devices{.h}{.cpp} Functions for detecting available devices and querying their attributes
ImportBinary{.h}{.cpp} Functions for loading kernel code and transforming (offline) it into device programs
ImportSource{.h}{.cpp} Functions for loading kernel code and transforming (online) it into device programs
Kernels{.h}{.cpp} Functions for setting kernel arguments, dispatching kernels, and querying kernel attributes
listAttributes{.h}{.cpp} Definitions of OpenCL attributes
Platforms{.h}{.cpp} Functions for detecting installed platforms and querying their attributes
Programs{.h}{.cpp} Functions for querying program's info

Compilation

Basic

make DEVICE=<TYPE>
Parameters Description Values
<TYPE> Accelerator chosen CPU, GPU

After successful compilation, the host binary ocladock_<type>_<N>wi is placed under bin.

Binary-name portion Description Values
<type> Accelerator chosen cpu, gpu

All available options

make DEVICE=<TYPE> NUMWI=<NWI> CONFIG=<CFG> REPRO=<Y/N>
Argument Description Possible values
DEVICE OpenCL device type <TYPE>: CPU, GPU
NUMWI Number of work items per work group <NWI> : 16, 32, 64, 128, 256
CONFIG Host configuration <CFG> : RELEASE, LDEBUG (light), FDEBUG (full)
REPRO (FIXME) Reproduce results (remove randomness) <Y/N> : YES, NO

Configuration file

Check the configurations in the project's Makefile.

Further reading

Go to Wiki home.

Clone this wiki locally