Skip to content
Axel Huebl edited this page May 25, 2016 · 5 revisions

You are here: Home > PIConGPU FAQ


This page contains a list of frequently asked (user) questions about PIConGPU.

How to Contact

Please see the section in our README.md

What Information to Include in a Bug Report

Please list the basic properties of your environment, such as

  • operating system & version (e.g., Ubuntu 16.04 64bit on x86)
  • compiler and its version used (e.g., GCC 4.9.2)
  • CMake and its version used (e.g., CMake 3.5.2)
  • libraries and their versions used: loaded modules on an HPC system, installed packages on a Desktop (e.g., gcc/4.9.2, cmake/3.3.0, boost/1.56.0, cuda/7.0, openmpi/1.8.4.kepler.cuda70, pngwriter/0.5.6, hdf5-parallel/1.8.14, libsplash/1.4.0)
  • the output of our configure script (CMake) and cmake -L . in the build directory
  • if necessary, include your .param files (compile time options) and your .cfg files (runtime options)

Why does my code compile so long?

PIConGPU uses specific C++ programming techniques to optimize the algorithms as much as possible before a simulation is run. The logic behind this is simple: compiling a few minutes on a single machine is computationally cheap but being inefficient in a highly parallel environment such as a (GPU) cluster would not be. Depending on the order of the used solvers for fields and particles and on the number of particle species more code might be specifically optimized for your simulation.

Due to compiler limitations when using so called header-only libraries, parallelization of the compile process itself is not possible. Best results can be achieved with a few but fast CPUs, e.g., on a head node of a cluster leading to a compile time of 3 to 5 minutes for usual setups.

What version of PIConGPU should I use?

Generally, using the newest stable release for production runs is highly recommended. Make sure to subscribe to the feed of the user mailing list to receive announcements in case unexpected bugs are found or new releases are created.

Be aware that new versions might introduce syntax changes for old simulations which are described in our changelog. If you rely on an old version but need an urgent bug fix for it consider opening an issue and describe your problem, so we might be able to release a new revision of a previous version of PIConGPU that only fixes a small issue (backporting). Please be aware, that new features (changes that are not fixing bugs) are usually not possible to be backported.

If you are planning to contribute code make sure to contact us first, either via the mailing list or by opening a new issue about the development you want to contribute. You would then start from the dev (development) branch. The development branch is less restricted on stability and due to it's fast development and change it is highly discouraged for users to rely on it for production runs, if not advised otherwise.