Skip to content
Janko Boehm edited this page Jan 27, 2023 · 48 revisions

pfd‐parallel: Massively‐Parallel Partial Fraction Decomposition

Overview

This package provide a massively parallel framework for partial fraction decomposition of rational functions based on the Singular/GPI-Space framework.

Our implementation is based on a combination of the following two algorithms:

  1. the approach described in the paper

Janko Boehm, Marcel Wittmann, Zihao Wu, Yingxuan Xu, and Yang Zhang: IBP reduction coefficients made simple, JHEP 12 (2020) 054,

which has been implemened in Singular in the library pfd.lib.

  1. MultivariateApart algorithm

Matthias Heller, Andreas von Manteuffel, Comput.Phys.Commun. 271 (2022) 108174

Although applicable in general, its primary aim is the partial fraction decomposition of integration-by-parts coefficients in high energy physics.

Our package relies on code developed in the repository framework implemented primarily by Lukas Ristau.

Since most useful in applications in high energy physics, the main function of our framework applies the partial fraction decoposition function to a specified subset of entries of a two-dimensional array of rational functions.

Installation

To use the framework, it is required to install Singular, GPI-Space, some of their dependencies and the project code itself. The preferable way is the use the supercomputing package manager Spack, which will take care of all dependencies automatically. We also provide an instruction for a manual installation of all components, which can be used in case the installation with Spack is not possible on the target system.

Installation of pfd parallel using Spack

Appendix: Manual installation from sources

Example and user guide

We provide an example how to use pfd-parallel. We also discuss the options of the implementation, e.g. input formats, output formats, choice of parallelization strategy, and algorithmic options available. In the appendix section, we provide some scripts which are useful to run computations in an automatic manner.

How to use pfd parallel

Appendix: Convenient scripts to run a computation in pfd parallel

Clone this wiki locally