[lammps-users] New GPU Package for LAMMPS

Dear LAMMPS users

we would like to announce a new CUDA (gpu-support) package for LAMMPS. This package aims at providing support for many parts of LAMMPS in the near future. While we are not there yet, the foundation is laid allowing for an easy extension with new force fields, fixes and computes. At our current state of development our package can use:

run style:
verlet/cuda

forces:
lj/cut/cuda
lj/cut/coul/long/cuda
buck/coul/long/cuda
pppm/cuda

fixes:
nve/cuda
nvt/cuda
enforce2d/cuda
temp/berendsen/cuda
temp/rescale/cuda
addforce/cuda
setforce/cuda
aveforce/cuda

compute:
temp/cuda
pressure/cuda
pe/cuda

atom_styles:
atomic/cuda
charge/cuda

While runstyle verlet/cuda is currently necessary for running simulations on the gpu using our package, all cpu fixes, forces and computes should work in principle. That is, you can keep using existing input files and only need to write /cuda behind each of the supported features. However when using cpu fixes and force fields, runtime will increase significantly since that requires frequent data transfers between host and device.

Right now we consider our project to be in an alpha state. This means that we have not yet implemented all features we would like to support
(think more fixes, forces, computes and especially also bonded interaction) and much more testing is necessary. The latter point is why we go public with our project now. Since lammps is very flexible it is hard to test all possible useage scenarios. We would like to ask interested lammps-users to test our package with their scripts (if they fall somehow in the supported range of features) and report bugs to us.
We also welcome all scripts send to us for testing purposes, i.e. if you dont have GPUs yet.

While one cannot expect exaktly the same results on the gpu as on the cpu, there should be (almost) no deviation in the thermo output for several hundred steps at least (if compiled with double precision support for the gpu). Moreover statistical results should be the same even over long run times.

Supported GPUs are NVIDIA 260 GTX, 275 GTX, 280 GTX, 285 GTX, 295 GTX and Tesla C1060. Multiple GPU support is given as well (for every lammps thread started by MPI one GPU is needed). When using multiple gpus it might be necessary to put them in "compute mode: exclusive" (run deviceQuery in the CUDA SDK to check that setting).

And now the important point, you can download our package from:

    http://sourceforge.net/projects/lammpscuda/

It is currently based on the 7Jul09 Version of LAMMPS, but we will try to mitigate soon to the newest release. The full lammps release of that version is included in the tar.gz file.

If you have any further questions do not hesitate to contact us.

Best regards
Christian Mueller and Lars Winterfeld
[email protected] [email protected]
Theoretical Physics II, University of Technology Ilmenau