Retire Fortran?: a debate rekindled
Communications of the ACM
Formal software engineering for computational modelling
Nordic Journal of Computing
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
The Tau Parallel Performance System
International Journal of High Performance Computing Applications
Coordinate-free numerics: all your variation points for free?
International Journal of Computational Science and Engineering
Scientific Software Design: The Object-Oriented Way
Scientific Software Design: The Object-Oriented Way
Modern Fortran Explained
Hi-index | 0.00 |
High-performance software, as all software, continuously evolves. Besides the normal changes in user requirements, e.g., the wish to solve a variation of a scientific problem, such software is also challenged by a flood of new technologies that promise higher performance and better energy utilization. Continuously adapting HPC codes for multicore processors and many-core accelerators while also adapting to new user requirements, however, drains human resources and prevents utilization of more cost-effective hardware. Here we present some ideas for dealing with software variability in the PDE domain, namely the use of coordinate-free numerics for achieving flexibility. We also show how Fortran, over the last few decades, has changed to become a language well suited for state-of-the-art software development. Fortran's new coarray distributed data structure, the language's class mechanism and side-effect-free, pure function capability provide the scaffolding on which we implement high performance software. These features empower compilers to organize parallel computations with efficient communication. We present some programming patterns that support asynchronous evaluation of expressions comprised of parallel operations on distributed data.