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

Limiting annotation depth in CalQL #201

Open
mrzv opened this issue Aug 20, 2019 · 4 comments
Open

Limiting annotation depth in CalQL #201

mrzv opened this issue Aug 20, 2019 · 4 comments

Comments

@mrzv
Copy link

mrzv commented Aug 20, 2019

This is more of a question than issue report. Is there a way to limit the depth of annotations in CalQL? So for instance if I have:

annotation mpi.rank time.offset time.inclusive.duration
main
main/foo
main/foo/bar
main/foo
main/foo/baz
main/foo
main
...

And I want to print out only sum total time for main and main/foo, is there some magic argument to achieve this? I guess one way to express this is to limit the depth, but another way would be to explicitly specify annotation prefixes I'm interested in.

If not, perhaps this is a feature request after all.

@daboehme
Copy link
Member

Hi @mrzv ,

Thanks for the report. Currently that's not directly possible, but I'll try to come up with something.

You can create flat profiles with select event.end#annotation,sum(time.inclusive.duration) group by event.end#annotation format table, which drops the hierarchy entirely.

You can also filter for specific values with where (or exclude them with where not), e.g., where annotation=foo, but that will still apply to all records where foo is set.

@mrzv
Copy link
Author

mrzv commented Aug 23, 2019

@daboehme Another question in the same line of understanding CalQL. I want to print out information about some MPI routines. I can do it for one specific routine at a time via

cali-query *.cali -t -q "SELECT * WHERE mpi.function=MPI_Recv ORDER BY time.offset"

but if I want to see multiple routines, say, MPI_Recv and MPI_Test, I can't find a way to do it.

Is there a way to do something like OR inside WHERE? I found that you can do AND by providing multiple WHERE clauses.

In general, I'd love to see a better documentation for CalQL. It's clearly very powerful, but I'm struggling to unlock all that power.

@daboehme
Copy link
Member

Hi @mrzv,

There is some documentation here: https://github.com/LLNL/Caliper/blob/master/doc/sphinx/calql.rst - maybe that helps. Unfortunately there's currently no OR for filtering, though.

For MPI specifically you can set CALI_MPI_WHITELIST when taking the measurement to record only a subset of MPI functions.

@mrzv
Copy link
Author

mrzv commented Aug 27, 2019

@daboehme Thanks. I saw those docs, and I saw the CALI_MPI_WHITELIST option. I still think it would be great to have OR to be able to drill down into the data after it's gathered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants