Skip to content

Commit

Permalink
Merge pull request #2811 from ComputationalRadiationPhysics/release-0…
Browse files Browse the repository at this point in the history
….4.2

Release 0.4.2
  • Loading branch information
ax3l authored Nov 19, 2018
2 parents f6f8ebd + 3351a70 commit 067d2d3
Show file tree
Hide file tree
Showing 18 changed files with 369 additions and 148 deletions.
34 changes: 33 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,38 @@
Changelog
=========

0.4.2
-----
**Date:** 2018-11-TBA

CPU Plugin Performance

This release fixes a performance regression for energy histograms and phase
space plugins on CPU with our OpenMP backend on CPU. At least OpenMP 3.1 is
needed to benefit from this. Additionally, several small documentation issues
have been fixed and the energy histogram python tool forgot to return the first
iteration.

Thanks to Axel Huebl, René Widera, Sebastian Starke, and Marco Garten for
contributions to this release!

### Changes to "0.4.1"

**Bug Fixes:**
- Plugin performance regression:
- Speed of plugins `EnergyHistogram` and `PhaseSpace` on CPU (`omp2b`) #2802
- Tools:
- Python `EnergyHistogramData`: skip of first iteration #2799

**Misc:**
- update Alpaka to 0.3.5 to fix #2802
- Docs:
- CFL Static Assert: new grid.param #2804
- missing exponent in fieldIonization.rst #2790
- remove grep file redirect #2788
- Calorimeter Plugin: Document File Suffix #2800


0.4.1
-----
**Date:** 2018-11-06
Expand All @@ -16,7 +48,7 @@ moving window simulations.
Thanks to Axel Huebl, René Widera, Richard Pausch and Andrei Berceanu for
contributions to this release!

### Changes to "0.4.1"
### Changes to "0.4.0"

**Bug Fixes:**
- PIConGPU:
Expand Down
2 changes: 1 addition & 1 deletion INSTALL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ rsync
- *Arch Linux:* ``sudo pacman --sync rsync``
- *Spack:* ``spack install rsync``

alpaka 0.3.4
alpaka 0.3.5
""""""""""""
- `alpaka <https://github.com/ComputationalRadiationPhysics/alpaka>`_ is included in the PIConGPU source code

Expand Down
4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,9 @@
# built documents.
#
# The short X.Y version.
version = u'0.4.1'
version = u'0.4.2'
# The full version, including alpha/beta/rc tags.
release = u'0.4.1'
release = u'0.4.2'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/install/instructions/spack.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ First `install spack <http://spack.readthedocs.io/en/latest/getting_started.html
source $HOME/src/spack/share/spack/setup-env.sh
# install a supported compiler
spack compiler list | grep [email protected] 1>/dev/null && spack install [email protected] && spack load [email protected] && spack compiler add
spack compiler list | grep -q [email protected] && spack install [email protected] && spack load [email protected] && spack compiler add
# add the PIConGPU repository
git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git $HOME/src/spack-repo
Expand Down
2 changes: 1 addition & 1 deletion docs/source/models/field_ionization.rst
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ Ammosov-Delone-Krainov (ADK)
:nowrap:
\begin{align}
\Gamma_\mathrm{ADK} &= \underbrace{\sqrt{\frac{3 n^{*3} F}{\pi Z^3}}}_\text{lin. pol.} \frac{F D^2}{8 \pi Z} \exp\left(-\frac{2Z}{3n^{*3}F}\right) \\
\Gamma_\mathrm{ADK} &= \underbrace{\sqrt{\frac{3 n^{*3} F}{\pi Z^3}}}_\text{lin. pol.} \frac{F D^2}{8 \pi Z} \exp\left(-\frac{2Z^3}{3n^{*3}F}\right) \\
D &\equiv \left( \frac{4 \mathrm{e} Z^3}{F n^{*4}} \right)^{n^*} \hspace{2cm} n^* \equiv \frac{Z}{\sqrt{2 E_\mathrm{ip}}}
\end{align}
Expand Down
13 changes: 11 additions & 2 deletions docs/source/usage/plugins/particleCalorimeter.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ Therein, a species can be also be marked for detecting particles leaving the sim
.cfg file
^^^^^^^^^

All options are denoted for the photon (``ph``) particle species here.
All options are denoted exemplarily for the photon (``ph``) particle species here.


================================== =========================================================================================
PIConGPU command line option Description
================================== =========================================================================================
``--ph_calorimeter.period`` The ouput periodicity of the plugin.
A value of ``100`` would mean an output at simulation time step *0, 100, 200, ...*.
``--ph_calorimeter.file`` Output file prefix. Files will be stored in the folder ``ph_calorimeter``
``--ph_calorimeter.file`` Output file suffix. Put unique name if same ``species + filter`` is used multiple times.
``--ph_calorimeter.filter`` Use filtered particles. All available filters will be shown with ``picongpu --help``
``--ph_calorimeter.numBinsYaw`` Specifies the number of bins used for the yaw axis of the calorimeter.
Defaults to ``64``.
Expand Down Expand Up @@ -93,6 +93,8 @@ Output
^^^^^^

The calorimeters are stored in hdf5-files in the ``simOutput/<species>_calorimeter/<filter>/`` directory.
The file names are ``<species>_calorimeter_<file>_<sfilter>_<timestep>_0_0_0.h5``.

The dataset within the hdf5-file is located at ``/data/<timestep>/calorimeter``.
Depending on whether energy binning is enabled the dataset is two or three dimensional.
The dataset has the following attributes:
Expand Down Expand Up @@ -129,6 +131,13 @@ Attribute Description
#. calorimeter for species ph each 128th time step **with** logarithmic energy binning.
#. calorimeter for species ph each 1000th time step **without** (this is the default) logarithmic energy binning.

.. attention::

When using the plugin multiple times for the same combination of ``species`` and ``filter``, you *must* provide a unique ``file`` suffix.
Otherwise output files will overwrite each other, since only ``species``, ``filter`` and ``file`` suffix are encoded in it.

An example use case would be two (or more) calorimeters for the same species and filter but with differing position in space or different binning, range, linear and log scaling, etc.

Analysis Tools
^^^^^^^^^^^^^^

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@ namespace dirSplitting
* A workaround is to add a template dependency to the expression.
* `sizeof(ANY_TYPE) != 0` is always true and defers the evaluation.
*/
PMACC_CASSERT_MSG(DirectionSplitting_Set_dX_equal_dt_times_c____check_your_gridConfig_param_file,
PMACC_CASSERT_MSG(DirectionSplitting_Set_dX_equal_dt_times_c____check_your_grid_param_file,
(SI::SPEED_OF_LIGHT_SI * SI::DELTA_T_SI) == SI::CELL_WIDTH_SI &&
(sizeof(T_Dummy) != 0));
PMACC_CASSERT_MSG(DirectionSplitting_use_cubic_cells____check_your_gridConfig_param_file,
PMACC_CASSERT_MSG(DirectionSplitting_use_cubic_cells____check_your_grid_param_file,
SI::CELL_HEIGHT_SI == SI::CELL_WIDTH_SI &&
(sizeof(T_Dummy) != 0));
#if (SIMDIM == DIM3)
PMACC_CASSERT_MSG(DirectionSplitting_use_cubic_cells____check_your_gridConfig_param_file,
PMACC_CASSERT_MSG(DirectionSplitting_use_cubic_cells____check_your_grid_param_file,
SI::CELL_DEPTH_SI == SI::CELL_WIDTH_SI &&
(sizeof(T_Dummy) != 0));
#endif
Expand Down
2 changes: 1 addition & 1 deletion include/picongpu/fields/MaxwellSolver/None/None.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ namespace none
>
{
/* Courant-Friedrichs-Levy-Condition for Yee Field Solver: */
PMACC_CASSERT_MSG(Courant_Friedrichs_Levy_condition_failure____check_your_gridConfig_param_file,
PMACC_CASSERT_MSG(Courant_Friedrichs_Levy_condition_failure____check_your_grid_param_file,
(SPEED_OF_LIGHT*SPEED_OF_LIGHT*DELTA_T*DELTA_T*INV_CELL2_SUM)<=1.0);
};
} // namespace none
Expand Down
2 changes: 1 addition & 1 deletion include/picongpu/fields/MaxwellSolver/Yee/Yee.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ namespace maxwellSolver
void updateE()
{
/* Courant-Friedrichs-Levy-Condition for Yee Field Solver: */
PMACC_CASSERT_MSG(Courant_Friedrichs_Levy_condition_failure____check_your_gridConfig_param_file,
PMACC_CASSERT_MSG(Courant_Friedrichs_Levy_condition_failure____check_your_grid_param_file,
(SPEED_OF_LIGHT*SPEED_OF_LIGHT*DELTA_T*DELTA_T*INV_CELL2_SUM)<=1.0);

typedef SuperCellDescription<
Expand Down
2 changes: 1 addition & 1 deletion include/picongpu/version.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@

#define PICONGPU_VERSION_MAJOR 0
#define PICONGPU_VERSION_MINOR 4
#define PICONGPU_VERSION_PATCH 1
#define PICONGPU_VERSION_PATCH 2
#define PICONGPU_VERSION_LABEL ""
4 changes: 1 addition & 3 deletions lib/python/picongpu/plugins/data/energy_histogram.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ def get_iterations(self, species, species_filter="all"):

# the first column contains the iterations
return pd.read_csv(data_file_path,
skiprows=1,
usecols=(0,),
delimiter=" ",
dtype=np.uint64).values[:, 0]
Expand Down Expand Up @@ -137,7 +136,6 @@ def get(self, species, species_filter="all", iteration=None,
# read whole file as pandas.DataFrame
data = pd.read_csv(
data_file_path,
skiprows=1,
delimiter=" "
)
# upper range of each bin in keV
Expand Down Expand Up @@ -170,7 +168,7 @@ def get(self, species, species_filter="all", iteration=None,
if not set(iteration).issubset(data.index.values):
raise IndexError('Iteration {} is not available!\n'
'List of available iterations: \n'
'{}'.format(iteration, data['iteration']))
'{}'.format(iteration, data.index.values))

# remove unused columns
del data['sum']
Expand Down
7 changes: 3 additions & 4 deletions thirdParty/alpaka/.travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright 2015-2017 Benjamin Worpitz, Erik Zenker
# Copyright 2015-2018 Benjamin Worpitz, Erik Zenker
#
# This file is part of alpaka.
#
Expand All @@ -20,7 +20,6 @@

language: generic
os: linux
sudo: required
dist: trusty
services:
- docker
Expand All @@ -34,8 +33,8 @@ services:
# [clang++] ALPAKA_CI_CLANG_VER : {3.5.2, 3.6.2, 3.7.1, 3.8.1, 3.9.1, 4.0.0, 5.0.0}
# CMAKE_BUILD_TYPE : {Debug, Release}
# ALPAKA_CI : {TRAVIS}
# ALPAKA_CI_BOOST_BRANCH : {boost-1.62.0, boost-1.63.0, boost-1.64.0, boost-1.65.1, boost-1.66.0, boost-1.67.0}
# ALPAKA_CI_CMAKE_VER : {3.7.2, 3.8.2, 3.9.6, 3.10.3, 3.11.1}
# ALPAKA_CI_BOOST_BRANCH : {boost-1.62.0, boost-1.63.0, boost-1.64.0, boost-1.65.1, boost-1.66.0, boost-1.67.0, boost-1.68.0}
# ALPAKA_CI_CMAKE_VER : {3.7.2, 3.8.2, 3.9.6, 3.10.3, 3.11.4, 3.12.3}
# ALPAKA_CI_SANITIZERS : {ASan, UBsan, TSan, ESan}
# TSan is not currently used because it produces many unexpected errors
# ALPAKA_CI_ANALYSIS : {ON, OFF}
Expand Down
6 changes: 3 additions & 3 deletions thirdParty/alpaka/include/alpaka/acc/AccCpuOmp2Blocks.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
#include <alpaka/idx/bt/IdxBtZero.hpp>
#include <alpaka/atomic/AtomicNoOp.hpp>
#include <alpaka/atomic/AtomicStlLock.hpp>
#include <alpaka/atomic/AtomicOmpCritSec.hpp>
#include <alpaka/atomic/AtomicOmpBuiltIn.hpp>
#include <alpaka/atomic/AtomicHierarchy.hpp>
#include <alpaka/math/MathStl.hpp>
#include <alpaka/block/shared/dyn/BlockSharedMemDynBoostAlignedAlloc.hpp>
Expand Down Expand Up @@ -85,7 +85,7 @@ namespace alpaka
public idx::bt::IdxBtZero<TDim, TSize>,
public atomic::AtomicHierarchy<
atomic::AtomicStlLock<16>, // grid atomics
atomic::AtomicOmpCritSec, // block atomics
atomic::AtomicOmpBuiltIn, // block atomics
atomic::AtomicNoOp // thread atomics
>,
public math::MathStl,
Expand Down Expand Up @@ -116,7 +116,7 @@ namespace alpaka
idx::bt::IdxBtZero<TDim, TSize>(),
atomic::AtomicHierarchy<
atomic::AtomicStlLock<16>,// atomics between grids
atomic::AtomicOmpCritSec, // atomics between blocks
atomic::AtomicOmpBuiltIn, // atomics between blocks
atomic::AtomicNoOp // atomics between threads
>(),
math::MathStl(),
Expand Down
10 changes: 5 additions & 5 deletions thirdParty/alpaka/include/alpaka/acc/AccCpuOmp2Threads.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include <alpaka/idx/gb/IdxGbRef.hpp>
#include <alpaka/idx/bt/IdxBtOmp.hpp>
#include <alpaka/atomic/AtomicStlLock.hpp>
#include <alpaka/atomic/AtomicOmpCritSec.hpp>
#include <alpaka/atomic/AtomicOmpBuiltIn.hpp>
#include <alpaka/atomic/AtomicHierarchy.hpp>
#include <alpaka/math/MathStl.hpp>
#include <alpaka/block/shared/dyn/BlockSharedMemDynBoostAlignedAlloc.hpp>
Expand Down Expand Up @@ -87,8 +87,8 @@ namespace alpaka
public idx::bt::IdxBtOmp<TDim, TSize>,
public atomic::AtomicHierarchy<
atomic::AtomicStlLock<16>, // grid atomics
atomic::AtomicOmpCritSec, // block atomics
atomic::AtomicOmpCritSec // thread atomics
atomic::AtomicOmpBuiltIn, // block atomics
atomic::AtomicOmpBuiltIn // thread atomics
>,
public math::MathStl,
public block::shared::dyn::BlockSharedMemDynBoostAlignedAlloc,
Expand Down Expand Up @@ -118,8 +118,8 @@ namespace alpaka
idx::bt::IdxBtOmp<TDim, TSize>(),
atomic::AtomicHierarchy<
atomic::AtomicStlLock<16>,// atomics between grids
atomic::AtomicOmpCritSec, // atomics between blocks
atomic::AtomicOmpCritSec // atomics between threads
atomic::AtomicOmpBuiltIn, // atomics between blocks
atomic::AtomicOmpBuiltIn // atomics between threads
>(),
math::MathStl(),
block::shared::dyn::BlockSharedMemDynBoostAlignedAlloc(static_cast<std::size_t>(blockSharedMemDynSizeBytes)),
Expand Down
10 changes: 5 additions & 5 deletions thirdParty/alpaka/include/alpaka/acc/AccCpuOmp4.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include <alpaka/idx/gb/IdxGbRef.hpp>
#include <alpaka/idx/bt/IdxBtOmp.hpp>
#include <alpaka/atomic/AtomicStlLock.hpp>
#include <alpaka/atomic/AtomicOmpCritSec.hpp>
#include <alpaka/atomic/AtomicOmpBuiltIn.hpp>
#include <alpaka/atomic/AtomicHierarchy.hpp>
#include <alpaka/math/MathStl.hpp>
#include <alpaka/block/shared/dyn/BlockSharedMemDynBoostAlignedAlloc.hpp>
Expand Down Expand Up @@ -87,8 +87,8 @@ namespace alpaka
public idx::bt::IdxBtOmp<TDim, TSize>,
public atomic::AtomicHierarchy<
atomic::AtomicStlLock<16>, // grid atomics
atomic::AtomicOmpCritSec, // block atomics
atomic::AtomicOmpCritSec // thread atomics
atomic::AtomicOmpBuiltIn, // block atomics
atomic::AtomicOmpBuiltIn // thread atomics
>,
public math::MathStl,
public block::shared::dyn::BlockSharedMemDynBoostAlignedAlloc,
Expand Down Expand Up @@ -118,8 +118,8 @@ namespace alpaka
idx::bt::IdxBtOmp<TDim, TSize>(),
atomic::AtomicHierarchy<
atomic::AtomicStlLock<16>,// atomics between grids
atomic::AtomicOmpCritSec, // atomics between blocks
atomic::AtomicOmpCritSec // atomics between threads
atomic::AtomicOmpBuiltIn, // atomics between blocks
atomic::AtomicOmpBuiltIn // atomics between threads
>(),
math::MathStl(),
block::shared::dyn::BlockSharedMemDynBoostAlignedAlloc(static_cast<std::size_t>(blockSharedMemDynSizeBytes)),
Expand Down
2 changes: 1 addition & 1 deletion thirdParty/alpaka/include/alpaka/alpaka.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
// atomic
#include <alpaka/atomic/AtomicCudaBuiltIn.hpp>
#include <alpaka/atomic/AtomicNoOp.hpp>
#include <alpaka/atomic/AtomicOmpCritSec.hpp>
#include <alpaka/atomic/AtomicOmpBuiltIn.hpp>
#include <alpaka/atomic/AtomicStlLock.hpp>
#include <alpaka/atomic/Op.hpp>
#include <alpaka/atomic/Traits.hpp>
Expand Down
Loading

0 comments on commit 067d2d3

Please sign in to comment.