Download Compilation Running
Download Instructions

OpenAtom is hosted using git and can be downloaded using the following command:

git clone https://charm.cs.illinois.edu/gerrit/openatom.git

Recent commit history can be viewed here. You will also need to download either a stable version of Charm++ from this weblink or the nightly version using the following command:

git clone https://charm.cs.illinois.edu/gerrit/charm.git

Compilation Instructions

Before OpenAtom is compiled, one needs to get access to a compiled version of Charm++. Detailed instructions on compiling Charm++ can be obtained here. On a typical 64-bit linux machine, Charm++ can be compiled using the following command (executed within Charm++ directory):

./build charm++ netlrts-linux-x86_64 --with-production -j8 (production version)
./build charm++ netlrts-linux-x86_64 -j8 -g (debug version)

You will also need FFTW2, FFTW3, and Charm-FFT library, configured for double precision, to compile OpenAtom. The INSTALL file distributed with the OpenAtom source code provides detailed instruction for its compilation. Here is a quick summary: copy a machine specific configuration file (config.mk.MACHINE) from the makefiles directory to the OpenAtom base directory and rename it to config.mk. Update the values of CHARMBASE, FFT3_HOME, FFT2_HOME, and CHARMFFT_HOME in the beginning of the newly created config.mk. If FFTW2 was built with –enable-type-prefix, you must define DUAL_FFTW, otherwise define DUAL_FFTW_OFF. Customize the config.mk for any desired compilation/link flags etc. Now type "make", which should create a binary called OpenAtom in build directory on successful compilation.

Running OpenAtom

Before executing OpenAtom, obtain example datasets using the git commands mentioned below, and place it in the data directory:

git clone https://charm.cs.illinois.edu/gerrit/datasets/openatom/water_32M_10Ry.git
git clone https://charm.cs.illinois.edu/gerrit/datasets/openatom/water_32M_70Ry.git
git clone https://charm.cs.illinois.edu/gerrit/datasets/openatom/water_32M_10Ry_dynamics.git
git clone https://charm.cs.illinois.edu/gerrit/datasets/openatom/water_256M_70Ry.git

OpenAtom is to be executed as a Charm++ application, the process for which is explained in detail at this link. The general syntax is as follows:

./charmrun +p<N> ./OpenAtom <path to cpaimd config> <path to water input>
(N is the number of processors to execute the job on)

In the datasets downloaded using the command listed above, these files are located in the regression or scaling directory. You must also use the tidy script located in the util directory of the OpenAtom source code to clean up the dataset directory before performing a new run.

Next, we give a concrete example explaining how to run OpenAtom. Once you are in the root directory of OpenAtom, you can give the following set of commands to run minimization test on water_32M_10Ry:

cd data
git clone https://charm.cs.illinois.edu/gerrit/datasets/openatom/water_32M_10Ry.git
cd water_32M_10Ry
./tidy
../../build-O3/charmrun +p4 ../../build-O3/OpenAtom tests/simple_minimization/cpaimd_config.p1 tests/simple_minimization/water.input

On most machine layers (excluding net and verbs), a Charm++ application can also be launched in the same manner as an MPI application. For example, if built on top of MPI, one can launch OpenAtom as follows:

mpirun -np <N> ./OpenAtom <path to cpaimd config> <path to water input>