Skip to content

Repository files navigation

MCHEP

MCHEP is a highly parallelizable Monte Carlo integration routine. Specifically, it supports multi-threads/cores parallelization, Single Instruction Multiple Data (SIMD) instructions, and GPU acceleration. Currently, it implements two adaptive multidimensional integrations, namely VEGAS and VEGAS+ (with adaptive stratified sampling) as presented in the paper arXiv:2009.05112.

Documentation

Performance

The following benchmark compares MCHEP against the CUBA library across different integrand complexities, simulating typical High Energy Physics (HEP) workloads:

MCHEP vs CUBA Scaling Benchmark

The left plot shows the integration throughput (evaluations per millisecond) vs. computational cost per evaluation. MCHEP with SIMD+AVX consistently outperforms both MCHEP scalar and CUBA across all complexity levels. The right plot shows the speedup factor of MCHEP implementations compared to CUBA Vegas. MCHEP SIMD+AVX achieves 4-6x speedup over CUBA for typical HEP workloads.

Significant improvements can be obtained using SIMD+AVX instructions. See benchmark details for comprehensive comparisons.

QCD ComplexityTypical Cost (FLOPS)MCHEP Scalar (evals/ms)MCHEP SIMD+AVX (evals/ms)CUBA (evals/ms)Speedup vs CUBA
LO~10k2,5007,5001,8004.2x
NLO~1M48153344.5x
NNLO~10M51853.9x

Feature Availability

FeatureRust APIC/C++ APIPython API
VegasVegas+VegasVegas+VegasVegas+
Multi-threaded (Rayon)
SIMD
GPU
MPI
MPI+SIMD

Citation

If you are using MCHEP, please cite the softwareCrates.io

About

A highly parallelizable Monte Carlo integration routine for HEP with support for SIMD and GPU acceleration

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages