Search NASA⌕ Search

SEARCH · Search NASA

Results for “Application Programming Interface”

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 307 records · Page 17

Web Based Beamline Control System (Bluesky Web) v0.1.0

Bluesky Web is a web based interface that provides beam line controls to the end user. It allows users to issue commands to various physical devices at a beam line end station like motors and cameras. It utilizes an open source Python library (Bluesky) as the controller. It uses Bluesky to also allow for running "plans" or a sequence of device operations that can be used when running an experiment. This program is different from other controls technologies because it is intended to be open source and can be accessed from a web browser, as opposed to other paid software that is run as a stand-alone application on a computer.

De Leon, Seij↗

Block-structured, equal-workload, multi-grid-nesting interface for the Boussinesq wave model FUNWAVE-TVD (Total Variation Diminishing)

Abstract. We describe the development of a block-structured, equal-CPU-load (central processing unit), multi-grid-nesting interface for the Boussinesq wave model FUNWAVE-TVD (Fully Nonlinear Boussinesq Wave Model with Total Variation Diminishing Solver). The new model framework does not interfere with the core solver, and thus the core program, FUNWAVE-TVD, is still a standalone model used for a single grid. The nesting interface manages the time sequencing and two-way nesting processes between the parent grid and child grid with grid refinement in a hierarchical manner. Workload balance in the MPI-based (message passing interface) parallelization is handled by an equal-load scheme. A strategy of shared array allocation is applied for data management that allows for a large number of nested grids without creating additional memory allocations. Four model tests are conducted to verify the nesting algorithm with assessments of model accuracy and the robustness in the application in modeling transoceanic tsunamis and coastal effects.

Choi, Young-Kwang↗

Reimagining Disassembly Interfaces With Visualization: Combining Instruction Tracing and Control Flow With DisViz

In applications where efficiency is critical, developers may examine their compiled binaries, seeking to understand how the compiler transformed their source code and what performance implications that transformation may have. This analysis is challenging due to the vast number of disassembled binary instructions and the many-to-many mappings between them and the source code. These problems are exacerbated as source code size increases, giving the compiler more freedom to map and disperse binary instructions across the disassembly space. Interfaces for disassembly typically display instructions as an unstructured listing or sacrifice the order of execution. Here, we design a new visual interface for disassembly code that combines execution order with control flow structure, enabling analysts to both trace through code and identify familiar aspects of the computation. Central to our approach is a novel layout of instructions grouped into basic blocks that displays a looping structure in an intuitive way. We add to this disassembly representation a unique block-based mini-map that leverages our layout and shows context across thousands of disassembly instructions. Finally, we embed our disassembly visualization in a web-based tool, DisViz, which adds dynamic linking with source code across the entire application. DizViz was developed in collaboration with program analysis experts following design study methodology and was validated through evaluation sessions with ten participants from four institutions. Participants successfully completed the evaluation tasks, hypothesized about compiler optimizations, and noted the utility of our new disassembly view. Our evaluation suggests that our new integrated view helps application developers in understanding and navigating disassembly code.

Computer science↗

Phase-Field Modeling of Materials Interfaces and Nanostructures

Nanostructured materials offer unique properties for a wide range of energy applications. Among various known processing methods, liquid metal dealloying (LMD)—the selective dissolution of a base alloy element into a metallic melt—has emerged as a powerful technique to produce a new class of nano-/meso-scale open porous and bicontinuous composite structures with ultra-high interfacial area. LMD has recently been complemented by the advent of vapor phase dealloying (VPD), a novel technique that exploits the selective evaporation of one element from a parent alloy containing elements with very different vapor pressures, thereby enabling to fabricate open nanoporous structures of various elements from less-noble metals to inorganic elements regardless of their chemical activity without requiring high LMD temperatures and chemical etching. Together LMD and VPD have greatly expanded the scope of dealloying techniques, limited by traditional electrochemical means to noble metals, and boosted the design of new functional and structural materials that combine a wide variety of elements. Topologically-connected open porous structures with ultra-high surface area allow mass transport within the structure while preserving structural integrity, enabling them to serve as catalysts, fuel cells, supercapacitors, or high-capacity battery materials. Bicontinuous composite structures in turn can display high strength and high ductility or superior radiation-damage resistance due to the ultra-high interface area between interpenetrating solid phases. This research program makes use of state-of-the-art computational methods to understand at a basic level the self-organizing dealloying process with main focus on dealloying kinetics and interfacial pattern formation at the dealloying front controlling initial structure size, topology, and phase compositions. Phase-field simulation studies of LMD focus on solid solutions, line compounds, and intermetallic systems that can form ternary composites by nucleation and growth of a new phase. Studies of VPD employ phase-field modeling and a hybrid method combining a kinetic Monte Carlo (KMC) model of evaporation and surface diffusion with molecular dynamics for vapor-phase transport inside nanopores. Simulations explore mechanisms of interface- and diffusion-controlled dealloying kinetics, both observed in VPD but not fundamentally understood. In addition, our newly developed multi-physics phase-field approach of large-volume-change phase transformations is being used to model novel 3D anode geometries based on dealloyed nanoporous structures including novel sandwiched graphene/Si/silica for highrate Li ion battery. Those studies are aimed at elucidating geometric design principles that improve mechanical stability. We expect this research to enhance the capability to tailor nano-/mesoscale structures for a wide range of energy-related materials applications and to yield further advances in computational methodologies that benefit a broad materials research community.

77 NANOSCIENCE AND NANOTECHNOLOGY↗

UPC++ v1.0 Specification, Revision 2020.10.0

UPC++ is a C++11 library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.

97 MATHEMATICS AND COMPUTING↗

UPC++ v1.0 Specification, Revision 2021.9.0

UPC++ is a C++ library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.

96 KNOWLEDGE MANAGEMENT AND PRESERVATION↗

UPC++ v1.0 Specification (Rev. 2023.9.0)

UPC++ is a C++ library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.

97 MATHEMATICS AND COMPUTING↗

UPC++ v1.0 Specification (Revision 2022.3.0)

UPC++ is a C++ library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.

97 MATHEMATICS AND COMPUTING↗

UPC++ v1.0 Specification, Revision 2023.3.0

UPC++ is a C++ library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.

97 MATHEMATICS AND COMPUTING↗

UPC++ v1.0 Specification (Revision 2021.3.0)

UPC++ is a C++11 library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.

97 MATHEMATICS AND COMPUTING↗

UPC++ v1.0 Specification, Revision 2022.9.0

UPC++ is a C++ library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.

97 MATHEMATICS AND COMPUTING↗

UPC++ v1.0 Specification, Revision 2020.3.0

UPC++ is a C++11 library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.

97 MATHEMATICS AND COMPUTING↗

GAHLS: an optimized graph analytics based high level synthesis framework

The urgent need for low latency, high-compute and low power on-board intelligence in autonomous systems, cyber-physical systems, robotics, edge computing, evolvable computing, and complex data science calls for determining the optimal amount and type of specialized hardware together with reconfigurability capabilities. With these goals in mind, we propose a novel comprehensive graph analytics based high level synthesis (GAHLS) framework that efficiently analyzes complex high level programs through a combined compiler-based approach and graph theoretic optimization and synthesizes them into message passing domain-specific accelerators. This GAHLS framework first constructs a compiler-assisted dependency graph (CaDG) from low level virtual machine (LLVM) intermediate representation (IR) of high level programs and converts it into a hardware friendly description representation. Next, the GAHLS framework performs a memory design space exploration while account for the identified computational properties from the CaDG and optimizing the system performance for higher bandwidth. The GAHLS framework also performs a robust optimization to identify the CaDG subgraphs with similar computational structures and aggregate them into intelligent processing clusters in order to optimize the usage of underlying hardware resources. Finally, the GAHLS framework synthesizes this compressed specialized CaDG into processing elements while optimizing the system performance and area metrics. Evaluations of the GAHLS framework on several real-life applications (e.g., deep learning, brain machine interfaces) demonstrate that it provides 14.27× performance improvements compared to state-of-the-art approaches such as LegUp 6.2.

97 MATHEMATICS AND COMPUTING↗

Remote Instrumentation and Data Acquisition

This poster outlines the development and implementation of a remote data acquisition system for waveform analysis using a Rohde & Schwarz oscilloscope. The project involved capturing waveform data, and transferring it to a local machine for visualization and analysis. The core logic was developed in C++ with a focus on object oriented programming and the use of polymorphism so the main application can interact with any instrument without knowing its exact type, simplifying the overall logic and making it easier to add or swap out components without changing the rest of the codebase.. The system issues Standard Commands for Programmable Instruments (SCPI) via a socket connection and parses the oscilloscope s ASCII waveform data. The C++ application was containerized using Docker for ease of portability, and reproducibility. Emphasis was placed on secure networking practices, error handling, and effective data capture. The report describes the technical steps taken, challenges encountered, and future work, providing insight into the practical integration of hardware interfacing with remote computational environments.

Parikh, Jaymil [Illinois U., Urbana]↗

Remote Instrumentation and Data Acquisition: An Internship Research Report

This report outlines the development and implementation of a remote data acquisition system for waveform analysis using a Rohde & Schwarz oscilloscope. The project involved capturing waveform data, and transferring it to a local machine for visualization and analysis. The core logic was developed in C++ with a focus on object oriented programming and the use of polymorphism so the main application can interact with any instrument without knowing its exact type, simplifying the overall logic and making it easier to add or swap out components without changing the rest of the codebase.. The system issues Standard Commands for Programmable Instruments (SCPI) via a socket connection and parses the oscilloscope’s ASCII waveform data. The C++ application was containerized using Docker for ease of portability, and reproducibility. Emphasis was placed on secure networking practices, error handling, and effective data capture. The report describes the technical steps taken, challenges encountered, and lessons learned, providing insight into the practical integration of hardware interfacing with remote computational environments.

Parikh, Jaymil [Fermilab]↗

Dynamic, Adaptive, Systems and Materials: Complex, Simple and Emergent Behaviors

This program has been funded by DoE/BES for twenty years. It has moved into and out of various subjects as it has developed, but it has retained its focus on complexity and complex systems. The project has evolved in the following way: Self-Assembly and Biomimetic Self-Assembly: All self-assembling systems depend upon a minimum of two types of interaction: a repulsion and an attraction. For the familiar molecular systems, attractive interactions are typically hydrogen bonds and electrostatic interactions. Repulsive interactions include steric effects, hydrophobic effects (in biological systems), and charge-charge repulsion. We have expanded this repertoire to include surface interactions, magnetic interactions, and others. I list these systems in the order in which we have explored them: i) A key emphasis in current work is in understanding how the movement of ions in a magnetic field (the Lorentz effect) interacts with catalytic systems. We have demonstrated that an acceleration in rate of reduction of CO 2 to CO can be accomplished by applying an external magnetic field. This acceleration is largely due to the application of the Lorentz effect on mass transport at the catalyst’s surface. ii) We have also extensively explored the influence of electrostatics, as exhibited in self-assembling systems, by tribocharging. iii) Another key system involves surface tension effects; examples include interactions between heavy particles floating at a liquid-air interface, and interacting by changes in surface area; interactions of bubbles and bubble rafts, behaviors of bubble trains in microfluidic networks, and behaviors of microorganisms in constraining environments. iv) This work has intentionally de-emphasized biological systems; but it does include some work on protein-ligand interactions and interactions among microorganisms. v) We have also explored applications of some of these effects, these explorations include bubble rafts as diffraction gratings, exploration of the structures that can be obtained by tribocharging and uses of these structures in exploring nucleation and melting of crystals. vi) Although not a major focus of this work, several other topics have emerged and offer opportunities for future work. These include the behavior of bubble trains and bubble rafts in microfluidic systems. A particularly interesting example is the formation of bubble trains that repeat in the alteration of large and small bubbles according to rules we do not presently understand, but are uniquely large-period oscillating systems. These systems offer a new route into understanding the instabilities of the type represented by oscillations. vii) We have also begun exploratory projects on magnetic levitation (especially to determine molecular density), and information storage (in molecules). Magnetic Levitation: Self-assembling and biomimetic systems require both attraction and repulsion. We have used electrostatics (tribocharging), interfacial free-energies (surface tension and related forces) and others. Potential uses include reconfigurable diffraction gratings and liquid lenses; exploration of mechanisms in tribocharging; tunneling in EGaIn junctions; and bubble trains (especially in micro-fluidic systems). Examples of systems representing these topics is included in the following papers: Complexity: Disks rotating at a water-air interface; Benard-Marangoni effects; Vortex-Crystals from spinning magnetic disks (Marangoni effects); EGaIn Electrode to study quantum tunneling; Self-Assembly of electrostatically-charged metallic spheres (electrets); Dynamically reconfigurable lens; Using computational designs of ligands for enzymes; Electrostatic self-assembly by tribocharging; Monodisperse bubble trains in microchannel systems; Inverted dripping faucet; Flames; Printing of micro-organisms to regenerate the “ink” of printing device; Using micro-organisms to move loads (“microoxen”); Motion of bacterial swarms near surfaces; Making monodisperse particles in microfluidic systems; Coding/decoding of information stored in droplet trains in microfluidic networks; Magnetic levitation; and Information storage. i) Tribocharging. The change in focus of this work on electrets from the fundamentals of charging to applications of these materials in studying self-assembly using electrostatic interactions. ii) Bubbles in Microchannels. The realization that systems of bubbles in microchannels represented a major opportunity to study complexity in a very tractable system, and the development of a semi-quantitative theory of this subject. iii) Flames. The growth of “flames” remains an exploratory subject for the research, although their currently relatively little active work involving it ongoing. iv) Systems with Microorganisms. The removal of work in biological systems from this project. Based on work supported in this program, we now have a significant project on the development of microfluidic tools for studying C. elegans (a nematode), but this work was not appropriate for a program focused on complexity, and we developed separate support for it. (It is, however, an example of successful seeding of a new area by BES.) The work on electrets has gone through a period in which a part of the program was the subject of a MURI; the focus of this work was to develop materials that did not charge electrostatically on friction or contact. The MURI is now over, and the work on dynamic self-assembly (supported by BES) is the major focus. “Flames” has also enjoyed synergistic support, in terms of a project supported by DARPA on flame suppression (in the absence of extinguishing agents, using acoustic and electrostatic interactions). This work was helpful in understanding some of the basics of flames, but is entirely distinct from the BES focus in complexity. A growing interest is in the Lorentz effect. The Lorentz effect is the force exerted on charged particles (electrons, ions, charged molecules) when they move through a perpendicular magnetic field. The Lorentz effect is almost ubiquitous in modern technology: examples of applications include electric motors, dynamos, cathode ray tubes, many batteries, and most systems that control electrical currents with magnetic forces. We have begun to explore the Lorentz effect in electrochemical systems and heterogeneous catalytic systems involving charged organic species and inorganic ions. This work is still at an early stage, but initial studies that Lorentz effects can be large when ions move through magnetic fields, or magnetic fields move in the presence of ions.

36 MATERIALS SCIENCE↗

hPIC2: A hardware-accelerated, hybrid particle-in-cell code for dynamic plasma-material interactions

The exascale era of high performance computing promises to bring the field of computational plasma physics ever closer to the goal of accurate multiscale modeling. Such computers will rely on hardware acceleration to offload work to dedicated components, notably general-purpose graphics processing units (GPUs). However, devices from different manufacturers require software to be written with different parallel programming models, greatly increasing the code maintenance burden of applications designed to perform on more than one such device. hPIC2 is a hybrid plasma simulation code developed with the Kokkos performance portability framework to target the architectures that will drive exascale computing for the foreseeable future. As a hybrid simulation code, hPIC2 investigates the simultaneous use of various plasma models on the same domain, at the same time. hPIC2 also optionally couples to RustBCA, which accurately models ion-material interactions using the binary collision approximation (BCA) method. In conclusion, hPIC2 therefore achieves scalable performance on a variety of computing architectures when simulating complex and diverse plasmas, particularly near plasma-material interfaces.

70 PLASMA PHYSICS AND FUSION TECHNOLOGY↗

Understanding the electron-water interaction at the molecular level: Integrating theory and experiment in the cluster regime

In this final technical report, we summarize our major accomplishments resulting from a combined experimental-theoretical approach that exploits the unique properties of molecular clusters to elucidate how local interactions at the molecular level drive the macroscopic behavior of materials and chemical transformations in liquids. The specific targets for our efforts have need to elucidate how charged entities are accommodated by hydrogen-bonding networks and to establish how the behavior of room temperature ionic liquids can be tailored for specific chemical applications. Because of their central importance in aqueous electrolyte chemistry, we have placed particular emphasis understanding the accommodation of excess electrons and protons by water. These surprisingly complex fundamental electrical charges play a fundamental role in a wide range of chemical and biological processes, and yet even a qualitative picture of their speciation in water and at the air-water interface has proven elusive. The main experimental diagnostic in our approach is to measure and analyze vibrational spectra of temperature and composition controlled molecular aggregates that isolate and amplify the spectral markers for local interactions that are often obscured in measurement on bulk or interfacial water. Our combined experimental-theoretical program has led to a greatly enhanced understanding of the nature of excess electrons and protons in water and in the process developed new and powerful methods of chemical analysis that are currently in use across the chemical sciences.

37 INORGANIC, ORGANIC, PHYSICAL, AND ANALYTICAL CH↗