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

Caliper instrumentation #118

Closed

Conversation

koparasy
Copy link

@koparasy koparasy commented Aug 22, 2023

Adds Caliper instrumentation to PerfFlow annotated functions. Instrumentation is added before weaver instrumentation.

Co-authored-by: Giorgis Georgakoudis georgakoudis1@llnl.gov, daboehme boehme3@llnl.gov

Fixes #120

@tpatki
Copy link
Member

tpatki commented Aug 24, 2023

@koparasy @slabasan @alizalisan

I took a quick look at the PR and makes sense overall. Thanks for testing it @alizalisan.

Couple of things before we can merge:

  • LLVM function names that get passed to Caliper (eg _Z3fooRKs instead of just foo) look confusing and don't match the original function name. Let's see if we can do better.

  • Caliper should not be "required" library. Many users may not need low-level perf counter details on their workflow and may just want the timeline traces. So, we need to add in an option/flag that determines if PFA should be built with Caliper for users who want something fine grained. With multiple workflow components eg in MuMMI or AHA Moles, we don't need this detail all the time and simple timelines are sufficient.

  • We need to update the CI to match these build changes (we need to build caliper in the CI tests)

  • We need to add detailed docs:

    • Explain the need and use case for integration with Caliper,
    • Add information on how to build caliper first (point to repo etc),
    • Add an example on how to use this with an application (eg CALI_CONFIG=runtime-report ./smoketest or CALI_CONFIG=runtime-report,output=test.cali ./smoketest or something with cali-query) and show the corresponding generated output, and
    • Explain how we can conduct end-to-end analysis of a workflow with a combination of PFA files and .cali files. For example, showcasing that we can get a quick big picture with the 800 configs of AMS with PFA and then dive deeper into 2-3 of those in detail with Caliper perf counters is a good use case to explain. We need to be clear in explaining that we don't want to end up with a data overload and that with a workflow with many configurations and components, we don't always want a low-level analysis for all configs. That is too much data (multiple metrics, time, cpu/mem usage, several perf counters) that we can't reasonably analyze at a function level or visualize.
    • Explain that using Caliper is only a C/C++ feature and not applicable to python workflows or hybrid workflows.

@tpatki tpatki added the enhancement New feature or request label Aug 24, 2023
@tpatki tpatki added this to the Release 0.2.0 milestone Aug 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Integrate Caliper into PFA for low-level performance counters
3 participants