Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “Continuous integration”

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 19 records

Overcoming Challenges to Continuous Integration in HPC

Continuous integration (CI) has become a ubiquitous practice in modern software development, with major code hosting services offering free automation on popular platforms. CI offers major benefits, as it enables detecting bugs in code prior to committing changes. While high-performance computing (HPC) research relies heavily on software, HPC machines are not considered “common” platforms. This presents several challenges that hinder the adoption of CI in HPC environments, making it difficult to maintain bug-free HPC projects, and resulting in adverse effects on the research community. Here we explore the challenges that impede HPC CI, such as hardware diversity, security, isolation, administrative policies, and non-standard authentication, environments, and job submission mechanisms. We propose several solutions that could enhance the quality of HPC software and the experience of developers. Implementing these solutions would require significant changes at HPC centers, but if these changes are made, it would ultimately enable faster and better science.

97 MATHEMATICS AND COMPUTING↗

Continuous Integration and Delivery for HPC

Continuous integration, delivery, and deployment (CICD) is widely used in DevOps communities, as it allows for teams of all sizes to deploy rapidly-changing hardware and software resources quickly and confidently. In this paper, we will describe how University of Colorado Boulder Research Computing has adopted these practices on the RMACC Summit supercomputer to allow system engineers and researchers alike to capitalize on the benefits of CICD-centric development workflows. We will introduce the topic of CICD at a high level and describe how such practices can ease common software management challenges for High-Performance Computing (HPC) resources. We will then document the infrastructure deployed for Summit, and explain how software such as Jenkins and Singularity enabled adaptation for an HPC environment. We will conclude with two case studies discussing the use of our CICD infrastructure: one case study from the perspective of a system engineer maintaining user-facing resources, and the other case study from the perspective of a researcher developing, maintaining, and using the MFiX-Exa codebase.

97 MATHEMATICS AND COMPUTING↗

Continuous Integration! You Keep Using Those Words. I Do Not Think They Mean What You Think They Mean.

Continuous Integration (CI) is a best practice in the software community. Often though, there are several ideas as to what it means to practice continuous integration. With this uncertainty of the definition often comes a loss of benefit. It is good to stop and reflect on how and why CI has been, and still is, practiced in software community. So, presented here is a historical prospective of CI along with associated practices, anti-patterns, and benefits. A subsequent presentation will discuss the workflows and the controversy that arises as CI has changed with time, especially in regards to feature-branch development.

97 MATHEMATICS AND COMPUTING↗

Continuous Integration! You Keep Saying Those Words. I Do Not Think They Mean What You Think They Mean [Slides]

Continuous Integration (CI) is a best practice in the software community. Often though, there are several ideas about the meaning of continuous integration. With this uncertainty of definition often comes a loss of benefit to the practice. It is good to stop and reflect on how and why CI has been (and still is) practiced in software community. So, presented here is a historical perspective of CI along with associated practices, anti-patterns, and benefits. A subsequent presentation will discuss the workflows and controversy that had arised as CI has “changed” with time, especially in regards to feature-branch development.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

Operational Intelligence in the ATLAS Continuous Integration System

Describes the role of the ATLAS Continuous Integration (CI) System in the ATLAS offline software development infrastructure • Outlines the CI system components and processes • Details Operational Intelligence techniques to accelerate CI jobs and lower operating costs • Explains the Directed Acyclic Graph (DAG) approach in CI pipelines • Reports achieved improvements

97 MATHEMATICS AND COMPUTING↗

Use of Continuous Integration Tools for Application Performance Monitoring

High performance computing systems are becom- ing increasingly complex, both in node architecture and in the multiple layers of software stack required to compile and run applications. As a consequence, the likelihood is increasing for application performance regressions to occur as a result of routine upgrades of system software components which interact in complex ways. The purpose of this study is to evaluate the effectiveness of continuous integration tools for application performance monitoring on HPC systems. In addition, this paper also describes a prototype system for application perfor- mance monitoring based on Jenkins, a Java-based continuous integration tool. The monitoring system described leverages several features in Jenkins to track application performance results over time. Preliminary results and lessons learned from monitoring applications on Cray systems at the Oak Ridge Leadership Computing Facility are presented.

Vergara Larrea, Veronica G↗

Continuous Integration Service at Fermilab

This paper describes the current architecture of Continuous Integration (CI) service developed at Fermilab, encountered successes and difficulties, as well as future development plans. The current experiment code has hundreds of contributors that provide new features, bug fixes, and other improvements. Version control systems help developers to collaborate in contributing software for their experiments, while the CI system helps developers keep their code healthy. The Fermilab CI service allows experiments and projects to test and validate their offline production and analysis code on the supported platforms. It is built on top of Jenkins, designed to be set up from a configuration file that provides implementation for each phase of the CI workflow, and able to validate experiment code through grid jobs. This CI service provides a dashboard for easy access to logs and statistical graphs. Since the CI service has been adopted by Fermilab experiments/projects, it proved to be very useful to intercept issues in their code early on and get them fixed before running it in production. Currently the CI service is in use by the ArgoNeuT, DUNE, g-2, LArIAT, MINERvA, mu2e, NOvA, SBND and uBooNE experiments and by the following projects: ART and LArSoft software suites, GENIE, and Glidein-WMS. The CI service is under active development and planning to support code profiling.

Di benedetto, Vito↗

BeeSwarm: Enabling Parallel Scaling Performance Measurement in Continuous Integration for HPC Applications

Testing is one of the most important steps in software development–it ensures the quality of software. Continuous Integration (CI) is a widely used testing standard that can report software quality to the developer in a timely manner during development progress. Performance, especially scalability, is another key factor for High Performance Computing (HPC) applications. There are many existing profiling and performance tools for HPC applications, but none of these are integrated into CI tools. In this work, we propose BeeSwarm, an HPC container based parallel scaling performance system that can be easily applied to the current CI test environments. BeeSwarm is mainly designed for HPC application developers who need to monitor how their applications can scale on different compute resources. We demonstrate BeeSwarm using a multi-physics HPC application with Travis CI, GitLab CI and GitHub Actions while using ChameleonCloud and Google Compute Engine as the compute backends. Finally, our results show that BeeSwarm can be used for scalability and performance testing of HPC applications.

97 MATHEMATICS AND COMPUTING↗

Continuous integration for concurrent MOOSE framework and application development on GitHub

For the past several years, Idaho National Laboratory’s MOOSE framework team has employed modern software engineering techniques (continuous integration, joint application/framework source code repos- itories, automated regression testing, etc.) in developing closed-source multiphysics simulation software (Gaston et al., Journal of Open Research Software vol. 2, article e10, 2014). In March 2014, the MOOSE framework was released under an open source license on GitHub, significantly expanding and diversifying the pool of current active and potential future contributors on the project. Despite this recent growth, the same philosophy of concurrent framework and application development continues to guide the project’s development roadmap. Several specific practices, including techniques for managing multiple repositories, conducting automated regression testing, and implementing a cascading build process are discussed in this short paper. Furthermore, special attention is given to describing the manner in which these practices naturally synergize with the GitHub API and GitHub-specific features such as issue tracking, Pull Requests, and project forks.

97 MATHEMATICS AND COMPUTING↗

Adoption of Test Driven Development and Continuous Integration for the Development of the Trick Simulation Toolkit

This paper describes the adoption of a Test Driven Development approach and a Continuous Integration System in the development of the Trick Simulation Toolkit, a generic simulation development environment for creating high fidelity training and engineering simulations at the NASA/Johnson Space Center and many other NASA facilities. It describes what was learned and the significant benefits seen, such as fast, thorough, and clear test feedback every time code is checked-in to the code repository. It also describes a system that encourages development of code that is much more flexible, maintainable, and reliable. The Trick Simulation Toolkit development environment provides a common architecture for user-defined simulations. Trick builds executable simulations using user-supplied simulation-definition files (S_define) and user supplied "model code". For each Trick-based simulation, Trick automatically provides job scheduling, checkpoint / restore, data-recording, interactive variable manipulation (variable server), and an input-processor. Also included are tools for plotting recorded data and various other supporting tools and libraries. Trick is written in C/C++ and Java and supports both Linux and MacOSX. Prior to adopting this new development approach, Trick testing consisted primarily of running a few large simulations, with the hope that their complexity and scale would exercise most of Trick's code and expose any recently introduced bugs. Unsurprising, this approach yielded inconsistent results. It was obvious that a more systematic, thorough approach was required. After seeing examples of some Java-based projects that used the JUnit test framework, similar test frameworks for C and C++ were sought. Several were found, all clearly inspired by JUnit. Googletest, a freely available Open source testing framework, was selected as the most appropriate and capable. The new approach was implemented while rewriting the Trick memory management component, to eliminate a fundamental design flaw. The benefits became obvious almost immediately, not just in the correctness of the individual functions and classes but also in the correctness and flexibility being added to the overall design. Creating code to be testable, and testing as it was created resulted not only in better working code, but also in better-organized, flexible, and readable (i.e., articulate) code. This was, in essence the Test-driven development (TDD) methodology created by Kent Beck. Seeing the benefits of Test Driven Development, other Trick components were refactored to make them more testable and tests were designed and implemented for them.

Penn, John M.↗

Creating Continuous Integration Infrastructure for Software Development on U.S. Department of Energy High-Performance Computing Systems

The Exascale Computing Project (ECP) software deployment effort developed and advanced DevOps capabilities. One goal was to enable robust continuous integration (CI) workflows that span the protected high performance computing (HPC) environments found within many of the Department of Energy’s (DOE) national laboratories. This article highlights several challenges encountered with enabling automation, such as charging models for CI jobs, and meeting individualized security requirements that revolve around strongly associating running code with a human identity. Here, it also describes how the Jacamar CI tool evolved to meet latter requirements and became a key aspect of the solutions currently offered. Derived from this experience, we offer a conceptual framework for understanding current and future CI challenges at DOE facilities and offer suggestions for long-term solutions.

97 MATHEMATICS AND COMPUTING↗

A continuous integration and web framework in support of the ATLAS publication process

The ATLAS collaboration defines methods, establishes procedures, and organises advisory groups to manage the publication processes of scientific papers, conference papers, and public notes. All stages are managed through web systems, computing programs, and tools that are designed and developed by the collaboration. A framework called FENCE is integrated into the CERN GitLab software repository, to automatically configure workspaces where each analysis can be documented by the analysis team and managed by the relevant coordinators. Continuous integration is used to guide the writers in applying consistent and correct formatting when preparing papers to be submitted to scientific journals. Additional software assures the correctness of other aspects of each paper, such as the lists of collaboration authors, funding agencies, and foundations. The framework and the workflow therein provide automatic and easy support to the researchers and facilitates each phase of the publication process, allowing authors to focus on the article contents. The framework and its integration with the most up to date and efficient tools has consequently provided a more professional and efficient automatized work environment to the whole collaboration.

47 OTHER INSTRUMENTATION↗

Continuous Integration, In-Code Documentation, and Automation for Nuclear Quality Assurance Conformance

The Multiphysics Object Oriented Simulation Environment (MOOSE) is an open-source, finite element framework for solving highly coupled sets of nonlinear equations. The development of the framework and applications occurs concurrently using an agile, continuous-integration software package. Included in the framework is an in-code, extensible documentation system. Using these two tools in union with the repository management tools GitHub and GitLab, a software quality plan was created and followed such that MOOSE and a MOOSE-based application (BISON) have been shown to meet the American Society of Mechanical Engineers’ Nuclear Quality Assurance-1 standard. The approach relies heavily on automation for both testing and documentation. The resulting effort demonstrates that a rigorous software quality plan may be implemented that incurs a minimal impact on day-to-day development of the software, satisfying the stringent guidelines necessary to operate the software in a safety function within a nuclear facility.

97 MATHEMATICS AND COMPUTING↗

Spectra of random operators with absolutely continuous integrated density of states

The structure of the spectrum of random operators is studied. It is shown that if the density of states measure of some subsets of the spectrum is zero, then these subsets are empty. In particular follows that absolute continuity of the integrated density of states implies singular spectra of ergodic operators is either empty or of positive measure. Our results apply to Anderson and alloy type models, perturbed Landau Hamiltonians, almost periodic potentials, and models which are not ergodic.

71 CLASSICAL AND QUANTUM MECHANICS, GENERAL PHYSIC↗

Integrating continuous atmospheric boundary layer and tower-based flux measurements to advance understanding of land-atmosphere interactions

The atmospheric boundary layer mediates the exchange of energy, matter, and momentum between the land surface and the free troposphere, integrating a range of physical, chemical, and biological processes and is defined as the lowest layer of the atmosphere (ranging from a few meters to 3 km). In this review, we investigate how continuous, automated observations of the atmospheric boundary layer can enhance the scientific value of co-located eddy covariance measurements of land-atmosphere fluxes of carbon, water, and energy, as are being made at FLUXNET sites worldwide. We highlight four key opportunities to integrate tower-based flux measurements with continuous, long-term atmospheric boundary layer measurements: (1) to interpret surface flux and atmospheric boundary layer exchange dynamics and feedbacks at flux tower sites, (2) to support flux footprint modelling, the interpretation of surface fluxes in heterogeneous terrain, and quality control of eddy covariance flux measurements, (3) to support regional-scale modeling and upscaling of surface fluxes to continental scales, and (4) to quantify land-atmosphere coupling and validate its representation in Earth system models. Adding a suite of atmospheric boundary layer measurements to eddy covariance flux tower sites, and supporting the sharing of these data to tower networks, would allow the Earth science community to address new emerging research questions, better interpret ongoing flux tower measurements, and would present novel opportunities for collaborations between FLUXNET scientists and atmospheric and remote sensing scientists.

54 ENVIRONMENTAL SCIENCES↗

Integrating continuous atmospheric boundary layer and tower-based flux measurements to advance understanding of land-atmosphere interactions

The atmospheric boundary layer mediates the exchange of energy, matter, and momentum between the land surface and the free troposphere, integrating a range of physical, chemical, and biological processes and is defined as the lowest layer of the atmosphere (ranging from a few meters to 3 km). In this review, we investigate how continuous, automated observations of the atmospheric boundary layer can enhance the scientific value of co-located eddy covariance measurements of land-atmosphere fluxes of carbon, water, and energy, as are being made at FLUXNET sites worldwide. We highlight four key opportunities to integrate tower-based flux measurements with continuous, long-term atmospheric boundary layer measurements: (1) to interpret surface flux and atmospheric boundary layer exchange dynamics and feedbacks at flux tower sites, (2) to support flux footprint modelling, the interpretation of surface fluxes in heterogeneous and mountainous terrain, and quality control of eddy covariance flux measurements, (3) to support regional-scale modeling and upscaling of surface fluxes to continental scales, and (4) to quantify land-atmosphere coupling and validate its representation in Earth system models. Adding a suite of atmospheric boundary layer measurements to eddy covariance flux tower sites, and supporting the sharing of these data to tower networks, would allow the Earth science community to address new emerging research questions, better interpret ongoing flux tower measurements, and would present novel opportunities for collaborations between FLUXNET scientists and atmospheric and remote sensing scientists.

Manuel Helbig↗

Integrating continuous hypermutation with high–throughput screening for optimization of cis,cis –muconic acid production in yeast

Directed evolution is a powerful method to optimize proteins and metabolic reactions towards user-defined goals. It usually involves subjecting genes or pathways to iterative rounds of mutagenesis, selection and amplification. While powerful, systematic searches through large sequence-spaces is a labour-intensive task, and can be further limited by a priori knowledge about the optimal initial search space, and/or limits in terms of screening throughput. Here, we demonstrate an integrated directed evolution workflow for metabolic pathway enzymes that continuously generate enzyme variants using the recently developed orthogonal replication system, OrthoRep and screens for optimal performance in high-throughput using a transcription factor-based biosensor. We demonstrate the strengths of this workflow by evolving a rate-limiting enzymatic reaction of the biosynthetic pathway for cis,cis-muconic acid (CCM), a precursor used for bioplastic and coatings, in Saccharomyces cerevisiae. After two weeks of simply iterating between passaging of cells to generate variant enzymes via OrthoRep and high-throughput sorting of best-performing variants using a transcription factor-based biosensor for CCM, we ultimately identified variant enzymes improving CCM titers > 13-fold compared with reference enzymes. Taken together, the combination of synthetic biology tools as adopted in this study is an efficient approach to debottleneck repetitive workflows associated with directed evolution of metabolic enzymes.

59 BASIC BIOLOGICAL SCIENCES↗