MultithreadCorner/Hydra: Hydra 3.2.3
Description
Hydra is a C++14 compliant and header only framework designed to perform common data analysis tasks on massively parallel platforms. Hydra provides a collection of containers and algorithms commonly used in HEP data analysis, which can deploy transparently OpenMP, CUDA and TBB enabled devices, allowing the user to re-use the same code across a large range of available multi-core CPU and accelerators. The framework design is focused on performance and precision.
The core algorithms follow as close as possible the implementations widely used in frameworks like ROOT and libraries like GSL.
Currently Hydra supports:
- Generation of phase-space Monte Carlo samples with any number of particles in the final states. Sequential decays, calculation of integrals of models over the corresponding phase-space and production of weighted and unweighted samples, which can be flat or distributed following a model provided by the user.
- Sampling of multidimensional pdfs.
- Multidimensional maximum likelihood fits using binned and unbinned data sets.
- Multi-layered simultaneous fit of different models, over different datasets, deploying different parallelization strategies for each model.
- Calculation of S-Plots, a popular technique for statistical unfolding of populations contributing to a sample.
- Evaluation of multidimensional functions over heterogeneous data sets.
- Numerical integration of multidimensional functions using self-adaptive Monte Carlo and quadrature methods.
- Multidimensional sparse and dense histogramming of large samples.
- Object-based interface to FFTW and CuFFT for performing Fast Fourier Transform in CPU and GPU.
- FFT based one-dimensional convolution for arbitrary signal and kernel shapes.
- Booststrap and real cubic spiline for datasets on CPU and GPU.
- Sobol low discrepance sequences up to 3667 dimensions
This release:
1) Adding more counter based PRNGs, with periods of 2^64, 2^128 and 2^256.
2) TestU01 and PracRand wrappers for testing counter based random numbers generators. 3) Improvement of interfaces for sampling, unweighting and container filling, namely: hydra::sample
, hydra::unweight
and hydra::random_fill
. Now it is possible to set a maximum probability value, seed and sequence offset for the underlying prng in these facilities. The new parameters are defaulted to resonable values, so no code relying in the previous interface would get broken. 4) Many others minor improvements.
Bug fixes:
1) Missing assignment operators for hydra::FunctionArgments
2) Covering composite of composites (https://github.com/MultithreadCorner/Hydra/issues/100)
3) Covering caching for parameterless functors.
4) Fix bug on hydra::fill_random
(https://github.com/MultithreadCorner/Hydra/issues/105)
Files
MultithreadCorner/Hydra-v3.2.3.zip
Files
(3.4 MB)
Name | Size | Download all |
---|---|---|
md5:2ce49df70a73e2566c97714b7ee3df41
|
3.4 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/MultithreadCorner/Hydra/tree/v3.2.3 (URL)