lammps/lib/kokkos
sjplimp a2aa6c5be0 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13057 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-02-04 22:09:15 +00:00
..
TPL git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13057 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-02-04 22:09:15 +00:00
algorithms/src git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13057 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-02-04 22:09:15 +00:00
containers/src git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13057 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-02-04 22:09:15 +00:00
core/src git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13057 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-02-04 22:09:15 +00:00
Makefile.lammps git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13057 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-02-04 22:09:15 +00:00
README git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13057 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-02-04 22:09:15 +00:00

README

Kokkos library

Carter Edwards, Christian Trott, Daniel Sunderland
Sandia National Labs

29 May 2014
http://trilinos.sandia.gov/packages/kokkos/

-------------------------

This directory has source files from the Kokkos library that LAMMPS
uses when building with its KOKKOS package.  The package contains
versions of pair, fix, and atom styles written with Kokkos data
structures and calls to the Kokkos library that should run efficiently
on various kinds of accelerated nodes, including GPU and many-core
chips.

Kokkos is a C++ library that provides two key abstractions for an
application like LAMMPS.  First, it allows a single implementation of
an application kernel (e.g. a pair style) to run efficiently on
different kinds of hardware (GPU, Intel Phi, many-core chip).

Second, it provides data abstractions to adjust (at compile time) the
memory layout of basic data structures like 2d and 3d arrays and allow
the transparent utilization of special hardware load and store units.
Such data structures are used in LAMMPS to store atom coordinates or
forces or neighbor lists.  The layout is chosen to optimize
performance on different platforms.  Again this operation is hidden
from the developer, and does not affect how the single implementation
of the kernel is coded.

To build LAMMPS with Kokkos, you should not need to make any changes
to files in this directory.  You can overrided defaults that are set
in Makefile.lammps when building LAMMPS, by defining variables as part
of the make command.  Details of the build process with Kokkos are
explained in Section 2.3 of doc/Section_start.html. and in Section 5.9
of doc/Section_accelerate.html.

The one exception is that when using Kokkos with NVIDIA GPUs, the
CUDA_PATH setting in Makefile.lammps needs to point to the
installation of the Cuda software on your machine.  The normal default
location is /usr/local/cuda.  If this is not correct, you need to edit
Makefile.lammps.