Source-linked AI summary
FIESTA5: numerical high-performance Feynman integral evaluation
A. V. Smirnov, N. D. Shapurov, L. I. Vysotsky
TL;DR
Feynman integrals require singularities to be revealed before expansion in ε and numerical integration, and some complex-kinematics cases have been difficult to evaluate. FIESTA5 combines improved sector and contour-decomposition methods with new integrators and integration optimizations. The authors report substantially better benchmarks, including results for cases where the previous version could not provide one.
Problem
Before numerical integration, singularities must be revealed because expansion in ε cannot simply be interchanged with integration.
Source: §2.2 · p. 6Method
FIESTA5 improves sector and contour decomposition and adds Quasi Monte Carlo and Tensor Train integrators, alongside integration optimizations.
Source: §1 · p. 4, §2.3 · p. 7Results
FIESTA5 benchmarks outperform the previous FIESTA version by 2–3 times to 100 times or more, including cases where the previous version could not provide a result.
Source: Conclusion · p. 49Takeaways & Limitations
The release produces results for some cases where the previous version was not capable of providing one.
Source: §1 · p. 4, Conclusion · p. 49At pole resolution, a pure negative power of an integration variable can cause a crash; the authors say this normally means a regularization variable should be used.
Source: §2.7 · p. 12
Abstract
from arXiv · showhide
In this paper we present a new release of the FIESTA program (Feynman Integral Evaluation by a Sector decomposiTion Approach). FIESTA5 is performance-oriented - we implemented improvements of various kinds in order to make Feynman integral evaluation faster. We plugged in two new integrators, the Quasi Monte Carlo and Tensor Train. At the same time the old code of FIESTA4 was upgraded to the C++17 standard and mostly rewritten without self-made structures such as hash tables. There are also several essential improvements which are most relevant for complex integrations - the new release is capable of producing results where previously impossible.
PROGRAM SUMMARY
FIESTA evaluates Feynman integrals numerically through sector decomposition, with stages that resolve singularities and prepare integrals for numerical integration. Its Mathematica preparation and C++ integration can use parallel computing, GPUs, and several integrators.
Nature of problem
- FIESTA uses sector decomposition to resolve pole singularities before numerical integration of Feynman integrals.The stages include sector decomposition, contour decomposition for physical kinematics, pole resolution, epsilon expansion, and numerical integration.Source: PROGRAM SUMMARY · p. 2
Solution method
- Mathematica performs most preparation stages and produces a hard-disk database, while the C++ integration stage runs on PCs or MPI supercomputers and can use GPUs.The Mathematica work is parallelized through shared-memory subkernels.Source: PROGRAM SUMMARY · p. 2
- Vegas from Cuba is the default integrator, with Quasi Monte Carlo and Tensor Train also available.The program can use mimalloc for improved performance.Source: PROGRAM SUMMARY · pp. 2–3
Restrictions
- Integration complexity is mostly limited by the CPU time needed to obtain the desired precision.Running time depends on problem complexity.Source: PROGRAM SUMMARY · p. 3
1. Introduction
FIESTA5 builds on the established sector-decomposition approach to improve performance and extend the cases where FIESTA can produce results. Its release adds integrators and integration optimizations while also modernizing the codebase for future development.
1. Introduction
- Sector decomposition is an established method for numerical Feynman-integral evaluation, and the paper focuses on making it effective across CPUs and GPUs.The authors place FIESTA alongside SecDec/pySecDec as a public competitive program.Source: §1 · p. 4
- Improved contour-decomposition algorithms for physical kinematics enable FIESTA to work in cases that were previously impossible, while also making it much faster.Source: §1 · p. 4
- FIESTA5 adds Quasi Monte Carlo and Tensor Train integrators alongside internal optimizations, including full AVX support for faster integrand evaluation.Profiling identified code parts taking unreasonably large amounts of time for improvement.Source: §1 · p. 4
- Users can allocate different numbers of sampling points to sectors according to their contributions to the final result.This balancing option is among the release's options aimed at faster evaluation.Source: §1 · p. 4
- The release upgrades the code standard to C++17 and replaces legacy self-made hash tables, tries, and vectors with standard structures.It also adds a configure script, documentation, and partial testing; the authors say these changes support broader future development of the code.Source: §1 · p. 5
2. Sector decomposition stages
FIESTA treats sector decomposition as a sequence of stages that prepares singular Feynman integrals for numerical evaluation. The approach also specifies how integrals with non-positive integer indices are handled, with a precision-related qualification.
2. Sector decomposition stages
- FIESTA's sector-decomposition approach consists of automatically performed stages whose characteristics and possible issues are considered individually.The integral uses a delta function to constrain the range of integration variables, polynomial factors with ε-dependent exponents, and targets the first terms of the ε series.Source: §2 · pp. 5–6
- For Feynman integrals, the displayed formula is introduced as the representation used in the sector-decomposition discussion.The paper identifies l as the loop count, A as the sum of indices, and U and F as diagram-defined polynomials of integration variables.Source: §2 · p. 6
2.1. Dealing with negative indices
- Integrals with non-positive integer indices are evaluated according to a derivative-based rule.The passage identifies f^(n) as the derivative of f; the resulting expression becomes more complex, so integrals without negative indices are preferred as master integrals when reasonable precision is sought.Source: §2.1 · p. 6
2.2. Preresolution
FIESTA first addresses singularities that obstruct exchanging integration and ε-expansion, then decomposes the integral into sectors with separated singular factors. FIESTA5 adds strategies intended to reduce high-dimensional decomposition time and introduces sector-wise sampling allocation.
2.2. Preresolution
- Preresolution targets singularities arising when variables approach one another, especially in threshold configurations where F tends to zero through more complex combinations.It searches for variable pairs and splits the integration region before sector decomposition; this can increase the number of starting sectors.Source: §2.2 · pp. 6–7
2.3. Sector decomposition
- Sector decomposition iteratively splits the unit hypercube and changes variables until each sector separates variable monomials from a positive polynomial containing a constant.This follows removal of the delta function and maps the transformed integration regions back to the unit hypercube.Source: §2.3 · p. 7
- KU can yield fewer sectors, but at around 8–10 or more dimensions its runtime can make sector decomposition the hardest stage.KU also requires the external program qhull.Source: §2.3 · p. 8
- FIESTA’s sampling-point balancing draws on an idea for estimating sector contributions, but does not depend on the sector-decomposition strategy.The paper attributes the idea to Borinsky [25] and discusses its implementation at the integration stage.Source: §2.3 · p. 8
- FIESTA5 adds KUS and S2, which decompose product functions separately; S2 is the default and is faster at high dimensions despite not minimizing sector count.The strategies process functions such as U and F separately, substituting variables between them as needed.Source: §2.3 · p. 8
2.4. Symmetries search
FIESTA5 adds sector-symmetry detection and optional bisection for endpoint zeros, while improving contour transformation for physical kinematics. The contour search now identifies variables likely responsible for sign changes before applying shifts.
2.4. Symmetries search
- FIESTA5 detects equal sectors by converting their polynomials to canonical form, but symmetry search is disabled for expansion by regions because it may misidentify sectors.The canonicalization follows the original tsort code of Pak.Source: §2.4 · pp. 8–9
2.5. Hypercube bisection
- Optional hypercube bisection searches each sector for variables associated with F approaching zero as x[i] approaches 1, then splits and remaps the affected axis.It is off by default because it adds sectors, and F reaching zero at the endpoint does not necessarily imply a numerical singularity.Source: §2.5 · p. 9
2.6. Contour transformation
- In physical kinematics, contour transformation moves integration into the complex plane to avoid interior zeros of F that cannot be handled by endpoint or pairwise singularity treatments.The transformation leaves integration boundaries unchanged, relying on F and its derivatives not vanishing simultaneously for Feynman integrals.Source: §2.6 · pp. 9–10
- The shift parameters must keep the transformed integrand away from the origin without crossing another complex-function branch, or results may be incorrect.FIESTA attempts to choose these parameters, but its default settings are sometimes not optimal.Source: §2.6 · p. 10
- FIESTA5 improves lambda search by estimating which variables may cause F to change sign and leaving other variables unshifted by default.The paper also attributes part of the improvement to faster Mathematica code using Compile for repeated numerical substitutions.Source: §2.6 · p. 10
- FIESTA’s contour-shift substages include balancing variable shifts, maximum and best-lambda searches, and removing shifts not expected to change F’s sign.The maximum search estimates λ, while the best-lambda search selects among candidate values.Source: §2.6 · pp. 10–11
- Contour transformation can greatly increase later-stage complexity, and its settings may need tuning when integration converges poorly.The authors identify ContourShiftShape and ContourShiftCoefficient as particularly challenging settings.Source: §2.6 · p. 11
2.7. Pole resolution
Pole resolution makes sector expressions suitable for ε-expansion by isolating singular powers and analytically integrating Taylor terms. An extra regularization variable may be needed in some cases.
2.7. Pole resolution
- When a sector expression contains x[i]^a times a nonvanishing factor, pole resolution subtracts Taylor terms so the remainder is finite and the subtracted terms can be integrated analytically.The exponent a may be linear in ε with a non-positive constant part, which otherwise prevents exchanging integration and ε-expansion.Source: §2.7 · p. 11
- The authors report worse numerical behavior for integration-by-parts approaches to pole resolution.Source: §2.7 · p. 11
- Some cases require an extra regularization variable, with a separate pole-resolution and expansion stage before the ε-expansion.The paper says these stages are similar to the ε stages and does not discuss them separately.Source: §2.7 · p. 11
- A pure negative power of an integration variable after sector decomposition causes a crash at this stage; the authors say this normally indicates that regularization is needed.Source: §2.7 · p. 12
2.8. Epsilon expansion
After pole resolution, FIESTA expands expressions in ε using differentiation rather than Mathematica’s Expand function. It also changes expression generation by disabling an expensive exact-zero check by default.
2.8. Epsilon expansion
- The ε-expansion stage combines expressions and expands them to the required order using differentiation instead of Mathematica’s Expand function.Source: §2.8 · p. 12
- Expressions can grow significantly during ε-expansion, so the paper advises monitoring RAM usage.Source: §2.8 · p. 12
2.9. Expression generation
- Expression generation translates Mathematica-format integrands into a special format for the C++ parser, and this step may take longer than expected.Source: §2.9 · p. 12
- FIESTA5 turns off by default the earlier check for integrals that are unsimplified algebraic expressions equal to zero, making this stage faster.The authors note that substituting multiple values into a large function can be slow in Mathematica; the old check could also yield undefined answers for totally zero integrals.Source: §2.9 · p. 12
2.10. Integration
Integration is generally the most time-consuming sector-decomposition stage, and higher precision requires more sampling points. FIESTA5 focuses on optimizing this stage with new integrators, faster evaluation, and sector-specific sampling allocation.
2.10. Integration
- Increasing sampling points can improve precision but makes integration more time-consuming; complex integrals also offer independent sector integrals for MPI distribution.After choosing an integrator, evaluation time grows linearly with requested sampling points; a complex integral may contain around 10 thousand or more sectors.Source: §2.10 · pp. 12, 13, 15
- FIESTA5 puts substantial optimization effort into integration, which is written in C++ and can run on clusters or GPUs.After integrands are prepared, precision depends greatly on the number of integration sampling points.Source: §2.10 · p. 13
- An integrator seeds sampling points and uses their function values to produce a result and error estimate.The integration pipeline first parses Mathematica expressions into a fast-evaluation form; this parsing takes negligible time.Source: §2.10 · p. 13
- FIESTA5 rewrites more than half of the codebase and adds AVX support for batched evaluation, alongside internal optimizations that reduce extra memory allocations.The authors also suggest mimalloc for performance; AVX is used through Intel intrinsics because compiler optimization does not work for this use.Source: §2.10 · pp. 13–14
- FIESTA5 adds Quasi Monte Carlo (QMC) and Tensor Train (TT) integrators; TT had not previously been used in practical situations, to the authors’ knowledge.QMC was modified to request batches of sampling points.Source: §2.10 · pp. 13–14
- Tensor Train applies tensor factorization to enhanced cubature integration, which can compute efficiently when the integrand admits a low-parametric approximation.Ordinary cubature suffers from a curse of dimensionality, with complexity growing exponentially with the number of variables.Source: §2.10 · p. 14
- Sector balancing first estimates results across sectors using fewer sampling points, then assigns each sector a maxeval setting based on its result size or error estimate.This avoids seeding the same number of points in every sector, whose results can differ by orders of magnitude.Source: §2.10 · pp. 14–15
3. FIESTA installation and usage
This section describes FIESTA installation and usage, including its Mathematica functions and how to prepare, run, or inspect integrations. For individual integrals, it also covers generating expressions for CIntegrateMP and the input syntax and command interface for running them.
3.1. Installation
- FIESTA is distributed through Bitbucket without binary packages, and is known to build on several Linux and macOS systems with gcc, icc, or clang.Optional build dependencies support strategies such as QMC, Tensor Train, MPI, and GPU integration.Source: §3.1 · pp. 15, 16, 18
3.2. Basic usage
- FIESTA5’s Mathematica interface provides functions to generate U and F, evaluate or expand loop and direct integrals, and analyze possible ε-poles.SDEvaluate handles integral evaluation; SDExpand requires F to depend linearly on the expansion variable, while SDExpandAsy supports nonlinear dependencies but may require a regularization variable.Source: §3.2 · pp. 20–22
3.3. Advanced usage — integrating separately
- Use OnlyPrepare->True to save the algebraic preparation in a database, then integrate separately from the command line or on a cluster without Mathematica.Separate integration also lets users increase sampling points or try different integrators without repeating preparation; raising maxeval above its 50000 default is the most direct way to improve result quality, with integration time normally scaling linearly once overhead is negligible.Source: §3.3 · pp. 23–24
3.4. Special case — individual integrals
- CIntegrateTool can inspect database tasks and ε-prefixes, report sector and function counts, and support work with individual integrals.The database may contain multiple tasks when using expansion by regions; prefixes identify terms by ε power and regularization-variable powers.Source: §3.4 · pp. 25–26
- Generated expressions for one function or all functions in a sector are direct CIntegrateMP input, but complex-valued integrals require the complex binary.The complex-capable binary also works for real integrals, but more slowly.Source: §3.4 · p. 27
- The Integrate expression specifies the integration dimension, auxiliary-function count and definitions, and the integrand.The dimension is the number of positive indices minus one.Source: §3.4 · p. 27
- Expressions use x[i] and f[i] indices starting at 1, semicolon-terminated lines, and a final vertical bar; supported notation includes powers, logarithms, π, EulerGamma, and PolyGamma.The paper points to the examples folder for files with the int extension.Source: §3.4 · pp. 27–28
- The integration binary accepts commands from standard input, translates pool options into commands such as SetCurrentIntegratorParameter maxeval 2000000, and lists all options through Help.The paper says this developer-oriented option list is normally unnecessary for regular usage.Source: §3.4 · p. 28
4. FIESTA options
This section surveys FIESTA’s Mathematica and command-line options for configuring parallelism, sector decomposition, integration, runtime behavior, and specialized modes, including controls for job selection, output databases, testing, debugging, and evaluation.
4. FIESTA options
- NumberOfSubkernels controls Mathematica preparation, while NumberOfLinks or --threads controls parallel integration; larger ChunkSize can improve CPU use but raises RAM use and may hurt performance.NumberOfSubkernels defaults to 1 and should be reduced in complicated, memory-intensive cases; ChunkSize should remain much smaller than the number of sectors.Source: §4 · pp. 29, 31
- Strategy selects sector decomposition: S2 is the default, KU may reduce sector count but run slowly with many positive indices, KUS balances speed and quality, and X may not terminate.The default changed from S in previous versions; X may nevertheless be effective.Source: §4 · p. 29
- ComplexMode enables the contour transformation for physical kinematics, and SectorSplitting can help with complex-mode convergence by bisecting sectors at possible zeros of F.MinimizeContourTransformation defaults to True and may be disabled for convergence problems; contour-shift options tune the search or allow continuation without a transformation if it fails.Source: §4 · pp. 29, 31
- SeparateTerms integrates expressions within a sector separately and can substantially affect performance, while BalanceSamplingPoints runs a preliminary estimate to allocate points for the final run.The effect of SeparateTerms cannot be predicted in advance; balancing defaults to off in Mathematica, with BalanceMode defaulting to normError.Source: §4 · p. 33
- Specialized controls include AsyLP, enabled by default to use the faster Lee-Pomeransky representation for region search, and ExactIntegrationOrder for analytic integration in Mathematica mode.ExactIntegrationOrder defaults to -Infinity, meaning no analytic integration attempts; SDExpandAsy also offers options to attempt analytic integration or only print detected regions.Source: §4 · p. 34
- Integrator selects the integration library, with vegasCuba as default, and IntegratorOptions passes settings to that integrator; Precision sets output digits and defaults to 6.The Mathematica and command-line interfaces use different syntax for passing integrator options.Source: §4 · pp. 34–35
- --queueSize controls the job-and-result queue, --printIntegrationCommand prints the pool command before work, and --printStatistics reports average sampling points per prefix.The default queue size is 32; larger queues may be needed with many threads or MPI to prevent the queue from emptying.Source: §4 · pp. 37–38
- --Preparse checks parsing before integration, --Test runs only a sample test, and --FTest checks that F-functions keep the same sign for complex-mode diagnostics.In FTest mode, F-functions are integrated, but those integration results are meaningless; the sign check can help diagnose contour-transformation problems when convergence fails.Source: §4 · pp. 37–38
- --task and --prefix select database integrals, while --onlyPrepare creates a dummy-result output database for later task, prefix, or part jobs.--part runs successive portions of a prepared database to produce the final result.Source: §4 · p. 37
- --continue stores intermediate results for resuming interrupted evaluations; --continueKeep retains them after completion, and --noOutputDatabase disables database saving.Source: §4 · pp. 37–38
- --Native forces native arithmetic, which is faster but may cause errors; --MPFR forces slower MPFR evaluation, and --NoOptimization disables triad optimization for debugging.Source: §4 · p. 38
5. Examples and benchmarks
The benchmarks compare FIESTA versions, decomposition strategies, and integrators across non-complex and physical-kinematics examples. They report faster evaluation and improved results, while showing that outcomes depend on the strategy, integrator, and settings.
5.1. Example without complex numbers, comparing versions, strategies and MPI
- 13 vs 21 seconds (integral 9), 32 vs 88 (19), 73 vs 245 (42), and 2043 vs 5333 (58): FIESTA5 was faster than FIESTA4.The authors report a considerable speedup even without physical kinematics; integral 58 benefited less than 42 because it lacked sector symmetries.Source: Table 1 · p. 39, §5.1 · p. 41
- No strategy wins across all sector-count comparisons: S2 wins for more positive indices, KUS can be faster in some cases, and KU can be too slow or fail.KU produced the fewest sectors but failed for integral 58; S2 was much faster in the reported higher-positive-index case.Source: §5.1 · pp. 39–40
- The MPI timings span different core counts and machines, but the heterogeneous cluster makes those timings unstable.For integral 58, separateTerms was essential to parallelize properly across many workers because otherwise some integrals dominated runtime.Source: §5.1 · p. 42, Table 2 · p. 43
5.2. Physical kinematics, comparing versions and options of the new
- FIESTA5 outperformed FIESTA4 in physical kinematics and matched known results more closely; for integral 40, 13.1300 −18.3537 *I was near 13.0927 −18.3447 *I.With the same sampling points, FIESTA4 returned 7.86407 + −1.79244 *I, far from the known result.Source: §5.2 · p. 43, Table 3 · p. 44
- 177 seconds became 66 with balancing for integral 40, while the reported error increased only slightly from 0.0372 −0.0090I to 0.0408 −0.01480I.The balanced run used the same 50-million-sample setting.Source: §5.2 · pp. 44–45
- The reported AVX comparison’s NoAVX run, using 4 threads, complex mode, and maxeval:50000000, took 342 seconds, returned the same result as AVX, and was almost twice longer.Source: §5.2 · p. 45
5.3. Contour decomposition options and integrators
- For the three-dimensional two-loop example, reducing ContourShiftCoefficient can fix an overly large contour transformation; increasing it may help when convergence is too slow.The authors also caution that integrator choice should depend on the parameters and target accuracy; QMC can add time in the subsection 5.1 example.Source: §5.3 · pp. 47–48
- At large sampling counts, quasiMonteCarlo produces better results and eventually runs faster, despite initial overhead and more MPFR evaluations.It can stop many sector integrals early and concentrate sampling on important ones.Source: §5.3 · p. 48, Table 4 · p. 48
How to cite
The paper recommends citing the integrator libraries used alongside FIESTA. The relevant citation depends on whether the default Cuba integrator, QMC, or Tensor Train is used.
How to cite
- Cite the Cuba library when using the default integrator.Source: How to cite · p. 49
- Cite the QMC integrator when it is used.Source: How to cite · p. 49
- Cite the Tensor Train integrator when it is used.Source: How to cite · p. 49
Conclusion
The benchmarks find that FIESTA5 substantially outperforms the previous version, including cases where FIESTA4 could not produce a result. The authors attribute the improvement to strategy, contour, integrator, and integration optimizations.
Conclusion
- FIESTA5 outperformed the old version by 2–3 times to 100 times or more, and produced results in cases where the previous version could not.Source: Conclusion · p. 49
- The reported performance gains are attributed to new sector decomposition strategies, improved contour transformation, new integrators, and integration optimizations.Source: Conclusion · p. 49
- The authors plan further development of FIESTA to improve performance.Source: Conclusion · p. 49