Skip to content
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 23 additions & 6 deletions content/docs/tooling/tooling-performance-analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,29 @@ Fundamental events should give you an insight in the overhead of preCICE as well

Fundamental events are:

* `_GLOBAL` time spent from the initialization of the events framework to the finalization. Starts in the construction of the participant and ends in finalize or the destructor.
* `construction` time spent in construction of the Participant, including configuration and setting up the intra-communication of each participant.
* `solver.initialize` time spent in the solver until `initialize()` is called. This normally includes setting meshes, defining initial data and preparing the solver.
* `initialize()` time spent in preCICE `initialize()`. This includes establishing communication between participants, mesh and data transfer, as well as mapping computation.
* `solver.advance` time spent in the solver between `advance()` calls, including the time between `initialize()` and the first `advance()` call.
* `advance()` time spent in preCICE `advance()`. This includes data mapping, data transfer, acceleration.
* `_GLOBAL` *Deprecated*: Time from profiling framework initialization (`EventRegistry::initialize`) to finalization (`EventRegistry::finalize`), spanning the full participant lifetime.
* `construction`: Time in participant construction, including setup checks, `configure`, profiling backend startup, MPI setup, and optional intra-participant communication initialization.
* `configure`: Time spent parsing and applying the preCICE XML configuration.
* `com.initializeMPI`: Time spent initializing or detecting MPI and validating communicator consistency.
* `com.initializeIntraCom`: Time spent connecting and synchronizing intra-participant communication.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `solver.initialize`: Solver-side time between participant construction and calling `initialize()`. This typically includes mesh setup, initial data, and solver preparation.
* `initialize`: Total time inside preCICE `initialize()`, including communication setup, initial mapping/data handling, coupling-scheme initialization, and initial exports.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `reinitialize`: Time spent in participant reinitialization, including communication re-setup and coupling-scheme reinitialization.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `initalizeCouplingScheme`: Time spent in `_couplingScheme->initialize()`.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
Note: this event name intentionally uses this spelling in profiler output.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `m2n.requestPrimaryRankConnection.<participant>`: Time spent requesting primary-rank M2N connections, including handshake and compatibility checks.
* `m2n.acceptPrimaryRankConnection.<participant>`: Time spent accepting primary-rank M2N connections, including handshake and compatibility checks.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `mapping`: Time spent computing and applying read/write mappings in initial and runtime mapping paths.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `solver.advance`: Solver-side time between `advance()` calls, including the time between `initialize()` and the first `advance()` call.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `advance`: Total time inside preCICE `advance()`, including timestep handling, mapping/data actions, and coupling advancement.
* `advanceCoupling`: Time spent inside coupling-scheme advancement and synchronization/exchange steps.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `syncTimestep`: Time spent synchronizing and validating timestep sizes across ranks.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `waitAndReceiveData`: Time spent waiting for and receiving coupling data.
* `waitAndSendData`: Time spent waiting for and sending coupling data.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `accelerate`: Time spent in implicit-coupling acceleration routines.
* `sendConvergence`: Time spent sending convergence state in implicit coupling.
* `receiveConvergence`: Time spent receiving convergence state in implicit coupling.
Comment thread
vagxrth marked this conversation as resolved.
Outdated
* `finalize`: Time inside preCICE `finalize()`, including coupling finalization, communication shutdown, profiling finalization, and MPI cleanup.
Comment thread
vagxrth marked this conversation as resolved.
Outdated

## Full API-profiling

Expand Down