The application of increasingly powerful computational capabilities will support more ambitious undertakings, many of which rely on autonomous smart systems. However, many of the advanced devices developed for commercial terrestrial applications are not suited to the space environment. Space applications require devices that are immune, or at least tolerant, of radiation-induced effects, within tightly constrained resources of mass and power. The software design that runs on these advanced devices, with architectures different than current space-qualified devices, also requires new approaches. The criticality and complexity of the software needed for these demanding applications requires further development to manage this complexity at low risk.
2. New Software Tools. Develop new flight and ground computing software tools (and engage trained computer scientists) to take advantage of new computing technologies by keeping pace with computing hardware evolution, eliminating the multi-core “programmability gap,” and permitting the porting of legacy codes.
Since about 2004 the increase in computer power has come about because of increases in the number of cores per chip (“multi-core”) and use of very fast vector graphical processor units (GPUs) rather than increases in processor speed. NASA has a large budget for new computer hardware, but the challenge of developing efficient new codes for these new computer architectures has not yet been addressed. Major codes are developed over decades, but computers change every few years, so NASA’s vast inventory of legacy engineering and scientific codes will need to be re-engineered to make effective use of the rapidly changing advanced computational systems. This re-engineering needs to anticipate future architectures now being developed such as Many Integrated Core (MIC) and other advanced processors with the goals of portability, reliability, scalability, and simplicity. The effort will require both the engagement of a large number of computer scientists and professional programmers and the development of new software tools to facilitate the porting of legacy codes and the creation of new more efficient codes for these new systems. Additional issues that arise as computer systems evolve to millions of cores include the need for redundancy or other defenses against hardware failures, the need to create software and operating systems that prevent load imbalance from slowing the performance of codes, and the need to make large computers more energy efficient as they consume a growing fraction of available electricity.
3. Testing. Improve reliability and effectiveness of hardware and software testing and enhance mission robustness via new generations of affordable simulation software tools.
The complexity of systems comprised of advanced hardware and software must be managed in order to ensure the systems’ reliability and robustness. New software tools that allow insight into the design of complex systems will support the development of systems with well understood, predictable behavior while minimizing or eliminating undesirable responses.
4. Simulation Tools. Develop scientific simulation and modeling software tools to fully utilize the capabilities of new generations of scientific computers (e.g., for cross-scale simulations and data assimilation and visualization in Earth science, astrophysics, heliophysics, and planetary science).
Supercomputers have become increasingly powerful, often enabling realistic multi-resolution simulations of complex astrophysical, geophysical, and aerodynamic phenomena. The sort of phenomena that are now being simulated include the evolution of circumstellar disks into planetary systems, the formation of stars in giant molecular clouds in galaxies, and the evolution of entire galaxies including the feedback from supernovas and supermassive black holes. These are also multi-resolution problems, since (for example) one can’t really understand galaxy evolution without understanding smaller-scale phenomena such as star formation. Other multi-scale phenomena that are being simulated on NASA’s supercomputers include entry of spacecraft into planetary atmospheres and the ocean-atmosphere interactions that affect the evolution of climate on Earth. However, efficient new codes that use the full capabilities of these new computer architectures are still under development.