You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is Your Feature Request Related to a Problem? Please Describe
We would like to provide a mechanism for benchmarking a realistic GLASS workflows on various machines (HPC clusters, local laptops, etc). This will be different from the regression tests we have now which only test individual functions within GLASS and are intended to catch regressions in performance purely coming from changes to GLASS code. The intention of these new benchmarks will be to understand the ideal hardware configurations and GLASS workflows combined.
To allow benchmarking on Archer2, we need to prevent HTTP calls happening mid execution. Therefore, we should add a global option to define a path to the healpy pixel weight data files.
To allow benchmarking on Archer2, we need to prevent HTTP calls happening mid execution. Therefore, we should add a global option to define a path to the healpy pixel weight data files.
Storing some benchmark results for the lensing.py benchmark on Archer2 GPU node
Running benchmark with nside/lmax = 128
Running benchmarks for backends: jax.numpy
Took 189.210 seconds with jax.numpy
Running benchmark with nside/lmax = 256
Running benchmarks for backends: jax.numpy
Took 371.657 seconds with jax.numpy
Running benchmark with nside/lmax = 512
Running benchmarks for backends: jax.numpy
Took 2225.858 seconds with jax.numpy
Running benchmark with nside/lmax = 1024
srun: Job 14369784 step creation temporarily disabled, retrying (Requested nodes are busy)
srun: Step created for job 14369784
Running benchmarks for backends: jax.numpy
Took 4756.359 seconds with jax.numpy
Equivalent results for the same benchmarks using CPU
Running benchmark with nside/lmax = 128
Running benchmarks for backends: numpy, array_api_strict, jax.numpy
Took 2.639 seconds with numpy
Took 2.226 seconds with array_api_strict
Took 50.071 seconds with jax.numpy
Running benchmark with nside/lmax = 256
Running benchmarks for backends: numpy, array_api_strict, jax.numpy
Took 10.723 seconds with numpy
Took 11.445 seconds with array_api_strict
Took 103.338 seconds with jax.numpy
Running benchmark with nside/lmax = 512
Running benchmarks for backends: numpy, array_api_strict, jax.numpy
Took 71.864 seconds with numpy
Took 73.217 seconds with array_api_strict
Took 2910.300 seconds with jax.numpy
Running benchmark with nside/lmax = 1024
Running benchmarks for backends: numpy, array_api_strict, jax.numpy
Took 513.699 seconds with numpy
Took 516.891 seconds with array_api_strict
Took 6370.869 seconds with jax.numpy
Activity
[-]nable benchmarking a real GLASS workflow[/-][+]Enable benchmarking a real GLASS workflow[/+]connoraird commentedon Jun 8, 2026
To allow benchmarking on Archer2, we need to prevent HTTP calls happening mid execution. Therefore, we should add a global option to define a path to the healpy pixel weight data files.
paddyroddy commentedon Jun 8, 2026
Raised in #1121
connoraird commentedon Jul 15, 2026
Storing some benchmark results for the lensing.py benchmark on Archer2 GPU node
connoraird commentedon Jul 15, 2026
A good resource for profiling on Archer2 with gpu
connoraird commentedon Jul 16, 2026
Equivalent results for the same benchmarks using CPU
paddyroddy commentedon Jul 16, 2026
Where
L = 2^nnnumpyarray-api-strictjax.numpyCPUjax.numpyGPUNot looking great...
paddyroddy commentedon Jul 16, 2026
Suspect we need to go much higher
nto see a meaninful benefitconnoraird commentedon Jul 16, 2026
Yes I agree. I'm pretty sure the issue is memory transfers to and from the GPU which dominate over the compute time.
gh-1086: Document how to profile GLASS (#1229)
paddyroddy commentedon Oct 20, 2026
Closing this as it is essentially done. There are more useful profiling results that we'll leave documented in #1187.