Тёмный

Paul Bartholomew: Exploiting bind(c) to run modern Fortran on modern hardware, economics be damned! 

Society of Research Software Engineering
Подписаться 299
Просмотров 26
50% 1

A talk from the OSS & Tooling 2 session at RSECon23 at Swansea University, on 2023-09-07.
Programme link: virtual.oxford...
Slides: docs.google.co...
Abstract:
Despite rumours to the contrary, Fortran enables writing software that is abstracted, high-level and clean, using modern development practices such as generic interfaces. However, due to economies of scale, support for modern standards is not guaranteed across Fortran compiler vendors as might be expected based on the C++ compiler ecosystem. This may contribute to the perception of Fortran as a legacy language. We have recently experienced this situation during the ASiMoV-CCS CFD code development effort. A key design goal of ASiMoV-CCS is to avoid hard dependencies, such as a specific linear algebra backend. We achieve this through a combination of generic interfaces and submodules, with a particular implementation selected at link time. This enables developers to provide alternative implementations by coding to match the interface. More importantly however, the higher-level scientific code remains independent of implementation. Unfortunately, the features that our design requires were not well supported by the currently available NVHPC nvfortran compilers, limiting the ASiMoV-CCS development options for the GPU ecosystem. We joined the recent UK National GPU hackathon in the hope of finding a solution to this problem. With guidance from our mentors from NVIDIA, we implemented a solution based on bind(c), which ensures the compiler creates C compatible objects. This enabled using gfortran (supporting high-level abstractions) as the primary compiler and linking a small subset of our code developed for GPU offload and compiled with nvfortran. This talk will present the approach taken in the hope it proves useful to others facing similar problems.

Опубликовано:

 

15 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии    
Далее
Learning Fortran in 2023
2:12:51
Просмотров 55 тыс.
The Art of Code - Dylan Beattie
1:00:49
Просмотров 4,7 млн
Turns out REST APIs weren't the answer (and that's OK!)
10:38
Apple October Event LEAKS - 7 NEW Devices are COMING!
10:20