Skip to content

Add multithreading via OpenMP to Linac RF gaps, 3D FFT SC, Twiss calculation and Teapot transforms - #148

Open
danielnoll wants to merge 3 commits into
PyORBIT-Collaboration:mainfrom
danielnoll:openmp
Open

danielnoll wants to merge 3 commits into
PyORBIT-Collaboration:mainfrom
danielnoll:openmp

Conversation

@danielnoll

Copy link
Copy Markdown
Contributor

No description provided.

@woodtp

woodtp commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Hi @danielnoll, thanks for tackling this. Would you happen to have any performance benchmarks for your additions?

@woodtp
woodtp self-requested a review October 1, 2026 10:13
@danielnoll

Copy link
Copy Markdown
Contributor Author

Hi @woodtp,

I did a test with our Linac model (European Spallation Source) on a Macbook Pro with an Apple M2 Pro (6 performance cores). The runtime of the model is dominated by the 3d FFT SC (64^3 mesh, 1M particles), which for the FFT is not parallel when running with MPI, and so the usage of the parallel FFTW library improves speed considerably.
runtimespeedup

Without SC, things look like this (1M particles). My guess at the reason behind the slightly worse scaling of the OpenMP version is that apertures/particle loss is not running in parallel, but I haven't looked into that further.
runtime_noscspeedup_nosc

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants