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

Create performance counters for primitives #96

Closed
parsa opened this issue Nov 2, 2017 · 4 comments
Closed

Create performance counters for primitives #96

parsa opened this issue Nov 2, 2017 · 4 comments

Comments

@parsa
Copy link
Contributor

parsa commented Nov 2, 2017

This should be done in a way that all primitives almost automatically have performance counters associated with each of them. We should at least create two performance counters for each of the primitives:

/phylanx{locality#N/<primitive-name>}/invocation-count
/phylanx{locality#N/<primitive-name>}/execution-time
@hkaiser
Copy link
Member

hkaiser commented Jan 15, 2018

The names for the counters should follow the established practice. Here is a list of possible names for the counters we should create for each of the primitives:

/phylanx{locality#N/total}/<primitive>/count/eval
/phylanx{locality#N/total}/<primitive>/time/eval
/phylanx{locality#N/total}/<primitive>/count/direct-eval
/phylanx{locality#N/total}/<primitive>/time/direct-eval

where <primitive> represents the primitive type the counter will return data for.

All returned values should be cumulative, i.e. the values should represent the accumulated counts/times since the counter was reset last. The returned times should have nanosecond resolution.

Also, while discussing this, we decided that the counters should return a std::vector<std::int64_t> of values (i.e. the counter types should be hpx::performance_counter::counter_raw_values - note that this type does not exist yet, see STEllAR-GROUP/hpx#3102).

The values in the returned array should be ordered based on the sequence number that is encoded in the primitive names (as they are registered in AGAS), see #143 for a description of the structure of the generated primitive names.

Examples for the counter names used would be:

 /phylanx{locality#0/total}/define-function/count/eval
 /phylanx{locality#0/total}/add/time/direct-eval

@hkaiser
Copy link
Member

hkaiser commented Jan 19, 2018

@parsa please have a look at STEllAR-GROUP/hpx#3103, those changes will most probably be needed for your work. Please comment over there if that's what you need for your work on the performance counters.

@hkaiser
Copy link
Member

hkaiser commented Jan 21, 2018

This will also require for STEllAR-GROUP/hpx#3118 to be merged in order to be able to (re-)initialize the counters with the current list of instantiated primitives.

@hkaiser
Copy link
Member

hkaiser commented Jan 31, 2018

This was fixed by merging #165, #169, and #176

@hkaiser hkaiser closed this as completed Jan 31, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants