lammps/bench/KEPLER0c0e5c356f44lammm-master-deprecated
KEPLER
README
These are build and input and run scripts used to run the LJ benchmark in the top-level bench directory using all the various accelerator packages currently available in LAMMPS. The results of running these benchmarks on a GPU cluster with Kepler GPUs are shown on the "GPU (Kepler)" section of the Benchmark page of the LAMMPS WWW site: lammps.sandia.gov/bench.
The specifics of the benchmark machine are as follows:
It is a small GPU cluster at Sandia National Labs called "shannon". It has 32 nodes, each with two 8-core Sandy Bridge Xeon CPUs (E5-2670, 2.6GHz, HT deactivated), for a total of 512 cores. Twenty-four of the nodes have two NVIDIA Kepler GPUs (K20x, 2688 732 MHz cores). LAMMPS was compiled with the Intel icc compiler, using module openmpi/1.8.1/intel/13.1.SP1.106/cuda/6.0.37.
You can of course build LAMMPS yourself with any of the accelerator packages for your platform.
The build.py script will build LAMMPS for the various accelerlator packages using the Makefile.* files in this dir, which you can edit if necessary for your platform. You must set the "lmpdir" variable at the top of build.py to the home directory of LAMMPS as installed on your system. Then typing, for example,
python build.py cpu gpu
will build executables for the CPU (no accelerators), and 3 GPU variants (double, mixed, single precision). See the list of possible targets at the top of the build.py script.
Note that the build.py script will un-install all packages in LAMMPS, then only install the ones needed for the benchmark. The Makefile.* files in this dir are copied into lammps/src/MAKE, as a dummy Makefile.foo, so they will not conflict with makefiles that may already be there. The build.py script also builds the auxiliary GPU and USER-CUDA library as needed.
The various LAMMPS executables are copied into this directory when the build.py script finishes each build.
The in.* files have settings for the benchmark appopriate to each accelerator package. Many of them, including the problem size, and number of timsteps, must be set as command-line arguments when the input script is run.
The run*.sh scripts have sample mpirun commands for running the input scripts on a single node. These are provided for illustration purposes, to show what command-line arguments are used with each accelerator package, in combination with settings in the input scripts themselves.
Note that we generate these run scripts, either for interactive or batch submission, via Python scripts which produce a long list of runs to exercise a combination of options. To perform a quick benchmark calculation on your platform, you will typically only want to run a few commands out of any run*.sh script