Search NASA⌕ Search

SEARCH · Search NASA

Results for “python workflow”

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

Portable, heterogeneous ensemble workflows at scale using libEnsemble

libEnsemble is a Python-based toolkit for running dynamic ensembles, developed as part of the DOE Exascale Computing Project. The toolkit utilizes a unique generator–simulator–allocator paradigm, where generators produce input for simulators, simulators evaluate those inputs, and allocators decide whether and when a simulator or generator should be called. The generator steers the ensemble based on simulation results. Generators may, for example, apply methods for numerical optimization, machine learning, or statistical calibration. libEnsemble communicates between a manager and workers. Flexibility is provided through multiple manager–worker communication substrates each of which has different benefits. These include Python’s multiprocessing, mpi4py, and TCP. Multisite ensembles are supported using Balsam or Globus Compute. We overview the unique characteristics of libEnsemble as well as current and potential interoperability with other packages in the workflow ecosystem. We highlight libEnsemble’s dynamic resource features: libEnsemble can detect system resources, such as available nodes, cores, and GPUs, and assign these in a portable way. These features allow users to specify the number of processors and GPUs required for each simulation; and resources will be automatically assigned on a wide range of systems, including Frontier, Aurora, and Perlmutter. Such ensembles can include multiple simulation types, some using GPUs and others using only CPUs, sharing nodes for maximum efficiency. We also describe the benefits of libEnsemble’s generator–simulator coupling, which easily exposes to the user the ability to cancel, and portably kill, running simulations based on models that are updated with intermediate simulation output. We demonstrate libEnsemble’s capabilities, scalability, and scientific impact via a Gaussian process surrogate training problem for the longitudinal density profile at the exit of a plasma accelerator stage. In conclusion, the study uses gpCAM for the surrogate model and employs either Wake-T or WarpX simulations, highlighting efficient use of resources that can easily extend to exascale.

Dynamic ensembles↗

Performance of Julia for High Energy Physics Analyses

We argue that the Julia programming language is a compelling alternative to currently more common implementations in Python and C++ for common data analysis workflows in high energy physics. We compare the speed of implementations of different workflows in Julia with those in Python and C++. Furthermore, our studies show that the Julia implementations are competitive for tasks that are dominated by computational load rather than data access. For work that is dominated by data access, we demonstrate an application with concurrent file reading and parallel data processing.

97 MATHEMATICS AND COMPUTING↗

labquake_future_prediction

The labquake_future_prediction code is a collection of python modules and scripts that serves as supporting information for the article “Predicting future laboratory fault friction through deep learning” for publication in the journal of “Geophysical Research Letters”. It is designed to predict laboratory fault slips in the immediate future by scanning continuous acoustic emission (AE) waveforms recorded in laboratory biaxial shear experiments. The predictions are made with a deep learning model based on convolutional encoder-decoder (CED) models and the Transformer model primarily developed for Natural Language Processing (NLP). The deep learning model is trained with the tensorflow package using publicly available laboratory data sets in standard binary file format in numpy. The utility functions for reading data files, configuring model hyperparameters, constructing the CED and Transformer models, training and testing of the models are defined in python module files. The workflow of training the models for labquake future predictions and the multiple GPU’s rapid model hyperparameter optimization as described in the journal article, are demonstrated in accompanying python script files and Jupyter notebooks.

Wang, Kun↗

GBOpt: Grain boundary structure optimization using Monte Carlo and evolutionary algorithms

Polycrystalline materials are made of many small crystals separated by grain boundaries (GBs), whose atomic structure strongly influences material properties. Because the structure of a GB determines its properties, the optimal structure must be known in order to determine those impacts. There are many ways of placing atoms in the GB region, but the optimal structure is defined as the one that gives the lowest value of a target property (typically energy). GB structure optimization has been successfully demonstrated using stochastic and evolutionary methods, but no reusable, community-maintained open-source workflow has been developed. GBOpt (Grain Boundary Optimization) is an open-source Python package that creates that workflow, where we have presently implemented two approaches: Markov Chain Monte Carlo, and genetic algorithm based on elite selection. We demonstrate this capability by successfully reproducing the known optimal structures of a specific GB in two materials, and point interested readers to the GitHub repository for additional examples, including optimization for different properties. Both of the implemented approaches recovered the known structures, with the genetic algorithm approach finding the optimal structure faster on average.

99 - GENERAL AND MISCELLANEOUS↗

Python Library for Monte Carlo Simulations with Ab Initio and Machine-Learned Interatomic Potentials

There is a growing need in the simulation community for software that provides a transparent, reproducible, usable, and extensible (TRUE) Monte Carlo (MC) simulation framework employing energies from ab initio methods and machine-learning interatomic potentials (MLIPs). We introduce a Python library (ASE-MC) that adds Monte Carlo functionality to the Atomic Simulation Environment (ASE) package. Now, we can combine the powerful tools used to build systems and perform ab initio and MLIP in ASE with MC simulation algorithms to sample the configurational space with a concise Python script. After presenting the design philosophy, we demonstrate the flexibility of our approach using selected examples. These example simulations include liquid water described with a message-passing MLIP in the canonical and isothermal–isobaric ensembles, sampling the characteristic dihedral angle of biphenyl and comparing an MLIP to first-principles calculations, and a grand canonical Monte Carlo simulation of ammonia adsorption on Pt(111). These examples showcase the main features of the software, which include flexibility in the choice of ab initio or MLIP engine, ab initio or MLIP grand canonical MC with cavity bias insertions and deletions, the ability to add custom MC moves to the move set, and how users can condense complex MC workflows into a single Python script. Finally, this library serves as a framework for reproducible Monte Carlo simulations, facilitating easy reproduction of the work and application to new systems.

97 MATHEMATICS AND COMPUTING↗

IMG Annotation Pipeline (IMGAP) v5.1.13

The IMG Annotation Pipeline is a collection of Bash and Python scripts to control a workflow for structural and functional annotation of prokaryotic genomes, metagenomes, and metatranscriptomes. The bash scripts in general control the overall workflow and are wrappers around 3rd party executables (not included in repo) that predict features or functions. Whereas the Python scripts do post-processing of raw output in terms of filtering or format transformation and in some cases contain some logic for picking the correct predictions or resolving overlaps. The pipeline is tailored to produce results required by IMG (https://img.jgi.doe.gov/) and is executed on every dataset submitted to IMG via https://img.jgi.doe.gov/submit. These consist of internal genomes, metagenomes and metatranscriptomes sequenced and assembled at the JGI, as well as datasets submitted by external users (non-lab/JGI affiliates).

Huntemann, Marcel↗

ABLE Workflow Copier

A copier template for generating a snakemake workflow with an associated python package for implementing dataset transformation, feature extraction, and modeling.

Pathak, Maharshi [Northeastern Univ., Boston, MA (↗

LLNL Automized Surface Titration Model

The LLNL Automized Surface Titration Model (L-ASTM) is a community data-driven surface complexation modeling workflow for simulating potentiometric titration of mineral surfaces. The model accepts raw experimental potentiometric titration data formatted in a findable, accessible, interoperable, and reusable (FAIR) structure. The workflow was coded in Python and coupled to PHREEQC for surface complexation modeling and PEST for data fitting and parameter estimation.

Solchan, Han↗

Deeplynx Dag Repository

The DeepLynx DAG repository will contain several Airflow DAGs (Directed Acyclic Graphs) which will be used in the context of DeepLynx's deployed Apache Airflow instance. These DAGs will be used for multiple data management tasks for DeepLynx data, including but not limited to: - bringing data from various sources and tools into DeepLynx - managing sequential data workflows, such as running Python scripts on data to perform analysis and returning the results to DeepLynx - performing any necessary transformation or pre-processing on data coming into DeepLynx from external sources or out of DeepLynx to go to external applications

Brownlee, JarenM.↗

Integrating ytopt and libEnsemble to autotune OpenMC

Ytopt is a Python machine-learning-based autotuning software package developed within the ECP PROTEAS-TUNE project. The ytopt software adopts an asynchronous search framework that consists of sampling a small number of input parameter configurations and progressively fitting a surrogate model over the input-output space until exhausting the user-defined maximum number of evaluations or the wall-clock time. libEnsemble is a Python toolkit for coordinating workflows of asynchronous and dynamic ensembles of calculations across massively parallel resources developed within the ECP PETSc/TAO project. libEnsemble helps users take advantage of massively parallel resources to solve design, decision, and inference problems and expands the class of problems that can benefit from increased parallelism. In this paper we present our methodology and framework to integrate ytopt and libEnsemble to take advantage of massively parallel resources to accelerate the autotuning process. Specifically, we focus on using the proposed framework to autotune the ECP ExaSMR application OpenMC, an open source Monte Carlo particle transport code. OpenMC has seven tunable parameters some of which have large ranges such as the number of particles in-flight, which is in the range of 100,000 to 8 million, with its default setting of 1 million. Setting the proper combination of these parameter values to achieve the best performance is extremely time-consuming. Therefore, we apply the proposed framework to autotune the MPI/OpenMP offload version of OpenMC based on a user-defined metric such as the figure of merit (FoM) (particles/s) or energy efficiency energy-delay product (EDP) on Crusher at Oak Ridge Leadership Computing Facility. In conclusion, the experimental results show that we achieve the improvement up to 29.49% in FoM and up to 30.44% in EDP.

Autotuning↗

Supporting Greater Interactivity in the IPython Visualization Ecosystem

Interactive visualizations are invaluable tools for building intuition and supporting rapid exploration of datasets and models. Numerous libraries in Python support interactivity, and workflows that combine Jupyter and IPyWidgets in particular make it straightforward to build data analysis tools on the fly. However, the field is missing the ability to arbitrarily overlay widgets and plots on top of others to support more flexible details-on-demand techniques. This work discusses some limitations of the base IPyWidgets library, explains the benefits of IPyVuetify and how it addresses these limitations, and finally presents a new open-source solution that builds on IPyVuetify to provide easily integrated widget overlays in Jupyter.

Martindale, Nathan↗

Methods in PES-Learn: Direct-Fit Machine Learning of Born–Oppenheimer Potential Energy Surfaces

The release of PES-L EARN version 1.0 as an open-source software package for the automatic construction of machine learning models of semi-global molecular potential energy surfaces (PESs) is presented. Improvements to PES-L EARN ’s interoperability are stressed with new Python API that simplifies workflows for PES construction via interaction with QCSchema input and output infrastructure. In addition, a new machine learning method is introduced to PES-L EARN : kernel ridge regression (KRR). The capabilities of KRR are emphasized with examination of select semi-global PESs. All machine learning methods available in PES-L EARN are benchmarked with benzene and ethanol datasets from the rMD17 database to illustrate PES-L EARN ’s performance ability. Fitting performance and timings are assessed for both systems. Finally, the ability to predict gradients with neural network models is presented and benchmarked with ethanol and benzene. PES-L EARN is an active project and welcomes community suggestions and contributions.

kernel ridge regression↗

Deeplynx Airflow Provider Package

The DeepLynx Airflow Provider Package is a python package used to interact with the data warehouse DeepLynx when using the workflow orchestration tool Apache Airflow. This python package is packaged together using the airflow package standard so that it can be easily installed and used in any Apache Airflow environment. This package is meant to encapsulate the DeepLynx API for use in Airflow so that any interactions with DeepLynx that a user may want to use in their Airflow workflow can be easily accomplished using this provider package. This allows us to develop, implement, and test our DeepLynx-Airflow interactions in one provider package repository, and then easily install and use this package in any airflow instance. This DeepLynx Airflow Provider Package will be used extensively by the DeepLynx DAG repository.

Cavaluzzi, JackM↗

Transformational Challenge Reactor – On the Application of Design for Additive Manufacturing (DfAM) Techniques to the Conception of Nuclear Core

Additive manufacturing (AM) technologies are radically changing the way objects are designed and manufactured. They allow building by deposition and solidification of material layer by layer, enabling the possibility to create simple and complex features alike, almost seamlessly. Generally, the design optimization process requires to define objectives, design variables and constraints. Additive manufacturing does not challenge this process per se but does allow designers to completely redefine the constraints space as the ones originating from fabrication can be considerably relaxed compared to more “traditional” manufacturing. Thus, design optimization becomes naturally far more responsive to the actual physics being solved and considerably less influenced by fabrication limitations, leading to dramatically different designs. To take advantage of these new opportunities, so-called Designing for Additive Manufacturing (DfAM) techniques are emerging. Development of design techniques specifically tailored for additive manufacturing is warranted because, considering AM, the design space is typically considerably larger than with traditional manufacturing. The ability to explore the design space efficiently is of paramount importance for designers. This study proposes to investigate and apply some of these DfAM techniques to the conception of nuclear core. The goal being to assess if these new methods can be applied to core design and if core design could benefits from additive manufacturing technologies. After a brief investigation on the pertinence of some DfAM techniques for core design, algorithms are proposed and a workflow is established to carry neutronics and steady-state thermal-hydraulics analyses. To diminish the work load, the workflow has been automated using python modules. These modules allow the rapid creation of input files, post-treatment of output files and visualization. To test the pertinence of the proposed workflow, three test cases have been investigated: a research and test reactor, a micro-reactor and a space propulsion reactor. These test cases offered a variety of objectives, constraints and operating conditions. It is observed that the proposed workflow is capable of converging quickly and efficiently to valid design solutions. It is then concluded that DfAM techniques can be applied to core design.

21 SPECIFIC NUCLEAR REACTORS AND ASSOCIATED PLANTS↗

pvlib python: 2023 project update

pvlib python is a community-developed, open-source software toolbox for simulating the performance of solar photovoltaic (PV) energy components and systems. It provides reference implementations of over 100 empirical and physics-based models from the peer-reviewed scientific literature, including solar position algorithms, irradiance models, thermal models, and PV electrical models. In addition to individual low-level model implementations, pvlib python provides high-level workflows that chain these models together like building blocks to form complete “weather-to-power” photovoltaic system models. It also provides functions to fetch and import a wide variety of weather datasets useful for PV modeling. pvlib python has been developed since 2013 and follows modern best practices for open-source python software, with comprehensive automated testing, standards-based packaging, and semantic versioning. Its source code is developed openly on GitHub and releases are distributed via the Python Package Index (PyPI) and the conda-forge repository. pvlib python’s source code is made freely available under the permissive BSD-3 license. Here we (the project’s core developers) present an update on pvlib python, describing capability and community development since our 2018 publication (Holmgren, Hansen, & Mikofski, 2018).

14 SOLAR ENERGY↗

Low-Temperature Geothermal Play Fairway Analysis for the Denver Basin

This project is part of a national initiative to showcase the benefits of incorporating low-temperature geothermal resource assessment into the deployment of geothermal heating, combined heat and power (CHP), and geothermal direct-use (GDU) technologies. The initiative was established to accelerate the country's decarbonization efforts by identifying potential for low-temperature geothermal resource utilization (<150 degrees C, e.g., CHP and GDU) in selected sedimentary basins with numerous population centers. The play fairway analysis (PFA) methodologies in this study were adapted from previous PFA investigations of sedimentary basin geothermal play types (SBGPTs) that evaluated the potential for low-temperature resources (<150 degrees C). Workflows, relevant datasets, a new Python library, and common and composite geological criteria maps are utilized to develop low-temperature geothermal resource favorability maps for the Denver Basin, a sedimentary basin spanning Colorado, Nebraska, and Wyoming. The replication of these methodologies in other SBGPTs can evaluate potential for low-temperature resources. To facilitate future assessment of low-temperature geothermal resources in SBGPTs, this project provides PFA workflows, data, tools, and favorability maps that will ultimately support the utilization of low-temperature geothermal resources in sedimentary basins.

combined heat and power↗

Harnessing the predicted maize pan-interactome for putative gene function prediction and prioritization of candidate genes for important traits

Abstract The recent assembly and annotation of the 26 maize nested association mapping population founder inbreds have enabled large-scale pan-genomic comparative studies. These studies have expanded our understanding of agronomically important traits by integrating pan-transcriptomic data with trait-specific gene candidates from previous association mapping results. In contrast to the availability of pan-transcriptomic data, obtaining reliable protein–protein interaction (PPI) data has remained a challenge due to its high cost and complexity. We generated predicted PPI networks for each of the 26 genomes using the established STRING database. The individual genome-interactomes were then integrated to generate core- and pan-interactomes. We deployed the PPI clustering algorithm ClusterONE to identify numerous PPI clusters that were functionally annotated using gene ontology (GO) functional enrichment, demonstrating a diverse range of enriched GO terms across different clusters. Additional cluster annotations were generated by integrating gene coexpression data and gene description annotations, providing additional useful information. We show that the functionally annotated PPI clusters establish a useful framework for protein function prediction and prioritization of candidate genes of interest. Our study not only provides a comprehensive resource of predicted PPI networks for 26 maize genomes but also offers annotated interactome clusters for predicting protein functions and prioritizing gene candidates. The source code for the Python implementation of the analysis workflow and a standalone web application for accessing the analysis results are available at https://github.com/eporetsky/PanPPI.

Genetics & Heredity↗

Numerical Validation of an Algorithm for Combined Soiling and Degradation Analysis of Photovoltaic Systems

We describe and demonstrate an open-source algorithm for simultaneously quantifying degradation and soiling of photovoltaic (PV) systems from energy-production time series data. The new analysis is based on year-on-year degradation rate analysis combined with stochastic rate and recovery soiling analysis. The algorithm is designed to fit into the workflow provided by RdTools, a Python module maintained by NREL and collaboratively developed with the community, which provides a framework and functions for degradation and loss-factor analysis of PV field data. We demonstrate the method on numerically simulated PV data sets and show that it reduces the root-mean-square error of the P50 degradation rate estimate when soiling is present.

14 SOLAR ENERGY↗