Code Base
Development
The following
discussion is based on my experience with the oscillation subgroup
averages.
Our code base
consists of the programs and scripts we use to calculate averages. The
existing code works, but could be upgraded to:
- improve useability, especially for non-expert users,
- ease maintenance and upgrades,
- support new averaging techniques.
Useability
The steps
involved in reproducing the EPS 2003 Delta(m_d) average are
outlined here and involve
downloading about 30 input files in various formats, and running
multiple passes of a master shell scripts that invokes 3 executables
(COMBOS, BFRACTIONS, PAW). This level of complexity effectively
prevents a casual user from understanding the inputs and methodology
used in a particular average. Some amount of complexity is unavoidable
given the underlying problem, but the following changes might improve
the overall useability:
- more structured set of input files with consistent input format
(eg, XML-based with XSD schema
definitions),
- tools to browse input and output files (eg, XML-based with XSLT translation to HTML or
SVG),
- merging of executables.
Maintenance and
Upgrades
The COMBOS
fortran code started as a simple program and then gradually accumulated
more and more features. The result is difficult to maintain and
upgrade. The following changes might help:
- use standard input format (eg, XML based) to eliminate complex
input-parsing code,
- re-examine the overall program design in light of the actual main
use cases today,
- switch to an object-oriented language (also makes it easier to
find students willing to help).
New Averaging
Techniques
There are
already several recent results that we cannot fully exploit in COMBOS
averages, for example, a simultaneous measurements of (tau(Bd),
Delta(m_d)). There are also new oscillation quantities that have been
measured that we cannot yet average, for example, Delta(Gamma_d) and
|q/p|. Should we try to implement these within the existing COMBOS
framework, or make other code changes first?
Page created by David
Kirkby and last update 9 Sep 2003