MultithreadCorner Hydra Versions Save

Header only framework for data analysis in massively parallel platforms.

v2.4.1

4 years ago

Hydra 2.4.1

  • Update Thrust to version 1.9.6 (merged with variadic-tuple fork from @andrewcorrigan )
  • Hydra now compliles for any version of CUDA equal or greater than 8.0. Including CUDA 10.1
  • hydra::Decays have became range-idiomatic. In particular, the Unweight(...) methods now return a range representing sub-set of the stored sample in hydra::Decays.
  • New example: timedependent_phsp_basic
  • Solved minor bugs all across the tree

FIXME

  • Genz-Malik quadrature algorithm is broken. It will be fixed in the next release.

v2.3.2

5 years ago

Minor corrections on code and version macros.

v2.3.1

5 years ago

CHANGE LOG

Hydra 2.3.1

  1. Interfaces to FFTW and CuFFT for performing 1D real-real complex-real and real-complex FFT on CPU and GPU
  2. FFT based convolution on CPU and GPU for arbitrary pair of functors: hydra::convolute and hydra::ConvolutionFunctor
  3. Cubic spiline reimplementation for deal with abitrary large datasets: hydra::spiline and hydra::SpilineFunctor
  4. new examples showing how to deploy convolution in fits, spilines and FFT.
  5. Many bug fixes across the tree...

v2.2.1

5 years ago

Hydra 2.2.1 Release highlights

  1. New functors and implementations (hydra/functions):

    • ArgusShape
    • BifurcatedGaussian
    • BlattWeisskopfFunctions
    • BreitWignerLineShape
    • BreitWignerNR
    • Chebychev
    • ChiSquare
    • CosHelicityAngle
    • CrystalBallShape
    • DeltaDMassBackground
    • Exponential
    • Gaussian
    • GaussianKDE
    • GeneralizedGamma
    • Ipatia
    • JohnsonSUShape
    • LogNormal
    • M12PhaseSpaceLineShape
    • M12SqPhaseSpaceLineShape
    • PlanesDeltaAngle
    • Polynomial
    • ThreeBodyMassThresholdBackground
    • TrapezoidalShape
    • TriangularShape
    • UniformShape
    • WignerDMatrix
    • ZemachFunctions
  2. Orthogonal polynomials (hydra/functions/Math.h)

    • Chebychev of 1st and 2nd kinds
    • Laguerre
    • Hermite
    • Legendre
    • Jacobi
  3. New Parameter::Create("name") method overload.

  4. Wrappers around thrust algorithms using range semantics:

    • gather
    • scatter
    • sort
    • sort_by_key
    • reduce
    • transform.
    • See header hydra/Algorithms.h
  5. Predefined ranges:

    • hydra::random_gauss_range(...),
    • hydra::random_exp_range(...),
    • hydra::random_flat_range(...),
    • hydra::range(...)
    • hydra::constant_range(...)
    • hydra::phase_space_range(...)
  6. Collecting range: hydra::collect to reorder a range of values according to a indexing scheme.

  7. Introduction of hydra::make_loglikelihood_fcn overloads supporting range semantics.

  8. Introduction of hydra::make_loglikelihood_fcn overloads for binned datasets.

  9. Implementation of hydra::begin, hydra::end, hydra::begin, hydra::rend free functions.

  10. Range semantics for hydra::PhaseSpace.

Many other performance and interface additions and improvements accross the tree.

Bug fixes

  1. Null pointer breaking build in CLING
  2. Fix syntax error in multiarray::insert(...)
  3. Fix syntax error in multivector::insert(...)
  4. Fix syntax error in hydra::reduce
  5. Fix syntax error in hydra::make_loglikelihood_fcn overloads supporting weighted datasets.

v2.1.0

6 years ago

DOI

Release notes of the version v2.1.0

This is a major release of Hydra. Many new features was added and large parts of the framework have been rewritten. The main changes are summarized below.

New features:

  • Monte Carlo based phase-space integrator.
  • Generation of phase-space Monte Carlo 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.
  • Calculation of S-Plots.
  • Numerical integration of multidimensional functions using quadrature methods (Gauss-Kronrod, Genz-Malik).
  • Multidimensional sparse and dense histograms for large datasets.
  • New tags for host and device functions : __hydra_host__, __hydra_device__, __hydra_dual__
  • New symbols to specify host (HYDRA_HOST_SYSTEM) and device (HYDRA_DEVICE_SYSTEM) back-ends at compile time: OMP, TBB, CPP and CUDA.
  • New tags for explicit backends: hydra::omp::sys, hydra::cpp::sys, hydra::cuda::sys, hydra::tbb::sys.
  • Hydra now has its own built-in patched thrust (v1.8.3) distribution. The built-in thrust does not conflict with an user's installation, if present.
  • Hydra now has its own built-in patched Eigen distribution. The built-in Eigen does not conflict with an user's installation, if present.
  • New lambdas wrappers, supporting named parameters.
  • New multidimensional containers: hydra::multiarray and hydra::multivector.
  • New containers for particles and decays: hydra::Decays and hydra::Chains.
  • Common functors (hydra/functions): Gaussian, Exponential, Breit-Wigner, etc

Hydra based scripts can now be compiled and invoked from inside ROOT for execution of algorithms in parallel using TBB and CPP backends.

Many other minor infrastructure improvements, bug fixes and features.

Documentation:

v1,0,0,0

7 years ago