MetOffice / MetOffice/Vernier

Callpath sensitive profiles and recursion handling

Open
#28 0 comments 0 reactions 1 assignee Claimed by @mo-mglover View on GitHub
Dominant language
C++
Stars
6
Forks
11
Avg merge
18h 7m
Merged PRs (30d)
1

Description

It'd be great to be able to separate costs of routines according to the callpath via which they were called. Example use case: to determine the cost of halo swaps for each Physics scheme separately.

There's an [interesting paper](https://www.researchgate.net/profile/Todd-Mytkowicz/publication/221320820_Inferred_Call_Path_Profiling/links/54a178400cf256bf8baf721b/Inferred-Call-Path-Profiling.pdf?origin=publication_detail) on the web.

Essentially, I think it'd be sufficient to hash together routine names, their parent routine's name and their level in the overall call stack. This would have the added bonus that `recursive` subroutine calls would be handled automatically, since the call stack level is included. We can at least start with that and see how well it works. Whether we'd need to do any more work to disambiguate further, I don't know. A little ambiguity wouldn't hurt if the associated time is small. Just thinking this may well give us a good-enough solution with little additional runtime cost.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.