Search NASA⌕ Search

SEARCH · Search NASA

Results for “C++, scientific programming”

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

Scientific Programming Using Java and C: A Remote Sensing Example

This paper presents results of a project to port code for processing remotely sensed data from the UNIX environment to Windows. Factors considered during this process include time schedule, cost, resource availability, reuse of existing code, rapid interface development, ease of integration, and platform independence. The approach selected for this project used both Java and C. By using Java for the graphical user interface and C for the domain model, the strengths of both languages were utilized and the resulting code can easily be ported to other platforms. The advantages of this approach are discussed in this paper.

Prados, Donald↗

Scientific Programming Using Java: A Remote Sensing Example

This paper presents results of a project to port remote sensing code from the C programming language to Java. The advantages and disadvantages of using Java versus C as a scientific programming language in remote sensing applications are discussed. Remote sensing applications deal with voluminous data that require effective memory management, such as buffering operations, when processed. Some of these applications also implement complex computational algorithms, such as Fast Fourier Transformation analysis, that are very performance intensive. Factors considered include performance, precision, complexity, rapidity of development, ease of code reuse, ease of maintenance, memory management, and platform independence. Performance of radiometric calibration code written in Java for the graphical user interface and of using C for the domain model are also presented.

Prados, Don↗

Optical space astronomy and goals of the large space telescope.

Optical astronomy now means the study of EM radiation in the very near IR and vacuum UV in addition to the visible wavelengths. Practical constraints presently define the IR limit at about 11000 A, where photoemissive cathodes become ineffective, and the UV limit at 912 A, where the hydrogen of the interstellar medium limits the view to very nearby objects. Salient events of the first decade of optical space astronomy are discussed together with the orbiting astronomical observatories. Particular attention is given to the large space telescope (LST) project, taking into account the physical characteristics of the LST and the scientific program.

O'Dell, C. R.↗

HEAO-C Observatory Description

The spacecraft subsystems, scientific instrumentation, and the mission operations concept of the HEAO-C program are presented as an aid to HEAO guest observers. Scientific participants such as Principal Investigators and Co-investigators are presented.

Dailey, C.↗

First Scientific Working Group Meeting of Airborne Doppler Lidar Wind Velocity Measurement Program, appendix C

The problem is to operate on two scalar fields to produce a vector field, to produce user products from the vector field, and to establish reliability of results. Data problems encountered include sparse measurements, irregular distribution, varying quality, imperfect orthogonality, aliasing due to sampling volume, and measurements not simultaneous. Desired algorithm characteristics, solution elements, and characteristics of the model are listed. The seven simulation elements, eight algorithm steps and the required user inputs are given.

Lee, R. W.↗

HEAO attitude reference design

The paper deals with the precision onboard attitude reference implemented as part of the attitude control and determination subsystem for the three High Energy Astronomy Observatories (HEAO-A, HEAO-B, and HEAO-C) in the HEAO scientific spacecraft program. The first observatory (HEAO-A, designated HEAO-1 when in orbit) was launched successfully into near-earth orbit on August 12, 1977. The HEAO attitude reference, analysis techniques for performance prediction, and flight results from the HEAO-1 observatory during its first months of operation. The HEAO-B design is specifically described and analyzed in terms of gyro processing, kinematic integration, ground update algorithm, and star tracker update algorithm. Attitude reference performance estimates are also discussed. It is shown that the orbital performance of the attitude reference correlates very well with the developmental predictions, thereby validating the analytical techniques used during the development. This validation provides a firm basis from which to extrapolate to other applications and related design concepts.

Hoffman, D. P.↗

Directions in parallel programming: HPF, shared virtual memory and object parallelism in pC++

Fortran and C++ are the dominant programming languages used in scientific computation. Consequently, extensions to these languages are the most popular for programming massively parallel computers. We discuss two such approaches to parallel Fortran and one approach to C++. The High Performance Fortran Forum has designed HPF with the intent of supporting data parallelism on Fortran 90 applications. HPF works by asking the user to help the compiler distribute and align the data structures with the distributed memory modules in the system. Fortran-S takes a different approach in which the data distribution is managed by the operating system and the user provides annotations to indicate parallel control regions. In the case of C++, we look at pC++ which is based on a concurrent aggregate parallel model.

Bodin, Francois↗

Exploiting Modern C++ for Portable Parallel Programming in Lattice QCD Applications

The evolution of ISO C++ standards increasingly serves the needs of scientific computing, offering potential benefits for developing portable applications. The recent revisions of C++ programming language, for instance, introduces a suite of algorithms capable of being executed on accelerators. Although this approach may not yield best performance, it can present a viable balance between code productivity and computational efficiency. In this report, we discuss the implementation of the HISQ operator utilizing a range of features from the C++17/20/23 standards and include an assessment of their performance.

Strelchenko, Alexei↗

Towards reverse mode automatic differentiation of Kokkos-based codes

Derivative computation is a key component of optimization, sensitivity analysis, uncertainty quantification, and the solving of nonlinear problems. Automatic differentiation (AD) is a powerful technique for evaluating such derivatives, and in recent years, has been integrated into programming environments such as Jax, PyTorch, and TensorFlow to support derivative computations needed for training of machine learning models, facilitating wide-spread use of these technologies. The C++ language has become the de facto standard for scientific computing due to numerous factors, yet language complexity has made the wide-spread adoption of AD technologies for C++ difficult, hampering the incorporation of powerful differentiable programming approaches into C++ scientific simulations. This is exacerbated by the increasing emergence of architectures, such as GPUs, with limited memory capabilities and requiring massive thread-level concurrency. C++ AD tools must effectively use these environments to bring novel scientific simulations to next-generation DOE experimental and observational facilities. In this project, we investigated source transformation-based automatic differentiation using LLVM compiler infrastructure to automatically generate portable and efficient gradient computations of Kokkos-based code. We have demonstrated that our proposed strategy is feasible by investigating the usage of a prototype LLVM-based source transformation tool to generate gradients of simple functions made of sequences of simple Kokkos parallel regions. Speedups of up to 500x compared to Sacado were observed on NVIDIA V100 GPU.

97 MATHEMATICS AND COMPUTING↗

Converting EOS Data from HDF-EOS to netCDF

A C-language computer program accepts, as input, a set of scientific data and metadata from an Earth Observing System (EOS) satellite and converts the set from (1) the format in which it was created and delivered to (2) another format for processing and exchange of data on Earth.

Ullman, Richard↗

Charon Message-Passing Toolkit for Scientific Computations

The Charon toolkit for piecemeal development of high-efficiency parallel programs for scientific computing is described. The portable toolkit, callable from C and Fortran, provides flexible domain decompositions and high-level distributed constructs for easy translation of serial legacy code or design to distributed environments. Gradual tuning can subsequently be applied to obtain high performance, possibly by using explicit message passing. Charon also features general structured communications that support stencil-based computations with complex recurrences. Through the separation of partitioning and distribution, the toolkit can also be used for blocking of uni-processor code, and for debugging of parallel algorithms on serial machines. An elaborate review of recent parallelization aids is presented to highlight the need for a toolkit like Charon. Some performance results of parallelizing the NAS Parallel Benchmark SP program using Charon are given, showing good scalability.

VanderWijngaart, Rob F.↗

Charon Message-Passing Toolkit for Scientific Computations

The Charon toolkit for piecemeal development of high-efficiency parallel programs for scientific computing is described. The portable toolkit, callable from C and Fortran, provides flexible domain decompositions and high-level distributed constructs for easy translation of serial legacy code or design to distributed environments. Gradual tuning can subsequently be applied to obtain high performance, possibly by using explicit message passing. Charon also features general structured communications that support stencil-based computations with complex recurrences. Through the separation of partitioning and distribution, the toolkit can also be used for blocking of uni-processor code, and for debugging of parallel algorithms on serial machines. An elaborate review of recent parallelization aids is presented to highlight the need for a toolkit like Charon. Some performance results of parallelizing the NAS Parallel Benchmark SP program using Charon are given, showing good scalability. Some performance results of parallelizing the NAS Parallel Benchmark SP program using Charon are given, showing good scalability.

VanderWijngarrt, Rob F.↗