====== pkdgrav3 ====== pkdgrav3 September 24, 2018 http://www.pkdgrav.org/ Douglas Potter Joachim Stadel ====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: [[ https://cmake.org/|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/|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/|FFTW ]] 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|DOWNLOAD CUDA ]] ==== 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.