Speaker
Description
Hadrons is a free C++ framework based on the high-performance Grid library to implement lattice QCD measurement workflows. It is based on a modular dataflow programming approach to accommodate with the heterogeneity of lattice measurements. The different measurement steps (inversions, contractions, I/O …) are implemented as individual modules with inputs and outputs, and a measurement workflow forms a directed acyclic graph (DAG) of such modules. All the modules have access to a global environment for storing named objects. A global virtual machine takes care of scheduling the measurement, while minimising the memory consumption of the workflow through an optimisation of the module DAG and a garbage collection mechanism. Hadrons can be driven through a C++ API or an XML description of the DAG, more hybrid approaches can also be developed using the extensive serialisation features of Grid.