Software

As an important part of my work, I have written software for scientific computing and data analysis. Here I have collected some pieces of code that other people might find useful.

Jump to:

aderrors

A library for analysis of Monte Carlo data that combines the \( \Gamma \)-method with automatic differentiation to perform error propagation exactly. The paper (arXiv link) explains the benefits of such an approach.

uSEIR.jl

A solver for non-Markovian Susceptible-Exposed-Infected-Recovered epidemiological model in Julia. There is also a python/cython version.

BDIO.jl

A Julia native implementation of read/write of BDIO files.

uncertainties

A fortran module for linear error propagation. This module is a simplified software of the previously mentioned aderrors that does not support the analysis of MC data.

mxmx

The MIXMAX random number generator implemented in fortran. This implementation is heavily based on the C reference implementation available in https://mixmax.hepforge.org/ (mixmax_release_100_beta.zip). Note that large correlations among random samples have been recently discovered by L’Ecuyer, Wambergue and Bourceretq.

openQ*D

A highly scalable simulation code for Wilson fermions with C* boundary conditions based on the openQCD simulation code. Description of the code and the theoretical setup. My contributions to this software have been modest. Other members of the collaboration deserve much more credit for this work.

precision-mode

An emacs minor mode that helps converting numerical values with uncertainties between human readable and computer readable formats.

These are just a few lines of elisp, but I find it extremely useful.

ymsu3

This code simulates the pure gauge SU(3) theory with different boundary conditions (SF, open, twisted,…). It can perform on-line measurements of gradient flow quantities with several fixed step-size or adaptive step-size integrators and for different flow definitions (See here and there for the details of the theoretical setup). It can also measure the Schrödinger Functional coupling.

The code is largely undocumented. What is interesting is that this code has been written completely in standard fortran 2008, using coarrays for parallel processing. The code shows very good strong scaling up to ~1024 cores in several practical simulations:

Wilson flow Zeuthen flow
Strong scaling of the ymsu3 code for the measurements of flow quantities (i.e. "Wilson" and "Zeuthen" flow respectively). (Simulations performed at the CSCS supercomputing center).