Making Fortran Legacy Code More Functional: Using the BGS Geomagnetic Field Modelling System as an Example

Hans-Nikolai Viessmann, Sven-Bodo Scholz, Artjoms Sinkarovs, Brian Bainbridge, Brian Hamilton, Simon Flower

Research output: Chapter in Book/Report/Conference proceedingConference contribution

2 Citations (Scopus)

Abstract

This paper presents an application case study of the British Geological
Survey’s (BGS) Geomagnetic Field Modelling System code.
The program consists of roughly 20 000 lines of highly-tuned FORTRAN
MPI code that has a runtime of about 12 hours for a signal
execution cycle on a cluster utilising approximately 100 CPU cores.
The program contains a sequential bottleneck that executes on a
single node of the cluster and takes up to 50% of the overall runtime.
We describe an experiment in which we rewrote the bottleneck FORTRAN
code in SAC, to make use of auto-parallelisation provided
by the SAC compiler. The paper also presents an implementation
of a foreign-function interface, to link the SAC kernel with the
FORTRAN application. Our initial performance measurements compare
the SAC kernel performance with the FORTRAN bottleneck
code; we also present results using an OPENMP Fortran implementation.
Our figures show that the SAC-based implementation
achieves roughly a 12.5% runtime improvement, and outperforms
the OPENMP implementation.
Original languageEnglish
Title of host publicationProceedings of the 27th Symposium on the Implementation and Application of Functional Programming Languages
DOIs
Publication statusPublished - 2015
Event27th Symposium on the Implementation and Application of Functional Programming Languages - Koblenz, Germany
Duration: 14 Sept 201516 Sept 2015

Conference

Conference27th Symposium on the Implementation and Application of Functional Programming Languages
Abbreviated titleIFL 2015
Country/TerritoryGermany
CityKoblenz
Period14/09/1516/09/15

Fingerprint

Dive into the research topics of 'Making Fortran Legacy Code More Functional: Using the BGS Geomagnetic Field Modelling System as an Example'. Together they form a unique fingerprint.

Cite this