Let me start out with an H.L.Mencken quote:
"For every complex problem there is an answer that is clear, simple, and wrong."
That witticism seems to be applicable to this thread, the title and content of which seem to portray memory bandwidth as all-important. I think that more attention should be paid to the quality of the RNG used and the quality of the results obtained, the quality of the algorithms used, the quality of the coding and the optimizing capabilities of the compilers used.
I do not have an M1 or a Xeon workstation, just a lowly Intel NUC (mini PC, 5 in X 5 in X 2 in) with a 1.1 GHz i7-10710U and DDR4-2666 SODIMM RAM, running W11-Home on the “balanced” power plan. Such a PC should know better than to compete against the likes of M1 and Xeon. I am listing the timings that I obtained with @CRquantum’s test code mainly to prove the points that I listed above. The program crashed when I used /Qopenmp, so I turned that off and built the program using
ifort /MP /Qxhost /fast /Qopt-matmul /heap-arrays:8 /Qparallel constants.f90 fg.f90 pf.f90 ran.f90 stats.f90 stochastic_rk.f90 tests.f90 main.f90 /Fecrq
...
random number generating took n seconds, n = 6.532000
Time cost = 3.061000 sec
Time cost = 3.085000 sec
Time cost = 3.048000 sec
Time cost = 3.083000 sec
Time cost = 3.102000 sec
total time cost = 22.20000 seconds
The M1 timings given in @CRquantum’s linked post are 24 s for the RN generation and about 1.6 s for each of the remaining tests. For the Xeon 2186M, his reported timings are ~10 s for RN generation and 3 to 4 s for each of the remaining tests.
The time for generating the random numbers is the dominant time cost. The RNGs used by other compilers, such as Gfortran’s, will probably exhibit substantially different timings, and one should remember that speed is not everything. Let us remember this deprecatory quote about an old, discredited RNG: "We guarantee that each number is random individually, but we don’t guarantee that more than one of them is random "
There you are; I have contributed one answer that is, I hope, “clear, simple and wrong”. On the other hand, perhaps we should measure how many Joules of electric energy were consumed in obtaining these results … !