On 7/27/25 14:46, Toon Moene wrote:

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):

[ These were the results on my AMD Ryzen 16 core (twice hyperthreaded) ]

Here are the results on my ARM 64 core machine (no hyperthreading) - build and test are at https://gcc.gnu.org/pipermail/gcc-testresults/2025-July/853833.html:


Coarray library using OpenMPI message passing:

toon@thelios:~/src$ gfortran -fcoarray=lib random-weather.f90  -lcaf_openmpi
toon@thelios:~/src$ echo ' &config nxglobal=1000, nyglobal=1000, nzglobal=100 / ' | time mpirun -np 64 --mca btl self,vader ./a.out
...
Time 3600 Image 14 PS= 99974.7500 T= 300.249664 U= 2.46893024 V= 14.5236807 W= -4.19434682E-02 Q= 1.92093442E-03 Time 3600 Image 13 PS= 100046.250 T= 299.860718 U= -5.31056881 V= -57.1089172 W= 0.392296404 Q= 9.07617039E-04 Time 3600 Image 8 PS= 100011.086 T= 300.070496 U= 6.96231270 V= 26.1356678 W= -9.76191312E-02 Q= 1.52808311E-03 Time 3600 Image 40 PS= 100081.953 T= 300.621490 U= -15.0049057 V= -2.77046871 W= 0.330227762 Q= 2.66323425E-03 Time 3600 Image 50 PS= 99976.1484 T= 298.486969 U= 55.0525131 V= -21.2738304 W= 0.180565372 Q= 1.99141772E-03 Time 3600 Image 7 PS= 100005.562 T= 301.168945 U= 4.45416927 V= 30.5567856 W= 0.680713952 Q= 1.95509498E-03 Time 3600 Image 55 PS= 100052.688 T= 299.095215 U= 36.8651886 V= 61.6407204 W= 0.359919399 Q= 1.30220945E-03 Time 3600 Image 39 PS= 99909.0000 T= 299.585297 U= 3.73533344 V= -27.7006111 W= 0.598456681 Q= 1.21378328E-03 Time 3600 Image 49 PS= 100011.656 T= 300.583435 U= 38.8015823 V= 32.5450974 W= 0.341574073 Q= 1.77973183E-03 Time 3600 Image 37 PS= 100063.727 T= 299.287781 U= -45.5365982 V= 12.9325066 W= 1.67762661 Q= 1.56447059E-03 Time 3600 Image 56 PS= 100052.367 T= 300.295532 U= -21.0976677 V= -10.1882572 W= 0.204949275 Q= 1.53417292E-03 Time 3600 Image 5 PS= 99993.2656 T= 301.205719 U= 5.27403641 V= -41.9158516 W= 0.280786514 Q= 2.36636470E-03 Time 3600 Image 6 PS= 100088.586 T= 301.298920 U= 22.2908554 V= 20.4303970 W= -5.76618761E-02 Q= 1.74210640E-03 Time 3600 Image 38 PS= 99926.7500 T= 300.194244 U= -7.05243492 V= -38.2820816 W= 0.252840579 Q= 2.04620115E-03 Time 3600 Image 22 PS= 99958.1875 T= 300.045898 U= 24.5734043 V= 15.6208401 W= 1.05648172 Q= 1.86488382E-03 Time 3600 Image 21 PS= 99953.3672 T= 299.771179 U= 42.4134178 V= -28.2992172 W= -0.405830026 Q= 2.30372022E-03 Time 3600 Image 63 PS= 100141.117 T= 300.161499 U= -2.85840225 V= -7.87302589 W= 0.171191305 Q= 2.27469532E-03 Time 3600 Image 4 PS= 100040.898 T= 300.587769 U= 17.0025711 V= 79.0749359 W= 1.05369723 Q= 2.77566025E-03 Time 3600 Image 3 PS= 99993.7578 T= 300.179199 U= -18.7437782 V= 32.7808495 W= -0.150628448 Q= 2.86873011E-03 Time 3600 Image 17 PS= 100024.156 T= 299.631836 U= -35.0258293 V= 3.10169411 W= 0.524403393 Q= 2.32847105E-03 Time 3600 Image 18 PS= 100106.531 T= 299.701843 U= 15.2954102 V= 11.6143236 W= -2.48995349E-02 Q= 1.45060220E-03 Time 3600 Image 42 PS= 99981.3047 T= 300.341827 U= 20.6234169 V= 26.8066959 W= -0.326608062 Q= 2.17301515E-03 Time 3600 Image 41 PS= 99983.9453 T= 300.161377 U= 36.4419899 V= -34.3558960 W= 0.102924436 Q= 1.47142704E-03 Time 3600 Image 51 PS= 99944.5781 T= 300.033508 U= -21.4615669 V= 1.02095413 W= 0.393200040 Q= 2.42934772E-03 Time 3600 Image 53 PS= 100021.703 T= 300.225220 U= -18.2594528 V= -9.00951576 W= 1.46320987 Q= 9.93096852E-04 Time 3600 Image 54 PS= 100022.867 T= 301.395874 U= -22.8708916 V= -11.6259642 W= -0.231226653 Q= 1.79573172E-03 Time 3600 Image 64 PS= 99920.3672 T= 298.714874 U= -2.47950602 V= 33.2897339 W= 0.688299179 Q= 2.05205521E-03 Time 3600 Image 19 PS= 100085.242 T= 303.078613 U= 25.7577915 V= -31.4431648 W= 0.361977458 Q= 2.87304167E-03 Time 3600 Image 1 PS= 100106.789 T= 299.189056 U= -8.30943203 V= 3.16470766 W= -0.403991640 Q= 1.19650946E-03 Time 3600 Image 20 PS= 99948.8828 T= 298.432068 U= -13.7079859 V= -16.5032330 W= 0.570676565 Q= 2.10787775E-03 Time 3600 Image 52 PS= 99971.7422 T= 298.918243 U= -8.37299156 V= 21.4556732 W= 0.618708372 Q= 1.82857167E-03 Time 3600 Image 62 PS= 100068.930 T= 299.959137 U= 39.7550468 V= 6.17050457 W= 0.367683440 Q= 1.49962946E-03 Time 3600 Image 26 PS= 99856.8281 T= 301.535583 U= 3.54878807 V= 8.60925007 W= 0.720358133 Q= 2.81752693E-03 Time 3600 Image 25 PS= 100005.219 T= 300.187134 U= -40.8676300 V= -7.99682331 W= -3.90310735E-02 Q= 2.05410132E-03 Time 3600 Image 2 PS= 99950.9844 T= 300.079987 U= -31.1662998 V= -3.76249695 W= 6.21142313E-02 Q= 2.50224397E-03 Time 3600 Image 12 PS= 99955.5625 T= 299.500000 U= -31.3493881 V= 42.0510178 W= 0.257564783 Q= 2.39306479E-03 Time 3600 Image 11 PS= 100053.992 T= 299.860107 U= -12.0186577 V= -11.3599186 W= 0.166990131 Q= 1.03252917E-03 Time 3600 Image 35 PS= 100051.930 T= 301.252411 U= 11.1421299 V= -43.5891113 W= 0.198919550 Q= 2.42084451E-03 Time 3600 Image 36 PS= 99942.7266 T= 299.025970 U= -9.75362492 V= -21.9414463 W= 5.30213639E-02 Q= 6.37198216E-04 Time 3600 Image 15 PS= 100060.961 T= 298.685150 U= 9.74627209 V= -10.9300785 W= 0.369226217 Q= 2.80969846E-03 Time 3600 Image 16 PS= 99991.5312 T= 299.344421 U= 15.4834738 V= -34.5949860 W= -0.174412370 Q= 2.10317224E-03 Time 3600 Image 57 PS= 99996.8281 T= 300.690521 U= -6.46627808 V= 8.71320343 W= 0.128190815 Q= 2.33842316E-03 Time 3600 Image 48 PS= 100039.578 T= 301.468353 U= -16.3166771 V= 0.981161118 W= 7.88453221E-03 Q= 2.29798444E-03 Time 3600 Image 47 PS= 99934.6875 T= 300.565796 U= -52.3389244 V= -17.3605919 W= 0.521645427 Q= 2.44621816E-03 Time 3600 Image 24 PS= 100002.102 T= 299.191650 U= 14.6603479 V= 34.2624550 W= 0.295731962 Q= 2.31975550E-03 Time 3600 Image 34 PS= 100035.227 T= 298.925507 U= 12.1055317 V= 6.60546875 W= 0.250485808 Q= 2.06034305E-03 Time 3600 Image 33 PS= 100017.664 T= 298.805237 U= 27.7695618 V= -21.5255489 W= 1.37091172 Q= 2.18151556E-03 Time 3600 Image 61 PS= 100079.531 T= 299.665924 U= 58.9257507 V= -74.6012726 W= -0.396989465 Q= 2.57592252E-03 Time 3600 Image 9 PS= 99919.7109 T= 300.285095 U= 50.2213516 V= -15.3687592 W= 0.760134161 Q= 2.00138194E-03 Time 3600 Image 27 PS= 100007.539 T= 301.257263 U= -5.02744102 V= 4.80967808 W= -3.49654257E-02 Q= 2.19383347E-03 Time 3600 Image 28 PS= 99959.4453 T= 300.701080 U= -18.8798752 V= 39.2594452 W= 0.143539578 Q= 1.02064607E-03 Time 3600 Image 30 PS= 100019.227 T= 301.066223 U= -12.5846920 V= -24.5523663 W= 0.650550961 Q= 1.79473602E-03 Time 3600 Image 29 PS= 99973.5391 T= 300.505035 U= -43.3617630 V= -18.9962482 W= -0.463652909 Q= 2.62449426E-03 Time 3600 Image 31 PS= 99952.0625 T= 298.750793 U= -20.6457901 V= 44.0063591 W= -0.171580330 Q= 3.00695328E-03 Time 3600 Image 32 PS= 99961.1562 T= 300.231323 U= 13.5516558 V= 7.47197151 W= 0.410835713 Q= 2.27216003E-03 Time 3600 Image 60 PS= 100045.531 T= 299.445618 U= -5.65761089 V= -6.96885300 W= 0.145100996 Q= 2.94357468E-03 Time 3600 Image 59 PS= 100100.039 T= 299.245728 U= 18.6252823 V= -10.3760881 W= -0.142354354 Q= 2.34407908E-03 Time 3600 Image 23 PS= 100029.594 T= 299.189606 U= 10.4965515 V= -24.9953957 W= 0.540453792 Q= 1.33975840E-03 Time 3600 Image 45 PS= 100037.984 T= 298.628784 U= 48.2891502 V= -14.6681213 W= -0.495621800 Q= 2.07947707E-03 Time 3600 Image 46 PS= 100092.852 T= 298.305786 U= 16.0635242 V= -6.31666946 W= 1.52915883 Q= 1.78147841E-03 Time 3600 Image 43 PS= 99966.3047 T= 300.259064 U= 4.85096169 V= 3.83692837 W= 0.602374136 Q= 1.39487756E-03 Time 3600 Image 10 PS= 99972.1484 T= 300.155640 U= -63.7975769 V= -18.0481110 W= 1.58452213 Q= 2.02900055E-03 Time 3600 Image 58 PS= 100081.367 T= 299.605347 U= -4.84054565 V= 51.3192101 W= -0.405798793 Q= 1.38691743E-03 Time 3600 Image 44 PS= 99962.7266 T= 299.273529 U= 25.8325462 V= -26.7381516 W= 0.418781549 Q= 2.69773323E-03 13020.10user 205.92system 3:27.05elapsed 6387%CPU (0avgtext+0avgdata 463488maxresident)k
1424inputs+0outputs (117major+18121530minor)pagefaults 0swaps


Coarray library using shmem data exchange:

toon@thelios:~/src$ ~/compilers/install/gfortran-test/bin/gfortran -fcoarray=lib random-weather.f90 -L ~/compilers/install/gfortran-test/lib64 -lcaf_shmem toon@thelios:~/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 1 PS= 100106.789 T= 299.189056 U= -8.30943203 V= 3.16470766 W= -0.403991640 Q= 1.19650946E-03 Time 3600 Image 23 PS= 100029.594 T= 299.189606 U= 10.4965515 V= -24.9953957 W= 0.540453792 Q= 1.33975840E-03 Time 3600 Image 17 PS= 100024.156 T= 299.631836 U= -35.0258293 V= 3.10169411 W= 0.524403393 Q= 2.32847105E-03 Time 3600 Image 42 PS= 99981.3047 T= 300.341827 U= 20.6234169 V= 26.8066959 W= -0.326608062 Q= 2.17301515E-03 Time 3600 Image 37 PS= 100063.727 T= 299.287781 U= -45.5365982 V= 12.9325066 W= 1.67762661 Q= 1.56447059E-03 Time 3600 Image 24 PS= 100002.102 T= 299.191650 U= 14.6603479 V= 34.2624550 W= 0.295731962 Q= 2.31975550E-03 Time 3600 Image 25 PS= 100005.219 T= 300.187134 U= -40.8676300 V= -7.99682331 W= -3.90310735E-02 Q= 2.05410132E-03 Time 3600 Image 27 PS= 100007.539 T= 301.257263 U= -5.02744102 V= 4.80967808 W= -3.49654257E-02 Q= 2.19383347E-03 Time 3600 Image 48 PS= 100039.578 T= 301.468353 U= -16.3166771 V= 0.981161118 W= 7.88453221E-03 Q= 2.29798444E-03 Time 3600 Image 16 PS= 99991.5312 T= 299.344421 U= 15.4834738 V= -34.5949860 W= -0.174412370 Q= 2.10317224E-03 Time 3600 Image 41 PS= 99983.9453 T= 300.161377 U= 36.4419899 V= -34.3558960 W= 0.102924436 Q= 1.47142704E-03 Time 3600 Image 18 PS= 100106.531 T= 299.701843 U= 15.2954102 V= 11.6143236 W= -2.48995349E-02 Q= 1.45060220E-03 Time 3600 Image 19 PS= 100085.242 T= 303.078613 U= 25.7577915 V= -31.4431648 W= 0.361977458 Q= 2.87304167E-03 Time 3600 Image 6 PS= 100088.586 T= 301.298920 U= 22.2908554 V= 20.4303970 W= -5.76618761E-02 Q= 1.74210640E-03 Time 3600 Image 38 PS= 99926.7500 T= 300.194244 U= -7.05243492 V= -38.2820816 W= 0.252840579 Q= 2.04620115E-03 Time 3600 Image 44 PS= 99962.7266 T= 299.273529 U= 25.8325462 V= -26.7381516 W= 0.418781549 Q= 2.69773323E-03 Time 3600 Image 49 PS= 100011.656 T= 300.583435 U= 38.8015823 V= 32.5450974 W= 0.341574073 Q= 1.77973183E-03 Time 3600 Image 39 PS= 99909.0000 T= 299.585297 U= 3.73533344 V= -27.7006111 W= 0.598456681 Q= 1.21378328E-03 Time 3600 Image 59 PS= 100100.039 T= 299.245728 U= 18.6252823 V= -10.3760881 W= -0.142354354 Q= 2.34407908E-03 Time 3600 Image 31 PS= 99952.0625 T= 298.750793 U= -20.6457901 V= 44.0063591 W= -0.171580330 Q= 3.00695328E-03 Time 3600 Image 62 PS= 100068.930 T= 299.959137 U= 39.7550468 V= 6.17050457 W= 0.367683440 Q= 1.49962946E-03 Time 3600 Image 13 PS= 100046.250 T= 299.860718 U= -5.31056881 V= -57.1089172 W= 0.392296404 Q= 9.07617039E-04 Time 3600 Image 8 PS= 100011.086 T= 300.070496 U= 6.96231270 V= 26.1356678 W= -9.76191312E-02 Q= 1.52808311E-03 Time 3600 Image 11 PS= 100053.992 T= 299.860107 U= -12.0186577 V= -11.3599186 W= 0.166990131 Q= 1.03252917E-03 Time 3600 Image 53 PS= 100021.703 T= 300.225220 U= -18.2594528 V= -9.00951576 W= 1.46320987 Q= 9.93096852E-04 Time 3600 Image 61 PS= 100079.531 T= 299.665924 U= 58.9257507 V= -74.6012726 W= -0.396989465 Q= 2.57592252E-03 Time 3600 Image 7 PS= 100005.562 T= 301.168945 U= 4.45416927 V= 30.5567856 W= 0.680713952 Q= 1.95509498E-03 Time 3600 Image 51 PS= 99944.5781 T= 300.033508 U= -21.4615669 V= 1.02095413 W= 0.393200040 Q= 2.42934772E-03 Time 3600 Image 52 PS= 99971.7422 T= 298.918243 U= -8.37299156 V= 21.4556732 W= 0.618708372 Q= 1.82857167E-03 Time 3600 Image 22 PS= 99958.1875 T= 300.045898 U= 24.5734043 V= 15.6208401 W= 1.05648172 Q= 1.86488382E-03 Time 3600 Image 30 PS= 100019.227 T= 301.066223 U= -12.5846920 V= -24.5523663 W= 0.650550961 Q= 1.79473602E-03 Time 3600 Image 5 PS= 99993.2656 T= 301.205719 U= 5.27403641 V= -41.9158516 W= 0.280786514 Q= 2.36636470E-03 Time 3600 Image 45 PS= 100037.984 T= 298.628784 U= 48.2891502 V= -14.6681213 W= -0.495621800 Q= 2.07947707E-03 Time 3600 Image 35 PS= 100051.930 T= 301.252411 U= 11.1421299 V= -43.5891113 W= 0.198919550 Q= 2.42084451E-03 Time 3600 Image 46 PS= 100092.852 T= 298.305786 U= 16.0635242 V= -6.31666946 W= 1.52915883 Q= 1.78147841E-03 Time 3600 Image 33 PS= 100017.664 T= 298.805237 U= 27.7695618 V= -21.5255489 W= 1.37091172 Q= 2.18151556E-03 Time 3600 Image 32 PS= 99961.1562 T= 300.231323 U= 13.5516558 V= 7.47197151 W= 0.410835713 Q= 2.27216003E-03 Time 3600 Image 56 PS= 100052.367 T= 300.295532 U= -21.0976677 V= -10.1882572 W= 0.204949275 Q= 1.53417292E-03 Time 3600 Image 47 PS= 99934.6875 T= 300.565796 U= -52.3389244 V= -17.3605919 W= 0.521645427 Q= 2.44621816E-03 Time 3600 Image 34 PS= 100035.227 T= 298.925507 U= 12.1055317 V= 6.60546875 W= 0.250485808 Q= 2.06034305E-03 Time 3600 Image 28 PS= 99959.4453 T= 300.701080 U= -18.8798752 V= 39.2594452 W= 0.143539578 Q= 1.02064607E-03 Time 3600 Image 54 PS= 100022.867 T= 301.395874 U= -22.8708916 V= -11.6259642 W= -0.231226653 Q= 1.79573172E-03 Time 3600 Image 26 PS= 99856.8281 T= 301.535583 U= 3.54878807 V= 8.60925007 W= 0.720358133 Q= 2.81752693E-03 Time 3600 Image 50 PS= 99976.1484 T= 298.486969 U= 55.0525131 V= -21.2738304 W= 0.180565372 Q= 1.99141772E-03 Time 3600 Image 64 PS= 99920.3672 T= 298.714874 U= -2.47950602 V= 33.2897339 W= 0.688299179 Q= 2.05205521E-03 Time 3600 Image 3 PS= 99993.7578 T= 300.179199 U= -18.7437782 V= 32.7808495 W= -0.150628448 Q= 2.86873011E-03 Time 3600 Image 63 PS= 100141.117 T= 300.161499 U= -2.85840225 V= -7.87302589 W= 0.171191305 Q= 2.27469532E-03 Time 3600 Image 29 PS= 99973.5391 T= 300.505035 U= -43.3617630 V= -18.9962482 W= -0.463652909 Q= 2.62449426E-03 Time 3600 Image 58 PS= 100081.367 T= 299.605347 U= -4.84054565 V= 51.3192101 W= -0.405798793 Q= 1.38691743E-03 Time 3600 Image 15 PS= 100060.961 T= 298.685150 U= 9.74627209 V= -10.9300785 W= 0.369226217 Q= 2.80969846E-03 Time 3600 Image 21 PS= 99953.3672 T= 299.771179 U= 42.4134178 V= -28.2992172 W= -0.405830026 Q= 2.30372022E-03 Time 3600 Image 4 PS= 100040.898 T= 300.587769 U= 17.0025711 V= 79.0749359 W= 1.05369723 Q= 2.77566025E-03 Time 3600 Image 40 PS= 100081.953 T= 300.621490 U= -15.0049057 V= -2.77046871 W= 0.330227762 Q= 2.66323425E-03 Time 3600 Image 43 PS= 99966.3047 T= 300.259064 U= 4.85096169 V= 3.83692837 W= 0.602374136 Q= 1.39487756E-03 Time 3600 Image 2 PS= 99950.9844 T= 300.079987 U= -31.1662998 V= -3.76249695 W= 6.21142313E-02 Q= 2.50224397E-03 Time 3600 Image 57 PS= 99996.8281 T= 300.690521 U= -6.46627808 V= 8.71320343 W= 0.128190815 Q= 2.33842316E-03 Time 3600 Image 12 PS= 99955.5625 T= 299.500000 U= -31.3493881 V= 42.0510178 W= 0.257564783 Q= 2.39306479E-03 Time 3600 Image 10 PS= 99972.1484 T= 300.155640 U= -63.7975769 V= -18.0481110 W= 1.58452213 Q= 2.02900055E-03 Time 3600 Image 36 PS= 99942.7266 T= 299.025970 U= -9.75362492 V= -21.9414463 W= 5.30213639E-02 Q= 6.37198216E-04 Time 3600 Image 60 PS= 100045.531 T= 299.445618 U= -5.65761089 V= -6.96885300 W= 0.145100996 Q= 2.94357468E-03 Time 3600 Image 55 PS= 100052.688 T= 299.095215 U= 36.8651886 V= 61.6407204 W= 0.359919399 Q= 1.30220945E-03 Time 3600 Image 9 PS= 99919.7109 T= 300.285095 U= 50.2213516 V= -15.3687592 W= 0.760134161 Q= 2.00138194E-03 Time 3600 Image 20 PS= 99948.8828 T= 298.432068 U= -13.7079859 V= -16.5032330 W= 0.570676565 Q= 2.10787775E-03 Time 3600 Image 14 PS= 99974.7500 T= 300.249664 U= 2.46893024 V= 14.5236807 W= -4.19434682E-02 Q= 1.92093442E-03 702.69user 295.82system 0:16.46elapsed 6065%CPU (0avgtext+0avgdata 448672maxresident)k
0inputs+0outputs (10major+18194664minor)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