For beam tracking with CSR, it looks like a ton of time (about 40% of the total runtime of the program for my application) is being spent calling multipole_ele_to_ab. I'm pretty sure it's getting run for every particle in the bunch. There is some caching code in there (in the image) to protect against this, but for whatever reason it doesn't seem to be working on my setup.
Here is the profiling on my input file. I can still see it on the minimal example I put at /nfs/acc/temp/electronsandstuff/csr-radiation-profiling on the CLASSE system (doing tests with 5mil particles now), but with fewer elements in the lattice it's more like 27% of runtime.
For beam tracking with CSR, it looks like a ton of time (about 40% of the total runtime of the program for my application) is being spent calling
multipole_ele_to_ab
. I'm pretty sure it's getting run for every particle in the bunch. There is some caching code in there (in the image) to protect against this, but for whatever reason it doesn't seem to be working on my setup.Here is the profiling on my input file. I can still see it on the minimal example I put at
/nfs/acc/temp/electronsandstuff/csr-radiation-profiling
on the CLASSE system (doing tests with 5mil particles now), but with fewer elements in the lattice it's more like 27% of runtime.