Search NASA⌕ Search

SEARCH · Search NASA

Results for “code modernization”

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

Legacy Code Modernization

Over the past decade, high performance computing has evolved rapidly; systems based on commodity microprocessors have been introduced in quick succession from at least seven vendors/families. Porting codes to every new architecture is a difficult problem; in particular, here at NASA, there are many large CFD applications that are very costly to port to new machines by hand. The LCM ("Legacy Code Modernization") Project is the development of an integrated parallelization environment (IPE) which performs the automated mapping of legacy CFD (Fortran) applications to state-of-the-art high performance computers. While most projects to port codes focus on the parallelization of the code, we consider porting to be an iterative process consisting of several steps: 1) code cleanup, 2) serial optimization,3) parallelization, 4) performance monitoring and visualization, 5) intelligent tools for automated tuning using performance prediction and 6) machine specific optimization. The approach for building this parallelization environment is to build the components for each of the steps simultaneously and then integrate them together. The demonstration will exhibit our latest research in building this environment: 1. Parallelizing tools and compiler evaluation. 2. Code cleanup and serial optimization using automated scripts 3. Development of a code generator for performance prediction 4. Automated partitioning 5. Automated insertion of directives. These demonstrations will exhibit the effectiveness of an automated approach for all the steps involved with porting and tuning a legacy code application for a new architecture.

Hribar, Michelle R.↗

Developments in the simulation of separated flows using finite difference methods

Compressible viscous flow simulation using finite difference Navier-Stokes and viscous-inviscid interaction methods is described. Recent developments are reviewed that significantly improve the computational efficiency of approximately factored implicit Navier-Stokes algorithms. Compared to Navier-Stokes codes, modern viscous-inviscid interaction codes are more computationally efficient, but have restricted application and are more complicated to program. Therefore, less efficient but more general viscous-inviscid interaction methods are investigated that use forcing functions instead of boundary condition matching, and a simple, direct/inverse, three-dimensional, finite-difference, boundary layer code is presented.

Steger, J. L.↗

Computer-Aided Parallelizer and Optimizer

The Computer-Aided Parallelizer and Optimizer (CAPO) automates the insertion of compiler directives (see figure) to facilitate parallel processing on Shared Memory Parallel (SMP) machines. While CAPO currently is integrated seamlessly into CAPTools (developed at the University of Greenwich, now marketed as ParaWise), CAPO was independently developed at Ames Research Center as one of the components for the Legacy Code Modernization (LCM) project. The current version takes serial FORTRAN programs, performs interprocedural data dependence analysis, and generates OpenMP directives. Due to the widely supported OpenMP standard, the generated OpenMP codes have the potential to run on a wide range of SMP machines. CAPO relies on accurate interprocedural data dependence information currently provided by CAPTools. Compiler directives are generated through identification of parallel loops in the outermost level, construction of parallel regions around parallel loops and optimization of parallel regions, and insertion of directives with automatic identification of private, reduction, induction, and shared variables. Attempts also have been made to identify potential pipeline parallelism (implemented with point-to-point synchronization). Although directives are generated automatically, user interaction with the tool is still important for producing good parallel codes. A comprehensive graphical user interface is included for users to interact with the parallelization process.

Jin, Haoqiang↗

GPU Implementation of the OVERFLOW CFD Code

The high-performance computing (HPC) landscape is quickly changing to systems where most of the performance comes from specialized chips, specifically graphics processing units (GPUs). Such GPU systems are throughput machines, where efficient use of the GPU often requires code refactoring to expose a few orders of magnitude more fine grain parallelism than was previously used on the CPU. Recent modifications to OVERFLOW, an overset, structured grid, computational fluid dynamics flow solver, written in Fortran will be presented. These modifications include both code modernization efforts and algorithmic changes to enable OVERFLOW to efficiently utilize GPUs. Many of these algorithmic changes would likely also be applicable for other structured grid, stencil-based codes wanting to utilize GPUs. The capabilities that have been ported to run on the GPUs are presented, along with the performance gains of the GPU version relative the CPU version of OVERFLOW.

GPU Programming↗

GPU Implementation of the OVERFLOW CFD Code

The high-performance computing (HPC) landscape is quickly changing to systems where most of the performance comes from specialized chips, specifically graphics processing units (GPUs). Such GPU systems are throughput machines, where efficient use of the GPU often requires code refactoring to expose a few orders of magnitude more fine grain parallelism than was previously used on the CPU. Recent modifications to OVERFLOW, an overset, structured grid, computational fluid dynamics flow solver, written in Fortran will be presented. These modifications include both code modernization efforts and algorithmic changes to enable OVERFLOW to efficiently utilize GPUs. Many of these algorithmic changes would likely also be applicable for other structured grid, stencil-based codes wanting to utilize GPUs. The capabilities that have been ported to run on the GPUs are presented, along with the performance gains of the GPU version relative the CPU version of OVERFLOW.

GPU Programming↗

NASA GPU Hackathon Yields Significant Code Improvements

The NASA GPU Hackathon 2020 brought together application developers and computer experts to help get important NASA applications running effectively on graphics processing unit (GPU) nodes. Nine teams of application developers participated in this virtual event, a major impetus for teams to modernize codes of interest for NASA missions to CPU nodes containing GPU accelerators, with a focus on hands-on problem solving. The photo in Figure1 shows 30 of the more than50 participants. The HECC project and NVIDIA jointly organized the event, and HECC provided five Pleiades nodes each with 4 V100 GPUs for teams to use. The virtual event, which took place over four days from September 28–October 7, 2020, used Microsoft Teams and Slack as collaboration tools. Each team consisted of three to six members from NASA Centers and supporting organizations. The teams were paired with one to two mentors from industry, government, and academia. The experience levels of the teams ranged from being GPU novices to advanced CUDA programming experts. OpenACC and the emerging Kokkos API were used in addition to CUDA for GPU programming. During the event, which focused on accelerating AeroSciences and CFD applications, most teams achieved considerable performance improvements on both GPUs and CPUs. For example, a team with no GPU experience completed a first port of a time-critical loop to a GPU. Another team of expert CUDA programmers were able to restructure their algorithm, yielding a factor of five speed-up. And another team sped up some of their CUDA kernels by a factor of 20, which directly translated into their production code. This article highlights some of the many successes resulting from the event.

HECC↗

SPACE: Three Decades of Spacecraft Power Systems Analysis with Fortran

The SPACE (System Power Analysis for Capability Evaluation) Fortran program developed at NASA Glenn Research Center has enabled power generation predictions and energy balance analyses for spacecraft electrical power systems (EPS) since 1988. SPACE was originally designed to analyze the EPS of the Space Station Freedom and continues to support certifications for visiting vehicles and extravehicular activities on the International Space Station today. Another version of SPACE currently supports design and mission planning operations for the Orion and Gateway vehicles as part of NASA’s Artemis program. In total, over 50 engineers have contributed to the development and use of SPACE on various platforms throughout its history. Ongoing code modernization efforts aim to generalize the program for use with different vehicles and configurations. While SPACE team analysts currently interact with the program via the command line, future development work also includes the creation of a graphical user interface for use by flight operations personnel. The SPACE code thus has a long legacy in spacecraft EPS analysis and will continue to play a critical role in future human spaceflight missions by leveraging the computational power of Fortran.

Fortran↗

Outer Planet Global Reference Atmospheric Model (GRAM) Upgrades

Introduction: The Global Reference Atmospheric Model (GRAM) is one of the most widely used engineering models of planetary atmospheres. The GRAM upgrades are being developed by NASA Marshall Space Flight Center and NASA Langley Research Center. This presentation will provide details regarding the upgrades to the existing GRAMs, the development of new GRAMs, and the ongoing objectives, tasks, and milestones related to the GRAM upgrades funded by the NASA Science Mission Directorate (SMD). GRAM: The GRAMs are engineering-oriented atmospheric models that estimate mean values and statistical variations of the atmospheric properties for numerous planetary destinations. They provide mean values and variability for any point in the atmosphere as well as seasonal, geographic, and altitude variations. GRAM outputs include atmospheric density, temperature, pressure, winds, and chemical composition along a user-defined path. They are extensively used by the engineering community because of their ability to create realistic dispersions. GRAMs have been integrated into high fidelity flight dynamic simulations of launch, entry, descent and landing (EDL), aerobraking and aerocapture. GRAMs are currently available for Earth, Mars, Venus, Neptune, Titan, and Uranus. Outer Planet GRAM Upgrade Status: Code Modernization. The outer planet GRAMs have been rearchitected from Fortran to a common object-oriented C++ framework called the GRAM Suite. This new architecture creates a common GRAM library of data models and utilities. The first C++ releases of the rearchitected legacy outer planet GRAMs (Neptune and Titan-GRAM) are straight conversions from the latest Fortran version. Model Upgrades. The focus of the model upgrade task is to improve the atmosphere models in the existing GRAMs and to establish a foundation for developing GRAMs for additional destinations. The GRAM ephemeris has been upgraded to the NASA Navigation and Ancillary Information Facility (NAIF) SPICE toolkit (version N0066). The calculation of the speed of sound has also been improved in the GRAMs. In FY20, the GRAM project established a contract with Hampton University to develop empirical global models for Jupiter, Saturn, Uranus, Neptune, and Titan. Upgraded Outer Planet GRAM Releases. GRAM Suite Version 1.0 was released in May 2020 and contains the rearchitected Neptune-GRAM, including the common GRAM framework and planet–specific code. GRAM Suite Version 1.1 was released in September 2020 and added the rearchitected Titan-GRAM to the GRAM Suite. A User Guide and Programmer’s Manual are released with all GRAMs. New Outer Planet GRAM Releases. New GRAMs have been developed for Uranus and Jupiter. Uranus-GRAM is based on the NASA Ames Research Center (ARC) Uranus Atmospheric Model [1,2] and was released in GRAM Suite Version 1.2 in July 2021. Jupiter-GRAM is based on Galileo probe Atmospheric Structure Instrument (ASI) data from Seiff et al. [3] Saturn-GRAM is also under development. Both Jupiter and Saturn-GRAM will be released in future versions of the GRAM Suite. Conclusions: GRAMs are vital and frequently used toolsets. Releases of the GRAM Suite, upgrades of the existing planetary GRAMs, and development of new planetary GRAMs are ongoing. Titan-GRAM atmosphere model upgrades will be included in the next phase of GRAM tasks. References: [1] Allen Jr., G.A. et al. (2014) 11th International Planetary Probe Workshop, Abstract #8023. [2] Allen Jr., G.A. et al. (2014) Workshop on the Study of the Ice Giant Planets, Abstract #2001. [3] Seiff, A. et al. (1998) JGR, 103, 22,857 -22,889. Acknowledgments: The authors gratefully acknowledge support from the NASA SMD.

atmospheric models↗

Venus Global Reference Atmospheric Model (Venus-GRAM) Upgrades

Introduction: The Venus Global Reference Atmospheric Model (Venus-GRAM) is one of the most widely used engineering models of Venus’ atmosphere. The Venus-GRAM upgrades are being developed by NASA Marshall Space Flight Center (MSFC) and NASA Langley Research Center (LaRC). This presentation will provide details regarding the upgrades that have been made to Venus-GRAM and the ongoing objectives, tasks, and milestones related to the GRAM upgrades funded by the NASA Science Mission Directorate (SMD). Venus-GRAM: Venus-GRAM is an engineering-oriented atmospheric model that estimates mean values and statistical variations of the atmospheric properties of Venus. Venus-GRAM provides mean values and variability for any point in the atmosphere as well as seasonal, geographic, and altitude variations. Venus-GRAM outputs include atmospheric density, temperature, pressure, winds, and chemical composition along a user-defined path. It is extensively used by the engineering community because of its ability to create realistic dispersions. GRAMs have been integrated into high fidelity flight dynamic simulations of launch, entry, descent and landing (EDL), aerobraking and aerocapture. GRAMs are currently available for Earth, Mars, Venus, Neptune, Titan, and Uranus. The lower atmosphere model in Venus-GRAM (up to 250 km) is based on the Venus International Reference Atmosphere (VIRA) [1]. The Venus-GRAM thermosphere (250 to 1000 km) is based on a MSFC-developed model [2] which assumes an isothermal temperature profile initialized using VIRA conditions at 250 km [3]. The VIRA version included in Venus-GRAM includes Pioneer Venus Orbiter and Probe data as well as Venera probe data, but it does not include a solid planet model or a high-resolution gravity model [4]. Venus-GRAM Upgrade Status: Code Modernization. Venus-GRAM has been rearchitected from Fortran to a common object-oriented C++ framework called the GRAM Suite. This new architecture creates a common GRAM library of data models and utilities. The first C++ release of the rearchitected Venus-GRAM is a straight conversion from the latest Fortran version. Model Upgrades. The focus of the model upgrade task is to improve the atmosphere models in the existing GRAMs and to establish a foundation for developing GRAMs for additional destinations. The GRAM ephemeris has been upgraded to the NASA Navigation and Ancillary Information Facility (NAIF) SPICE toolkit (version N0066). The calculation of the speed of sound has also been improved in the GRAMs. In FY20, the GRAM project established contracts to improve the model data within Venus-GRAM. Hampton University is developing an empirical global model for Venus. The University of Wisconsin is reanalyzing the Venus Express radio occultation observations and analyzing the Akatsuki thermal imaging data. Upgraded Venus-GRAM Release. GRAM Suite Version 1.3 will be released in September 2021 and will contain the rearchitected Venus-GRAM, including the common GRAM framework and planet–specific code. A User Guide and Programmer’s Manual are released with all GRAMs. Conclusions: GRAMs are frequently used toolsets and vital in assessing effects of atmospheres on interplanetary spacecraft during the program life cycle process. Releases of the GRAM Suite, upgrades of the existing planetary GRAMs, and development of new planetary GRAMs are ongoing. Venus-GRAM atmosphere model upgrades will be included in the next phase of GRAM tasks. References: [1] Kliore, A. J. et al. (1985) ASR, 5, 11, 1-304. [2] Justh, H. L. et al. (2006) AIAA/AAS Astrodynamics Specialist Conference & Exhibit, Abstract AIAA-2006-6394. [3] Guide to Reference and Standard Atmosphere Models, BSR/AIAA G-003-2010. [4] Limaye, S. S. (2012), LPSC VEXAG Townhall Meeting. Acknowledgments: The authors gratefully acknowledge support from the NASA SMD.

atmospheric models↗

Development and application of a time-history analysis for rotorcraft dynamics based on a component approach

A time history analysis for rotorcraft dynamics based on dynamical substructures, and nonstructural mathematical and aerodynamic components is described. The analysis is applied to predict helicopter ground resonance and response to rotor damage. Other applications illustrate the stability and steady vibratory response of stopped and gimballed rotors, representative of new technology. Desirable attributes expected from modern codes are realized, although the analysis does not employ a complete set of techniques identified for advanced software. The analysis is able to handle a comprehensive set of steady state and stability problems with a small library of components.

Sopher, R.↗

Protobiological informatoin, bidirectional recognition and reverse translation

Emergence of protobiological information has been suggested by experiments in which heated mixtures of alpha-amino acids order themselves into a self limited array of thermal proteins. The polymers display selective catalytic, hormonal, and other activities. Interactions of varied cationic thermal proteins with polynucleotides indicate selective recognition in both directions. Reverse translation is partly a missing link in the molecular evolution flowsheet. The self ordering of amino acids serves conceptually as a deterministic evolutionary precursor of the modern coding mechanism. The possibility for the evolution of information at an early nontemplated protein stage is supported by findings of electrical signals from proteinoid microspheres prepared with no DNA/RNA in their history. The deposition of thermal copolyamino acids on lipid membranes in the Mueller-Rudin apparatus has here been found to produce electrical behavior like that evoked by bacterial EIM polypeptide. A new procedure is to make a film of membrane on the electrode; the results provide maximal repeatability. The principle of nonrandom biomacromolecular specificity identified by these studies in molecular evolution have been extrapolated to principles of evolution of advanced organisms.

Fox, S. W.↗

Recent advances in hypersonic technology

This paper will focus on recent advances in hypersonic aerodynamic prediction techniques. Current capabilities of existing numerical methods for predicting high Mach number flows will be discussed and shortcomings will be identified. Physical models available for inclusion into modern codes for predicting the effects of transition and turbulence will also be outlined and their limitations identified. Chemical reaction models appropriate to high-speed flows will be addressed, and the impact of their inclusion in computational fluid dynamics codes will be discussed. Finally, the problem of validating predictive techniques for high Mach number flows will be addressed.

Dwoyer, Douglas L.↗

Optical vector receiver operating near the quantum limit

An optical receiver concept or binary signals with performance approaching the quantum limit at low average signal background photons has been devised by Dolinar, however this receiver requires ideal optical combining and complicated real-time shaping of the local field, hence tends to be difficult to implement at high data rates. A simpler nulling receiver that approaches the quantum limit without complex optical processing, suitable for high-rate operation has been suggested earlier by Kennedy. Here we formulate a vector receiver concept that incorporates the Kennedy receiver together with a physical beamsplitter, but also utilizes the reflected signal component to improve signal detection. It is found that augmenting the Kennedy receiver with classical coherent detection at the auxiliary beamsplitter output, and optimally processing the vector observations, always improves on the performance of the Kennedy receiver alone, significantly so at low average photon rates. This is precisely the region of operation where modern codes approach channel capacity. It is also shown that the addition of background radiation has little effect on the performance of the coherent receiver component, suggesting a viable approach for near quantum-limited performance in high background environments

Lau, Chi-Wung↗

Fostering Better Collaboration in Software Development Cycles Between Scientists and Programmers to Ensure the Integrity of and Promote the Development of New Scientific Data Products.

Misaligned incentives lead to reduced interaction between scientists and programmers on modern NASA science data-product development teams. Typically, situations arise where the scientist is not incentivized to learn modern coding practices and the programmer does not understand the science algorithms in the code. A programmer is responsible for the deliverable code thus setting a tradeoff between the desire for code improvement versus fear of compromising the integrity of data-product while the scientist continues to rely on their legacy codebases owing to the complexity of using the delivered code outside the processing environment and lack of validation modules. The NASA/CERES-TISA project has adopted a collaborative approach, with scientists and programmers both utilizing the same software repository with multiple branches, some optimized for delivery to a processing datacenter and others for scientific product development and validation. A team of scientists and programmers jointly review any new science code updates for integration into the codebase and strive to improve practices through promoting algorithm understanding, better institutional knowledge exchange and documentation, modularization, and developing data processing flow-dictated validation and debugging methods. This leads to a reduction in the personnel single point failures and reduced development time for creation of new science data-products.

CERES↗

Modernizing Fortran 77 Legacy Codes

An incremental approach to modernization of scientific software written in the Fortran 77 computing language has been developed. This approach makes it possible to preserve the investment in legacy Fortran software while augmenting the software with modern capabilities to satisfy expanded requirements. This approach could be advantageous (1) in situations in which major rewriting of application programs is undesirable or impossible, or (2) as a means of transition to major rewriting.

Decyk, Viktor↗

Modernizing Fortran 77 legacy codes

Legacy software has great value since it is generally well debugged, produces results that are trusted and is actively meeting end-user goals. The amount of hidden expert knowledge embedded in such software can be significant, making its preservation important.

Fortran scientific programming↗

High Performance Object-Oriented Scientific Programming in Fortran 90

We illustrate how Fortran 90 supports object-oriented concepts by example of plasma particle computations on the IBM SP. Our experience shows that Fortran 90 and object-oriented methodology give high performance while providing a bridge from Fortran 77 legacy codes to modern programming principles. All of our object-oriented Fortran 90 codes execute more quickly thatn the equeivalent C++ versions, yet the abstraction modelling capabilities used for scentific programming are comparably powereful.

Scientific Programming↗