Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “programming language”

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 1,639 records · Page 91

Framework for Extensible, Asynchronous Task Scheduling (FEATS) in Fortran

Most parallel scientific programs contain compiler directives (pragmas) such as those from OpenMP, explicit calls to runtime library procedures such as those implementing the Message Passing Interface (MPI), or compiler-specific language extensions such as those provided by CUDA. By contrast, the recent Fortran standards empower developers to express parallel algorithms without directly referencing lower-level parallel programming models. Fortran’s parallel features place the language within the Partitioned Global Address Space (PGAS) class of programming models. When writing programs that exploit data-parallelism, application developers often find it straightforward to develop custom parallel algorithms. Problems involving complex, heterogeneous, staged calculations, however, pose much greater challenges. Such applications require careful coordination of tasks in a manner that respects dependencies prescribed by a directed acyclic graph. When rolling one’s own solution proves difficult, extending a customizable framework becomes attractive. The paper presents the design, implementation, and use of the Framework for Extensible Asynchronous Task Scheduling (FEATS), which we believe to be the first task-scheduling tool written in modern Fortran. We describe the benefits and compromises associated with choosing Fortran as the implementation language, and we propose ways in which future Fortran standards can best support the use case in this paper.

Modern Fortran↗

NVL-C: Static Analysis Techniques for Efficient, Correct Programming of Non-Volatile Main Memory Systems

Computer architecture experts expect that non-volatile memory (NVM) hierarchies will play a more significant role in future systems including mobile, enterprise, and HPC architectures. With this expectation in mind, we present NVL-C: a novel programming system that facilitates the efficient and correct programming of NVM main memory systems. The NVL-C programming abstraction extends C with a small set of intuitive language features that target NVM main memory, and can be combined directly with traditional C memory model features for DRAM. We have designed these new features to enable compiler analyses and run-time checks that can improve performance and guard against a number of subtle programming errors, which, when left uncorrected, can corrupt NVM-stored data. Moreover, to enable recovery of data across application or system failures, these NVL-C features include a flexible directive for specifying NVM transactions. So that our implementation might be extended to other compiler front ends and languages, the majority of our compiler analyses are implemented in an extended version of LLVM's intermediate representation (LLVM IR). We evaluate NVL-C on a number of applications to show its flexibility, performance, and correctness.

Denny, Joel↗

Automatic programming of simulation models

The objective of automatic programming is to improve the overall environment for describing the program. This improved environment is realized by a reduction in the amount of detail that the programmer needs to know and is exposed to. Furthermore, this improved environment is achieved by a specification language that is more natural to the user's problem domain and to the user's way of thinking and looking at the problem. The goal of this research is to apply the concepts of automatic programming (AP) to modeling discrete event simulation system. Specific emphasis is on the design and development of simulation tools to assist the modeler define or construct a model of the system and to then automatically write the corresponding simulation code in the target simulation language, GPSS/PC. A related goal is to evaluate the feasibility of various languages for constructing automatic programming simulation tools.

Schroer, Bernard J.↗

Extending C++ for Heterogeneous Quantum-Classical Computing

In this report we present qcor - a language extension to C++ and compiler implementation that enables heterogeneous quantum-classical programming, compilation, and execution in a single-source context. Our work provides a first-of-its-kind C++ compiler enabling high-level quantum kernel (function) expression in a quantum-language agnostic manner, as well as a hardware-agnostic, retargetable compiler workflow targeting a number of physical and virtual quantum computing backends. qcor leverages novel Clang plugin interfaces and builds upon the XACC system-level quantum programming framework to provide a state-of-the-art integration mechanism for quantum-classical compilation that leverages the best from the community at-large. qcor translates quantum kernels ultimately to the XACC intermediate representation, and provides user-extensible hooks for quantum compilation routines like circuit optimization, analysis, and placement. This work details the overall architecture and compiler workflow for qcor, and provides a number of illuminating programming examples demonstrating its utility for near-term variational tasks, quantum algorithm expression, and feed-forward error correction schemes.

97 MATHEMATICS AND COMPUTING↗

Geolocated dataset of Chinese overseas development finance

China is now the world's largest source of bilateral development finance and will likely continue to play a prominent role in sovereign lending through its multi-billion-dollar Belt and Road Initiative. This paper introduces major methodological enhancements in tracking this finance: the use of an original application programming interface (API) to gathers news in multiple languages; double verification of every record to ensure every finance commitment has been formalized; and visual geo-location to trace the precise footprint of every project. The resulting dataset enables economic, environmental, and social analyses with high-precision spatial accuracy, as well as spatiotemporal monitoring by project stakeholders and enhanced planning by project managers. It covers the years 2008-2019 to enable analysis before and after the announcement of the Belt and Road Initiative. It includes 862 finance commitments, 669 of which have geographic location, to 94 countries across the world.

29 ENERGY PLANNING, POLICY, AND ECONOMY↗

Beam Propagator for Weather Radars, Modules 1 and 2

This program simulates the beam propagation of weather radar pulses under particular and realistic atmospheric conditions (without using the assumption of standard refraction conditions). It consists of two modules: radiosondings_refract_index_many.pro (MAIN MODULE) beam_propagation_function.pro(EXTERNAL FUNCTION) FOR THE MAIN MODULE, THE CODE DOES OUTPUT--INTO A FILE--THE BEAM HEIGHT AS A FUNCTION OF RANGE. THE RADIOSONDE INPUT FILES SHOULD BE ALREADY AVAILABLE BY THE USER. FOR EXAMPLE, RADIOSONDE OBSERVATION FILES CAN BE OBTAINED AT: RADIOSONDE OBSERVATIONS DOWNLOADED AT "http://weather.uwyo.edu/upperair/soounding.html" OR "http://jervis.pyr.ec.gc.ca" THE EXTERNAL FUNCTION DOES THE ACTUAL COMPUTATION OF BEAM PROPAGATION. IT INCLUDES CONDITIONS OF ANOMALOUS PROPAGATION AND NEGATIVE ELEVATION ANGLES. THE EQUATIONS USED HERE WERE DERIVED BY EDWIN CAMPOS, BASED ON THE SNELL-DESCARTES LAW OF REFRACTION, CONSIDERING THE EARTH CURVATURE. THE PROGRAM REQUIRES A COMPILER FOR THE INTERACTIVE DATA LANGUAGE (IDL). DESCRIPTION AND VALIDATION DETAILS HAVE BEEN PUBLISHED IN THE PEER-REVIEWED SCIENTIFIC LITERATURE, AS FOLLOWS: Campos E. 2012. Estimating weather radar coverage over complex terrain, pp.26-32, peer reviewed, in Weather Radar and Hydrology, edited by Moore RJ, Cole SJ and Illingworth AJ. International Association of Hydrological Sciences (IAHS) Press, IAHS Publ. 351. ISBN 978-1-907161-26-1.

Ortega, EdwinCampos↗

CMinx: A CMake Documentation Generator

This manuscript introduces CMinx, a program for generating application programming interface (API) documentation written in the CMake language, and CMake modules in particular. Since most of CMinx’s intended audience is comprised of C/C++ developers, CMinx is designed to operate similar to Doxygen, the de facto C/C++ API documentation tool. Specifically, developers annotate their CMake source with “documentation” comments, which are traditional CMake block comments starting with an extra “[” character. The documentation comments, written in reST, describe to the reader how the functions, parameters, and variables should be used. Running CMinx on the annotated source code generates reST files containing the API documentation. The reST files can then be converted into static websites with tools such as Sphinx or easily converted to another format via Pandoc.

97 MATHEMATICS AND COMPUTING↗

Mid-circuit Measurement & Branching in QSCOUT: A Ping-Pong Teleportation Exemplar Program

This document is intended to help users program the new mid-circuit measurement (MCM) and classical branching capabilities of the Quantum Scientific Computing Open User Testbed (QSCOUT). Here, we present and explain an exemplar “ping-pong teleportation” program that makes repeated MCM and branching calls. The program is written in Jaqal, the quantum assembly language used by QSCOUT. This document is intended to accompany a companion Jupyter notebook Exemplar_one_bit_teleportation_pingpong.ipynb.

97 MATHEMATICS AND COMPUTING↗

User manual for Streamtube Curvature Analysis: Analytical method for predicting the pressure distribution about a nacelle at transonic speeds, appendix

The computer program listing of Streamtube Curvature Analysis is presented. The listing includes explanatory statements and titles so that the program flow is readily discernable. The computer program listing is in CDC FORTRAN 2.3 source language form, except for three subroutines, GETIX, GETRLX, and SAVIX, which are in COMPOSE 1.1 language.

Keith, J. S.↗

NERVA dynamic analysis methodology, SPRVIB

The general dynamic computer code called SPRVIB (Spring Vib) developed in support of the NERVA (nuclear engine for rocket vehicle application) program is described. Using normal mode techniques, the program computes kinematical responses of a structure caused by various combinations of harmonic and elliptic forcing functions or base excitations. Provision is made for a graphical type of force or base excitation input to the structure. A description of the required input format and a listing of the program are presented, along with several examples illustrating the use of the program. SPRVIB is written in FORTRAN 4 computer language for use on the CDC 6600 or the IBM 360/75 computers.

Vronay, D. F.↗

Describing, using 'recognition cones'

A parallel-serial 'recognition cone' model is examined, taking into account the model's ability to describe scenes of objects. An actual program is presented in an English-like language. The concept of a 'description' is discussed together with possible types of descriptive information. Questions regarding the level and the variety of detail are considered along with approaches for improving the serial representations of parallel systems.

Uhr, L.↗

Study for application of a sounding rocket experiment to spacelab/shuttle mission

An inexpensive adaptation of rocket-size packages to Spacelab/Shuttle use was studied. A two-flight project extending over two years was baselined, requiring 80 man-months of effort. It was concluded that testing should be held to a minimum since rocket packages seem to be able to tolerate shuttle vibration and noise levels. A standard, flexible control and data collection language such as FORTH should be used rather than a computation language such as FORTRAN in order to hold programming costs to a minimum.

Code, A. D.↗

Using PASCAL for numerical analysis

The data structures and control structures of PASCAL enhance the coding ability of the programmer. Proposed extensions to the language further increase its usefulness in writing numeric programs and support packages for numeric programs.

Volper, D.↗

Exploring team avionics systems by simulation

Configurations of software and hardware in a no-critical-element team architecture are under study for future general aviation aircraft avionics. The team integrated avionics system, based on microprocessors, can monitor and partially interpret all flight instrument data, engine parameters, and navigation information faster than a human pilot. Simulation programs based on an event-oriented simulation language are being used to design team architectures.

Brent, G. A.↗

Operating system for a real-time multiprocessor propulsion system simulator

The success of the Real Time Multiprocessor Operating System (RTMPOS) in the development and evaluation of experimental hardware and software systems for real time interactive simulation of air breathing propulsion systems was evaluated. The Real Time Multiprocessor Operating System (RTMPOS) provides the user with a versatile, interactive means for loading, running, debugging and obtaining results from a multiprocessor based simulator. A front end processor (FEP) serves as the simulator controller and interface between the user and the simulator. These functions are facilitated by the RTMPOS which resides on the FEP. The RTMPOS acts in conjunction with the FEP's manufacturer supplied disk operating system that provides typical utilities like an assembler, linkage editor, text editor, file handling services, etc. Once a simulation is formulated, the RTMPOS provides for engineering level, run time operations such as loading, modifying and specifying computation flow of programs, simulator mode control, data handling and run time monitoring. Run time monitoring is a powerful feature of RTMPOS that allows the user to record all actions taken during a simulation session and to receive advisories from the simulator via the FEP. The RTMPOS is programmed mainly in PASCAL along with some assembly language routines. The RTMPOS software is easily modified to be applicable to hardware from different manufacturers.

Cole, G. L.↗

A learning apprentice for software parts composition

An overview of the knowledge acquisition component of the Bauhaus, a prototype computer aided software engineering (CASE) workstation for the development of domain-specific automatic programming systems (D-SAPS) is given. D-SAPS use domain knowledge in the refinement of a description of an application program into a compilable implementation. The approach to the construction of D-SAPS was to automate the process of refining a description of a program, expressed in an object-oriented domain language, into a configuration of software parts that implement the behavior of the domain objects.

Allen, Bradley P.↗

User's guide: Programs for processing altimeter data over inland seas

The programs described were developed to process GEODYN-formatted satellite altimeter data, and to apply the processed results to predict geoid undulations and gravity anomalies of inland sea areas. These programs are written in standard FORTRAN 77 and are designed to run on the NSESCC IBM 3081(MVS) computer. Because of the experimental nature of these programs they are tailored to the geographical area analyzed. The attached program listings are customized for processing the altimeter data over the Black Sea. Users interested in the Caspian Sea data are expected to modify each program, although the required modifications are generally minor. Program control parameters are defined in the programs via PARAMETER statements and/or DATA statements. Other auxiliary parameters, such as labels, are hard-wired into the programs. Large data files are read in or written out through different input or output units. The program listings of these programs are accompanied by sample IBM job control language (JCL) images. Familiarity with IBM JCL and the TEMPLATE graphic package is assumed.

Au, A. Y.↗