Experiences Developing a Fortran Code Transformer

Date and Time: 
2014 April 8th @ 8:30am
CG1 Auditorium
Paul Madden

The Parallel Preprocessor (ppp), a component of the the Scalable Modeling System (SMS, a parallelization toolkit for Fortran developed at NOAA), translates Fortran code with user-supplied directives into a parallel form, based on MPI, ready for compilation. Initially developed in the early '90s, ppp until recently had less than robust support for Fortran 90 (and beyond), and was in need of an overhaul. This talk discusses the translation problem solved by ppp, technology selected for the update (Treetop, a Ruby-based parser generator using the Parsing Expression Grammar formalism), implementation and testing, outcomes so far, and possible future work. Ideas for applications beyond SMS, involving general code transformations too complicated for Fortran-agnostic preprocessors (e.g. cpp) are also discussed.

Speaker Description: 

I am a software engineer in the Advanced Computing Section of NOAA's Earth System Research Laboratory, Global Systems Division, via CU Boulder's Cooperative Institute for Research in Environmental Sciences. My work mainly involves automatic parallelization via language translation, regression-testing infrastructure, build/run automation, and tool support (revision control, profiling, etc.) for scientific-model development.

PDF icon madden-fortran-code-transformer.pdf263.43 KB

Event Category: