On 7/24/25 21:49, Toon Moene wrote:

On 7/24/25 21:35, Thomas Koenig wrote:

Am 23.07.25 um 21:47 schrieb Toon Moene:

Today I used Thomas's "locks" example code from the same e-mail message (showing the full output):

Actually, I think that example is flawed, it lacks synchronization.
Sorry for that.

Good - hope it's not too hard to repair.

But it's certainly interesting that it *did* give the right answers for gfortran-14 + it's associated libcaf-openmpi library, but not for gfortran-16 libcaf-shmem ...

OTOH, those tests use sufficiently different implementations that timing or interprocess different scheduling could explain the differences.

Today I updated my random-weather example (https://moene.org/~toon/random-weather) to fix the problem that two different implementations of the underlying coarray library might give different result numbers due to the use of random numbers by setting the seed on each image to a definite number.

Here are the results (note - compare the numbers for each image separately):


Coarray library using OpenMPI message passing:

toon@moene:~/src$ gfortran -fcoarray=lib random-weather.f90  -lcaf_openmpi
toon@moene:~/src$ echo ' &config nxglobal=1000, nyglobal=1000, nzglobal=100 / ' | time mpirun -np 32 --use-hwthread-cpus --bind-to hwthread --mca btl self,vader ./a.out
...
Time 3600 Image 6 PS= 100048.469 T= 299.267700 U= -12.8153954 V= -15.2349339 W= 0.221922383 Q= 1.45495927E-03 Time 3600 Image 18 PS= 100029.578 T= 299.008636 U= 0.955265045 V= -18.9048157 W= 0.723394752 Q= 3.16932308E-03 Time 3600 Image 20 PS= 100027.461 T= 300.564758 U= 0.348597527 V= -8.19231701 W= 0.539810836 Q= 1.86772866E-03 Time 3600 Image 16 PS= 99991.8281 T= 298.638550 U= -0.639036179 V= 8.05576706 W= 0.306276381 Q= 1.18846924E-03 Time 3600 Image 27 PS= 100043.523 T= 299.780396 U= -17.6248951 V= -23.3730698 W= 0.331304640 Q= 1.79365475E-03 Time 3600 Image 28 PS= 100082.648 T= 300.903320 U= -9.54719925 V= 13.6631908 W= 0.315995157 Q= 2.52639176E-03 Time 3600 Image 19 PS= 99889.1250 T= 299.924347 U= 11.8081284 V= 20.6310940 W= 0.137247980 Q= 1.63117156E-03 Time 3600 Image 3 PS= 100038.172 T= 298.688049 U= -31.8696289 V= -1.45802879 W= -0.129766420 Q= 1.81929476E-03 Time 3600 Image 1 PS= 100033.555 T= 299.592438 U= 20.4709778 V= 22.8036137 W= 7.24312570E-03 Q= 2.09426484E-03 Time 3600 Image 25 PS= 99989.6797 T= 299.585083 U= 22.6907024 V= 13.7472477 W= 6.04003444E-02 Q= 2.52340618E-03 Time 3600 Image 13 PS= 100023.000 T= 302.984436 U= 49.2850342 V= 66.4705505 W= 0.520215690 Q= 2.37540016E-03 Time 3600 Image 8 PS= 99927.5781 T= 299.539978 U= 24.5135155 V= 32.9800911 W= -0.167698354 Q= 2.44868407E-03 Time 3600 Image 10 PS= 100059.492 T= 299.725159 U= 25.2940655 V= 11.2944908 W= 0.273605078 Q= 2.68980558E-03 Time 3600 Image 29 PS= 99982.8594 T= 300.318481 U= 14.6949377 V= 9.36858082 W= 0.262836665 Q= 2.23369105E-03 Time 3600 Image 2 PS= 100099.867 T= 300.822754 U= -21.1023979 V= 1.59853745 W= -0.256504714 Q= 2.31157197E-03 Time 3600 Image 26 PS= 99978.1250 T= 301.394867 U= 34.8442497 V= 15.1738348 W= 0.463943332 Q= 1.74684054E-03 Time 3600 Image 4 PS= 99909.5312 T= 300.230560 U= -10.5394306 V= 8.89708424 W= 0.187773213 Q= 2.31296313E-03 Time 3600 Image 17 PS= 100051.602 T= 298.459473 U= -1.16752338 V= 61.3956909 W= 0.502476037 Q= 2.25444650E-03 Time 3600 Image 7 PS= 100028.930 T= 297.506409 U= -19.8305969 V= 9.44140053 W= 0.467495948 Q= 1.52200763E-03 Time 3600 Image 14 PS= 100060.148 T= 300.450653 U= 40.1926804 V= 24.8272896 W= 0.507771671 Q= 2.48509250E-03 Time 3600 Image 24 PS= 100026.406 T= 299.273926 U= -26.3849640 V= 74.8888092 W= 0.400560498 Q= 2.26721377E-03 Time 3600 Image 9 PS= 99944.1172 T= 300.300018 U= 23.9729462 V= -49.5058517 W= 1.55195129 Q= 2.78929062E-03 Time 3600 Image 11 PS= 100035.023 T= 300.016632 U= 52.0265961 V= 7.56520891 W= 0.334766924 Q= 1.62978121E-03 Time 3600 Image 23 PS= 99980.4141 T= 299.211670 U= 6.74358845 V= -11.0443926 W= 0.433205307 Q= 2.59170705E-03 Time 3600 Image 15 PS= 99933.8203 T= 300.920959 U= 4.97130394 V= -3.18852234 W= 0.316092432 Q= 1.83982204E-03 Time 3600 Image 12 PS= 100088.266 T= 298.013672 U= -2.53304577 V= -20.7540150 W= 0.414819419 Q= 1.34519802E-03 Time 3600 Image 30 PS= 100026.719 T= 300.885620 U= -47.4241180 V= 8.23410988 W= 0.482356727 Q= 2.44064047E-03 Time 3600 Image 5 PS= 100113.391 T= 300.217834 U= 30.3859406 V= 24.9654846 W= 0.270267069 Q= 1.83573284E-03 Time 3600 Image 22 PS= 99859.7734 T= 300.099945 U= -10.5718584 V= 24.1224194 W= 9.82686132E-02 Q= 2.16144416E-03 Time 3600 Image 21 PS= 99937.1797 T= 300.231506 U= -37.2564468 V= 35.7560844 W= 0.578426480 Q= 1.82404555E-03 Time 3600 Image 31 PS= 99954.3438 T= 299.068329 U= 6.36357021 V= 16.8158340 W= 0.218015432 Q= 1.97325693E-03 Time 3600 Image 32 PS= 100013.898 T= 301.475037 U= -3.24419689 V= -28.0881100 W= 0.583388329 Q= 1.92352966E-03 6598.77user 63.07system 3:28.79elapsed 3190%CPU (0avgtext+0avgdata 775304maxresident)k
0inputs+0outputs (58major+9518099minor)pagefaults 0swaps


Coarray library using shmem data exchange:

toon@moene:~/src$ ~/compilers/install/gfortran-test/bin/gfortran -fcoarray=lib random-weather.f90 -L ~/compilers/install/gfortran-test/lib64 -lcaf_shmem toon@moene:~/src$ (export LD_LIBRARY_PATH=~/compilers/install/gfortran-test/lib64:$LD_LIBRARY_PATH; echo ' &config nxglobal=1000, nyglobal=1000, nzglobal=100 / ' | time ./a.out)
...
Time 3600 Image 9 PS= 99944.1172 T= 300.300018 U= 23.9729462 V= -49.5058517 W= 1.55195129 Q= 2.78929062E-03 Time 3600 Image 1 PS= 100033.555 T= 299.592438 U= 20.4709778 V= 22.8036137 W= 7.24312570E-03 Q= 2.09426484E-03 Time 3600 Image 24 PS= 100026.406 T= 299.273926 U= -26.3849640 V= 74.8888092 W= 0.400560498 Q= 2.26721377E-03 Time 3600 Image 7 PS= 100028.930 T= 297.506409 U= -19.8305969 V= 9.44140053 W= 0.467495948 Q= 1.52200763E-03 Time 3600 Image 5 PS= 100113.391 T= 300.217834 U= 30.3859406 V= 24.9654846 W= 0.270267069 Q= 1.83573284E-03 Time 3600 Image 20 PS= 100027.461 T= 300.564758 U= 0.348597527 V= -8.19231701 W= 0.539810836 Q= 1.86772866E-03 Time 3600 Image 2 PS= 100099.867 T= 300.822754 U= -21.1023979 V= 1.59853745 W= -0.256504714 Q= 2.31157197E-03 Time 3600 Image 17 PS= 100051.602 T= 298.459473 U= -1.16752338 V= 61.3956909 W= 0.502476037 Q= 2.25444650E-03 Time 3600 Image 29 PS= 99982.8594 T= 300.318481 U= 14.6949377 V= 9.36858082 W= 0.262836665 Q= 2.23369105E-03 Time 3600 Image 11 PS= 100035.023 T= 300.016632 U= 52.0265961 V= 7.56520891 W= 0.334766924 Q= 1.62978121E-03 Time 3600 Image 14 PS= 100060.148 T= 300.450653 U= 40.1926804 V= 24.8272896 W= 0.507771671 Q= 2.48509250E-03 Time 3600 Image 6 PS= 100048.469 T= 299.267700 U= -12.8153954 V= -15.2349339 W= 0.221922383 Q= 1.45495927E-03 Time 3600 Image 15 PS= 99933.8203 T= 300.920959 U= 4.97130394 V= -3.18852234 W= 0.316092432 Q= 1.83982204E-03 Time 3600 Image 18 PS= 100029.578 T= 299.008636 U= 0.955265045 V= -18.9048157 W= 0.723394752 Q= 3.16932308E-03 Time 3600 Image 26 PS= 99978.1250 T= 301.394867 U= 34.8442497 V= 15.1738348 W= 0.463943332 Q= 1.74684054E-03 Time 3600 Image 10 PS= 100059.492 T= 299.725159 U= 25.2940655 V= 11.2944908 W= 0.273605078 Q= 2.68980558E-03 Time 3600 Image 27 PS= 100043.523 T= 299.780396 U= -17.6248951 V= -23.3730698 W= 0.331304640 Q= 1.79365475E-03 Time 3600 Image 23 PS= 99980.4141 T= 299.211670 U= 6.74358845 V= -11.0443926 W= 0.433205307 Q= 2.59170705E-03 Time 3600 Image 22 PS= 99859.7734 T= 300.099945 U= -10.5718584 V= 24.1224194 W= 9.82686132E-02 Q= 2.16144416E-03 Time 3600 Image 19 PS= 99889.1250 T= 299.924347 U= 11.8081284 V= 20.6310940 W= 0.137247980 Q= 1.63117156E-03 Time 3600 Image 3 PS= 100038.172 T= 298.688049 U= -31.8696289 V= -1.45802879 W= -0.129766420 Q= 1.81929476E-03 Time 3600 Image 16 PS= 99991.8281 T= 298.638550 U= -0.639036179 V= 8.05576706 W= 0.306276381 Q= 1.18846924E-03 Time 3600 Image 28 PS= 100082.648 T= 300.903320 U= -9.54719925 V= 13.6631908 W= 0.315995157 Q= 2.52639176E-03 Time 3600 Image 4 PS= 99909.5312 T= 300.230560 U= -10.5394306 V= 8.89708424 W= 0.187773213 Q= 2.31296313E-03 Time 3600 Image 12 PS= 100088.266 T= 298.013672 U= -2.53304577 V= -20.7540150 W= 0.414819419 Q= 1.34519802E-03 Time 3600 Image 30 PS= 100026.719 T= 300.885620 U= -47.4241180 V= 8.23410988 W= 0.482356727 Q= 2.44064047E-03 Time 3600 Image 31 PS= 99954.3438 T= 299.068329 U= 6.36357021 V= 16.8158340 W= 0.218015432 Q= 1.97325693E-03 Time 3600 Image 21 PS= 99937.1797 T= 300.231506 U= -37.2564468 V= 35.7560844 W= 0.578426480 Q= 1.82404555E-03 Time 3600 Image 32 PS= 100013.898 T= 301.475037 U= -3.24419689 V= -28.0881100 W= 0.583388329 Q= 1.92352966E-03 Time 3600 Image 25 PS= 99989.6797 T= 299.585083 U= 22.6907024 V= 13.7472477 W= 6.04003444E-02 Q= 2.52340618E-03 Time 3600 Image 8 PS= 99927.5781 T= 299.539978 U= 24.5135155 V= 32.9800911 W= -0.167698354 Q= 2.44868407E-03 Time 3600 Image 13 PS= 100023.000 T= 302.984436 U= 49.2850342 V= 66.4705505 W= 0.520215690 Q= 2.37540016E-03 733.35user 339.66system 0:37.56elapsed 2856%CPU (0avgtext+0avgdata 757036maxresident)k
0inputs+0outputs (0major+9458779minor)pagefaults 0swaps

Kind regards,

--
Toon Moene - e-mail: t...@moene.org - phone: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands

Reply via email to