Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “software engineering”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 55 records · Page 3

COMPOSE-HPC: Software Composition for Extreme Scale Computational Science and Engineering

Software composition is an important aspect of computational science software engineering due to large scale production science codes involving multiple programming languages, execution and concurrency models. To date, programmers must manage the complexity of building and maintaining such systems largely by hand with minimal (if any) automated assistance. As such, a great deal of programmer time is spent generating and maintaining code which leads to a high maintenance and development cost, as well as an increased risk of errors being introduced by hand than would be expected in an automated system. COMPOSE-HPC was a multi-institutional effort, with the Galois contribution focused on a specific area of code analysis and software infrastructure. Specifically, Galois led the design and implementation for the Parser for Annotations in a User-specified Language (PAUL), as well as collaborating with SNL and LLNL on the Retargetable Open Transformation Engine (ROTE). Both components were built on top of the ROSE compiler infrastructure from LLNL. All artifacts developed under the COMPOSE-HPC program are available on the github.com and sourceforge.net open source hosting sites under permissive BSD3 software licenses.

97 MATHEMATICS AND COMPUTING↗

Advanced Simulation and Computing (ASC) Software Quality Plan: ASC Software Quality Engineering Practices (V.4.0)

The purpose of the Sandia National Laboratories (SNL) Advanced Simulation and Computing (ASC) Software Quality Plan is to clearly identify the software quality engineering practices that are the basis for continually improving the quality of ASC software products. This plan defines the SNL ASC Program software quality engineering practices and provides a mapping of these practices to Laboratory Policy System IT008: Provide Quality Software Policy. This plan also identifies ASC Program Management and the software project teams' responsibilities in implementing quality software engineering practices and in assessing progress towards achieving their software quality goals.

97 MATHEMATICS AND COMPUTING↗

RSE-Ops

If DevOps is the intersection of "Developer" and "Operations," then how does this concept map to high performance computing? The answer is RSE-ops, or the intersection of Research Software Engineering and Operations. Research Software Engineers (RSEs) are the individuals writing code for scientific software, and supporting researchers to use codes on high performance computing systems. RSE-ops, then, generally refers to best practices for development and operations of scientific software, which typically happens in a high performance computing environment. A comparison can be made to Cloud Native Devops, which is a similar term that has emerged around Cloud Native Computing. It refers to the application of DevOps practices to the cloud.

97 MATHEMATICS AND COMPUTING↗

Sandia National Laboratories Advanced Simulation and Computing (ASC) Appraisal Method for the Implementation of the ASC Software Quality Engineering Practices (V.2.0)

This document provides a guide to the process of conducting software appraisals under the Sandia National Laboratories (SNL) ASC Program. The goal of this document is to describe a common methodology for planning, conducting, and reporting results of software appraisals thereby enabling: 1) Identification of improvements in implementation of the software quality engineering (SQE) practices identified in the ASC Software Quality Plan across the ASC Program against objective baselines. 2) Feedback from project teams on SQE opportunities for improvement. 3) Identification of strengths and opportunities for improvement for individual project teams. 4) Guidance to the ASC Program on the focus of future SQE activities. Document contents include process descriptions, templates to promote consistent conduct of appraisals, and an explanation of the relationship of this procedure to the SNL ASC software program. The activities described by this document are under the oversight of SNL ASC Program Director and SNL ASC Program Manager.

42 ENGINEERING↗

Best practices in software development for robust and reproducible geoscientific models based on insights from the Global Carbon Budget's dynamic vegetation models

Computational models play an increasingly vital role in scientific research by enabling the numerical simulation of complex processes. Such models are also fundamental in geosciences. For instance, they offer critical insights into the impacts of global change on the Earth system today and in the future. Beyond their value as research tools, models are also software products and should therefore adhere to certain established software engineering standards. However, scientists are rarely trained as software developers, which can lead to potential deficiencies in software quality like unreadable, inefficient, or erroneous code. The complexity of models, coupled with their integration into broader workflows, also often makes it challenging to reproduce results, evaluate processes, and build upon them. In this paper, we review the state and current practices of the development processes of the state-of-the-art land surface models used by the Global Carbon Budget. We combine the experience of modelers from the respective research groups with the expertise of software engineers from tech companies to outline key principles and tools for improving software quality in research. We explore four main areas: (1) model testing and validation, (2) scientific, technical, and user documentation, (3) version control, continuous integration, and code review, and (4) the portability and reproducibility of workflows. Our review reveals that while modeling communities are incorporating many best practices, significant room for improvement remains in areas such as automated testing, automated documentation, and reproducibility. Therefore, we here identify and promote essential software engineering practices, including numerous examples of practices from within the community that can serve as guidelines for other models and could help streamline processes across the entire community. We conclude with an open-source example implementation of these principles, demonstrating portable and reproducible data flows, a continuous integration setup, and web-based visualizations. This example may serve as a practical resource for model developers, users, and all scientists engaged in scientific programming.

Gregor, Konstantin [Technical Univ. of Munich (Ger↗