Hi all, this series of patches (six in total) adds a new coarray backend library to libgfortran. The library uses shared memory and processes to implement running multiple images on the same node. The work is based on work started by Thomas and Nicolas Koenig. No changes to the gfortran compile part are required for this.
Unfortunately I found some defects in the gfortran compiler, that needed to be fixed. These are the first four tiny patches. The fifth patch then adds the library and sixth patches the testcases in gcc/testsuite/gfortran.dg/coarray to also run (and pass) when linked against caf_shmem. The development has been done on x86_64-pc-linux-gnu / Fedora 41. I am curious to learn which fixes will be needed for other platforms. This will be the last big patch that was funded by the STF/STA. My funding has run out and I will only be available for a few days before a new project will consume my attention. Therefore please bring any deficiencies to my attention as soon as possible. I have done some performance measurement against OpenCoarrays measuring coarray_icarr from https://github.com/gutmann/coarray_icar . The figures are: OpenCoarrays (mpich4-backend): 165.578s (real 2m59,947s) -------------------------------------------------- caf_shmem (16-trunk): 61.489s (real 1m3,681s) The first number is the "Model run time:" as reported by the program. In the parentheses the real run time as reported by the bash command `time` is given. Both are done using a debug build of coarray_icar on an Intel Core i7-5775C CPU @ 3.30GHz having 24GB, and running Fedora Linux 41 with all recent patches. Regards, Andre -- Andre Vehreschild * Email: vehre ad gmx dot de