Long Integer on DL_MESO_DPD multi-GPU

This module extends the capability of the DL_MESO code to run simulations with more than 1.8 billion particles using long integer arrays.

Purpose of Module

The current version of DL_MESO_DPD on multi GPU cannot run systems larger than 1.8 billion particles due to the INTEGER type used in Fortran for the particle arrays.

This module addresses this problem replacing, only where needed, the INTEGER with LONG INTEGER type in the Fortran arrays. This allows us to run simulations with more than 1.8 billion particles and, as a result, more complex systems.

Background Information

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.

Building and Testing

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 testing, the MPI library the OpenMPI 3.1.0 has been used.

To run the separation test case, copy the FIELD and CONTROL files from the “../tests/LargeSeparation” directory and run using mpirun -np NP ./dpd_gpu.exe. The test case consists in simulating a binary mixture of 24 billion particles on 4096 GPUs (tested on PizDaint CSCS supercomputer).

Source Code

This module has been merged into DL_MESO code. It is composed of the following commits (you need to be registered as collaborator):