Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add optional support for per-thread timers and timing MPI synchronization #3378

Merged
merged 19 commits into from
Feb 6, 2025

Conversation

JanVogelsang
Copy link
Contributor

Added option to measure timers per thread and added timers to measure thread synchronization time. With this PR, we are hoping to be able to identify idle time of individual threads and identify black time present with the current timers.

@JanVogelsang JanVogelsang self-assigned this Dec 9, 2024
@JanVogelsang JanVogelsang added S: Normal Handle this with default priority I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) labels Dec 9, 2024
@heplesser heplesser changed the title Adding the option to measure separate timers per thread Add the option to measure separate timers per thread Dec 9, 2024
Copy link
Contributor

@heplesser heplesser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JanVogelsang Thanks for the PR! Please look at my comments starting at the very end—I am wondering another approach that would avoid macros.

doc/htmldoc/nest_behavior/built-in_timers.rst Show resolved Hide resolved
nestkernel/event_delivery_manager.cpp Outdated Show resolved Hide resolved
nestkernel/event_delivery_manager.cpp Outdated Show resolved Hide resolved
nestkernel/event_delivery_manager.cpp Outdated Show resolved Hide resolved
nestkernel/event_delivery_manager.h Outdated Show resolved Hide resolved
nestkernel/stopwatch.h Outdated Show resolved Hide resolved
nestkernel/stopwatch.h Outdated Show resolved Hide resolved
nestkernel/stopwatch.h Outdated Show resolved Hide resolved
nestkernel/stopwatch.h Outdated Show resolved Hide resolved
nestkernel/stopwatch.h Outdated Show resolved Hide resolved
@heplesser heplesser requested a review from mlober December 9, 2024 20:00
Copy link
Contributor

@mlober mlober left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nestkernel/event_delivery_manager.cpp Outdated Show resolved Hide resolved
nestkernel/event_delivery_manager.cpp Outdated Show resolved Hide resolved
Copy link
Contributor

@heplesser heplesser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JanVogelsang Thanks a lot, this is a very nice implementation! I have some comments, mostly related to naming, const-ness and documentation.

cmake/ConfigureSummary.cmake Outdated Show resolved Hide resolved
doc/htmldoc/nest_behavior/built-in_timers.rst Outdated Show resolved Hide resolved
nestkernel/kernel_manager.cpp Outdated Show resolved Hide resolved
nestkernel/event_delivery_manager.cpp Show resolved Hide resolved
nestkernel/nest_names.cpp Show resolved Hide resolved
nestkernel/stopwatch.h Show resolved Hide resolved
nestkernel/stopwatch.h Outdated Show resolved Hide resolved
nestkernel/stopwatch.h Outdated Show resolved Hide resolved
nestkernel/stopwatch.h Outdated Show resolved Hide resolved
nestkernel/stopwatch.h Show resolved Hide resolved
@heplesser
Copy link
Contributor

@JanVogelsang This looks very good now. I just sent you a PR that solves the Clang compilation problem (gcc is too lenient ...).

Fix build failure with clang/macos
@JanVogelsang
Copy link
Contributor Author

@heplesser Thanks for the PR! Should we also get rid of the timers namespace?

@heplesser
Copy link
Contributor

@heplesser Thanks for the PR! Should we also get rid of the timers namespace?

We can keep it for now, maybe remove it in a later PR.

Copy link
Contributor

@heplesser heplesser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JanVogelsang Good to go now!

@heplesser heplesser changed the title Add the option to measure separate timers per thread Add optional support for per-thread timers and timing MPI synchronization Feb 6, 2025
@heplesser heplesser merged commit f300df9 into nest:master Feb 6, 2025
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Normal Handle this with default priority
Projects
Status: Done
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants