ComputationalRadiationPhysics / picongpu

Performance-Portable Particle-in-Cell Simulations for the Exascale Era :sparkles:
https://picongpu.readthedocs.io
Other
690 stars 217 forks source link

Computational/runtime cost of plugins #3206

Open Anton-Le opened 4 years ago

Anton-Le commented 4 years ago

Currently the documentation of plugins contains a section on memory complexity, which is fine since it decides whether a simulation will run at all (or crash and burn).

I think it would be meaningful to add a similar section on runtime/operation complexity. Ideally these would contain asymptotic statements in Big-O notation relating the influence of the plug-in on the run time. At the very least rough estimates on how much longer a simulation is going to take if the plugin is enabled.

sbastrakov commented 4 years ago

I like it. Perhaps memory complexity should be also expressed using the Big-O notation instead of words? Or do we find it too "computer-sciency"?

Anton-Le commented 4 years ago

I wouldn't call the notation too precise and convoluted for the intended user circle of the software, those being physicists and computer scientists. I'm assuming though that every person in the audience has at least passed basic mathematical analysis, where the \mathcal{O}(x) notation is introduced when considering asymptotic behaviour of functions (c.f. V.I. Zorich "Mathematical Analysis 1" chapter 3.2). Big-Omega notation would be geared slightly more towards CS.

In any case it would be good to have the concise formal statement and a short explaination or an example.