Fortran coarrays on GPU

Is it possible to run Fortran coarrays on GPUs? There were some mentions using GASnet, is it successful or advancing in any way?
Overall, are Fortran coarrays an actively pursued direction? What happened to coarrays v.2, developed at Rice University?

4 Likes

I think the NVIDIA Fortran compiler team is working on it. My knowledge of their work is old and dates back to 2018 at the SC conference. There, they told me they were working on GPU-parallelization of Fortran syntax like do concurrent, and they did release this feature in a subsequent release of their Fortran compiler. But I do not think they have a working Coarray GPU implementation yet. That is just my guess and it may be wrong. Maybe this year, I will stop by their booth again to inquire. The developers of the OpenCoarrays may have a much better answer to your question if you ask them on GitHub.

4 Likes

AFAIK NVIDIA Fortran compiler is based on classic Flang, which doesn’t support Fortran coarrays at all, so it’s unlikely this combination of coarrays + do concurrent on GPU will happen soon. Also, I think @rouson is currently in the process of reimplementing OpenCoarrays as Caffeine.

2 Likes

I think NVIDIA has some of the components which would be needed in a co-array implementation. See for example:

The libraries were mentioned in a recent training at ISC22: GitHub - FZJ-JSC/tutorial-multi-gpu: Efficient Distributed GPU Programming for Exascale, an SC/ISC Tutorial. Unfortunately, I don’t know if coarrays are on their radar. They also have their CUDA unified memory, which seems like a global address space to me. It’s just the partitioning part which is missing.

It would be good to know if Intel plans to support hybrid coarrays + OpenMP target offloading in their new LLVM compiler. After-all Aurora is supposed to be on its way.

3 Likes