Load balancing for multi-GPU DL_MESO¶
This module concerns the implementation of the ALL library for load balancing in the multi-GPU version of DL_MESO_DPD.
The intention is to allow for better performance when modelling complex systems, like large proteins or lipid bylars, redistributing the work load across the GPUs. The A Load Balancing (ALL) library, developed at Julich Supercomputer Center, provides several scheme to find the ideal split of the work load: from the simplest orthogonal non staggered domain decomposition, to the more fancy Voronoi mesh scheme.
This module is part of the DL_MESO_DPD code. Full support and documentation is available at:
To download the DL_MESO_DPD code you need to register at https://gitlab.stfc.ac.uk. Please contact Dr. Micheal Seaton at Daresbury Laboratory (STFC) for further details.
The ALL library has been introduced during the ECAM Extended Software Development Workshop for Meso and Multi Scale Modelling hosted in Julich in June 2019.
The DL_MESO code is developed using git version control. Currently, the multi GPU version is under a branch named
multi_GPU_version. After downloading the code, checkout the GPU branch and look into the
DPD/gpu_version folder, i.e:
git clone https://gitlab.stfc.ac.uk/dl_meso.git cd dl_meso git checkout multi_GPU_version cd ./DPD/gpu_version/bin make all
To compile and run the code you need to have installed the CUDA-toolkit (>=8.0) and have a CUDA enabled GPU device (see http://docs.nvidia.com/cuda/#axzz4ZPtFifjw). For the MPI library, OpenMPI 3.1.0 has been used in testing.
To run the case, copy the
CONTROL files from the “../tests” directory and run using
mpirun -np NP ./dpd_gpu.exe. Compare the
OUTPUT and the
export files to verify your results.
This module has been merged into DL_MESO code. It is composed of the following commits (you need to be registered as collaborator):
The ALL library is available (after registration) at: