Statement of Software Principles
The Statement of Principles represent guiding principles for EIC Software. They have been endorsed by the international EIC community. The endorsers are listed below. The Statement of Principles are also available as PDF version.
Statement of Principles
1. We aim to develop a diverse workforce, while also cultivating an environment of equity and inclusivity as well as a culture of belonging.
2. We will have an unprecedented compute-detector integration:
- We will have a common software stack for online and offline software, including the processing of streamed data and its time-ordered structure.
- We aim for autonomous alignment and calibration.
- We aim for a rapid, near-real-time turnaround of the raw data to online and offline productions.
3. We will leverage heterogeneous computing:
- We will enable distributed workflows on the computing resources of the worldwide EIC community, leveraging not only HTC but also HPC systems.
- EIC software should be able to run on as many systems as possible, while supporting specific system characteristics, e.g., accelerators such as GPUs, where beneficial.
- We will have a modular software design with structures robust against changes in the computing environment so that changes in underlying code can be handled without an entire overhaul of the structure.
4. We will aim for user-centered design:
- We will enable scientists of all levels worldwide to actively participate in the science program of the EIC, keeping the barriers low for smaller teams.
- EIC software will run on the systems used by the community, easily.
- We aim for a modular development paradigm for algorithms and tools without the need for users to interface with the entire software environment.
5. Our data formats are open, simple and self-descriptive:
- We will favor simple flat data structures and formats to encourage collaboration with computer, data, and other scientists outside of NP and HEP.
- We aim for access to the EIC data to be simple and straightforward.
6. We will have reproducible software:
- Data and analysis preservation will be an integral part of EIC software and the workflows of the community.
- We aim for fully reproducible, re-usable, and re-interpretable analyses that are based on reusable software and are amenable to adjustments and new interpretations.
7. We will embrace our community:
- EIC software will be open source with attribution to its contributors.
- We will use publicly available productivity tools.
- EIC software will be accessible by the whole community.
- We will ensure that mission critical software components are not dependent on the expertise of a single developer, but managed and maintained by a core group.
- We will not reinvent the wheel but rather aim to build on and extend existing efforts in the wider scientific community.
- We aim for a modular development paradigm for algorithms and tools without the need for users to interface with the entire software environment.
- We will support the community with active training and support sessions where experienced software developers and users interact with new users.
- We will support the careers of scientists who dedicate their time and effort towards software development.
8. We will provide a production-ready software stack throughout the development:
- We will not separate software development from software use and support.
- We are committed to providing a software stack for EIC science that continuously evolves and can be used to achieve all EIC milestones.
- We will deploy metrics to evaluate and improve the quality of our software.
- We aim to continuously evaluate, adapt/develop, validate, and integrate new software, workflow, and computing practices.
Endorsers:
W. Armstrong (Argonne National Laboratory), M. Asai (Jefferson Lab), J. Bernauer (Stony Brook University), A. Bressan (University of Trieste and INFN), G. Bozzi (University of Cagliari and INFN Cagliari), W. Deconinck (University of Manitoba), M. Diefenthaler (Jefferson Lab), C. Dilks (Duke University), D. Elia (INFN Bari), P. Elmer (Princeton University), C. Fanelli (Massachusetts Institute of Technology), S. Fazio (University of Calabria and INFN Cosenza), O. Hen (Massachusetts Institute of Technology), D. Higinbotham (Jefferson Lab), T. Horn (Catholic University of America), J. Huang (Brookhaven National Laboratory), A. Jentsch (Brookhaven National Laboratory), S. Joosten (Argonne National Laboratory), K. Kauder (Brookhaven National Laboratory), D. Keller (University of Virginia), J. Lajoie (Iowa State University), E. Lancon (Brookhaven National Laboratory), J. Landgraf (Brookhaven National Laboratory), P. Laycock (Brookhaven National Laboratory), D. Lawrence (Jefferson Lab), W. Li (Stony Brook University), J. Osborn (Oak Ridge National Laboratory), B. Page (Brookhaven National Laboratory), M. Potekhin (Brookhaven National Laboratory), A. Puckett (University of Connecticut), J. Reinhold (Florida International University), J. Rittenhouse West (Lawrence Berkeley National Laboratory), D. Romanov (Jefferson Lab), T. Sakaguchi (Brookhaven National Laboratory), B. Sawatzky (Jefferson Lab), A. Schmidt (George Washington University), R. Singh (Institute of Nuclear Physics Polish Academy of Sciences), P. Steinberg (Brookhaven National Laboratory), Z. Tu (Brookhaven National Laboratory), T. Wenaus (Brookhaven National Laboratory).