Integrating the Physical Core of Japan’s next weather model on GPU was a challenge, especially since the codebase needed not only to be compatible with x86 CPU, but it needed to be as performant as the architecture specific codebase that was used before. After some experimentations the realization came that in order to achieve this feat for a complex codebase with deep callgraphs inside loops and over 25’000 lines of code, appropriate tools needed to be invented first. That’s how Hybrid Fortran came into existence. With the help of this framework, this large codebase was ported in only three months.
Performant, user- and maintenance friendly GPGPU and a large codebase ported in no time – Typhoon Computing’s Michel is your man for the job.Prof. Takayuki Aoki, Tokyo Institute of Technology
It worked out just as intended – the new unified codebase even performs slightly better on CPU than the original x86-only version. This is a significant achievement, since it allows a full integration of Japan’s weather prediction model on GPU clusters together with the already ported Dynamical Core (no memory transfer between CPU and GPU necessary anymore), while keeping a fully performant backwards compatible version for existing CPU clusters in a nicely maintainable, unified codebase.
You’d like your Fortran codebase go really fast, yet keep backwards compatibility with (multicore) CPU? With the Open Source solution Hybrid Fortran it’s as simple as