User Tools

Site Tools


pkdgrav

This is an old revision of the document!


pkdgrav3

               pkdgrav3
         September 24, 2018
          http://www.pkdgrav.org/

    Douglas Potter <douglas.potter@uzh.ch>
    Joachim Stadel <stadel@physik.uzh.ch>

Quick Start

  • The pkdgrav3 code now uses the “cmake” build system. It is recommended to use an “out of source” build. The easiest way to accomplish this is to create a subdirectory in the pkdgrav3 source directory:
mkdir build
cd build
cmake ..
make

This will build a single executable “pkdgrav3” and other utility programs.

Prerequisites

CMake - cmake build system

Most modern systems already have cmake installed. Pkdgrav3 requires version 3.1 or newer of cmake. You can check with “cmake –version”:

    pkdgrav3:~> cmake --version
    cmake version 3.5.2
  • If you need a more recent version is can be found at:

CMAKE HOME

GSL - The GNU Scientific Library

This library is usually available on HPC systems, but if not it must be downloaded and compiled, and can be found at this URL.

https://www.gnu.org/software/gsl/

pkdgrav3 will locate the GSL installation by invoking gsl-config, so make sure that it is in your PATH. Alternatively, you can tell CMake where to find it by defining GSL_ROOT_ROOT:

    cmake -DGSL_ROOT_DIR=/opt/gsl/2.5

FFTW - Fast Fourier Transform Library

If FFTW is available then two advanced features are enabled in pkdgrav3.

  • 1. Initial Condition Generation, and,
  • 2. Power spectrum measurement

If is is not available on your system it can be obtained from:

http://www.fftw.org/

If CMake does not automatically find FFTW then you can define FFTW_ROOT:

    cmake -DFFTW_ROOT=/path/to/fftw

CUDA (optional)

If your system has a CUDA capable GPU then pkdgrav3 can use it. The necessary toolkits can be downloaded from nVidia.

https://developer.nvidia.com/cuda-downloads

Configuration

Integer Positions

This option saves memory and provides sufficient accuracy for cosmological simulations. Only periodic boxes are supported. Enable by setting INTEGER_POSITION when running cmake.

cmake -DINTEGER_POSITION=True ...

Potentials in Lightcone particle output

The potential for each particle can be output for the lightcone. Enable by setting POTENTIAL_IN_LIGHTCONE when running cmake.

cmake -DPOTENTIAL_IN_LIGHTCONE=True ...
Build

Once CMake has been run to produce a Makefile and associated files, the “make” command is used to build the program, as in:

make

The build can be done in parallel so if you are on, for example, a 16 core machine, the build process can be sped up with:

make -j 16
Running
pkdgrav3

This version is run using the MPI system on the cluster in question. Normally this involves a special command (often “mpirun” or “mpiexec”), for example:

mpiexec pkdgrav3 simfile.par

Consult your cluster documentation on how to run MPI programs.

pkdgrav.1562524998.txt.gz · Last modified: 2019/07/07 20:43 by Wiki Admin