Software plays a vital role in the scientific ecosystem at Berkeley Lab. Scientific advancement relies on the availability of correct, stable, and usable software. In addition to software from commercial vendors and open-source projects, we develop and maintain custom software that provides unique capabilities. Some examples include tools that enable data pipelines near scientific instruments, distributed analysis workflows on supercomputers, web services for experiment control and analysis presentation, and long-term archival storage and retrieval systems. Our software also includes mathematical frameworks, libraries for modeling and simulation, and linear algebra packages used in simulation and machine learning. Additionally, we conduct user research to design custom interfaces and GUIs for scientific exploration.
Software is not a static product; it must evolve to meet new scientific requirements and adapt to new platforms over the lifetime of one or multiple projects. We treat sustainable scientific software as a first-class citizen, as critical to the scientific enterprise as any instrument or methodology, alongside the research it enables. Modern science is increasingly conducted through large, complex, team-based collaborations, and we approach software development similarly, as a collaborative effort that incorporates best practices, automated tools, and user studies.
Treating software as a first-class citizen means recognizing the essential role of the engineers who develop, test, document, and maintain this software. We support and elevate the careers and skills of those who create sustainable scientific software, with an emphasis on fostering a diverse, inclusive, and supportive team. This commitment strengthens our ability to sustainably support the scientific mission.
Our Research Pillars:
- Sustainable Software
- Software Infrastructure for Science
- Software Interfaces & Usability
- Mathematical Software
- Software for Workflows and Data