CERN openlab · Project note
How many digits does a collision need?
I started my CERN openlab placement with a question about PEPPER: which parts of a particle physics event generator need the extra digits of 64-bit arithmetic? I came in thinking about speed. I spent the summer learning where the digits go.
From a collision to a number
During my summer project, I worked with Enrico Bothmann and František Stloukal on PEPPER, a generator for the parton-level stage of a collider simulation. This is where the simulation calculates the hard interaction between incoming partons such as quarks and gluons, before later stages model the development of the event and its passage through a detector. A matrix element helps determine how likely a particular configuration is. The event weight also reflects factors such as how we sampled that configuration. If the arithmetic changes the weight, it can change how much that event contributes to a prediction. PEPPER paper.
What a smaller number format changes
FP32 stores fewer significant bits than FP64. The gap between the numbers it can represent grows as the numbers get larger. When a calculation subtracts two nearly equal quantities, the difference can be smaller than the rounding errors already in them. The subtraction can then be perfectly legal arithmetic and still return a misleading answer. There’s a small mass reconstruction example on the homepage that lets you see this happen.
Start with the same event kinematics and compare the matrix element and weight. Then ask whether the difference changes a quantity the analysis uses. A few digits matter a lot more if they decide which side of a cut an event lands on.
Some hardware can do 32-bit arithmetic faster. My summer project focused on the step that comes first: finding where rounding affects the calculation. I started by making precision a setting I could test. The CERN openlab lightning talk programme has the project description.