Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

80-core processing for ranks 0, 30, and 60

2024-01-17 Test for simulated events with minor modifications

Test variation

  • array shape is changed from (3, 1024, 1024) → (3, 8*512, 1024)
  • array generation is excluded from time measurement, only indexed subtraction contributes to time measurement
  • do not pre-create random arrays, it is generated in each core... requires too much memory for all cores.
  • run on sdfmilan047: ana-4.0.58-py3 [dubrovin@sdfmilan047:~/LCLS/con-py3]$ mpirun -n 80 python test-mpi-numpy-hist.py

Time consuming code

Code Block
titleTime consuming code
collapsetrue
def time_consuming_algorithm(a, b):
    gr1 = a>=11
    gr2 = (a>9) & (a<11)
    gr3 = a<=9
    t0_sec = time()
    a[gr1] -= b[0, gr1]
    a[gr2] -= b[1, gr2]
    a[gr3] -= b[2, gr3]
    #med = np.median(a)
    return time() - t0_sec

Results

Single core processing

Image AddedImage Added

80-core processing for ranks 0, 30, and 60


Image AddedImage Added

Image AddedImage Added

Image AddedImage Added

2024-01-17 Test Summary

  • if random array generation is excluded from time measurement, the mean time difference between 1-core and 80-core processing is larger
  • the main contribution to time difference comes from reserved host...
    • sdfmilan047 - looks like extremely "time-noisy" in multi-core processing...
    • sdfmilan031 -  in previous test looks pretty "calm"

References