Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions modules/bale_actor/inc/selector.h
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@ class PapiTracer {
}

void start() {
assert(curr_idx == -1);
bool to_add = reuse_idcs.empty();
if (to_add) {
counters.push_back(PapiCounter());
Expand All @@ -215,14 +216,19 @@ class PapiTracer {

int pause() {
HCLIB_PAPI_Stop(curr->papi_counters);
assert(curr_idx >= 0);
#ifdef PAPI_TRACER_DEBUG2
printf("PapiTracer: PE%d pause %d\n", shmem_my_pe(), curr_idx);
#endif
return curr_idx;
int paused = curr_idx;
curr_idx = -1;
curr = NULL;
return paused;
}

void resume(int idx) {
curr_idx = idx;
void resume(int paused) {
assert(curr_idx == -1);
curr_idx = paused;
curr = &(counters[curr_idx]);
(curr->num_sends)++;
#ifdef PAPI_TRACER_DEBUG2
Expand All @@ -233,6 +239,7 @@ class PapiTracer {

void end_and_dump(int64_t src, size_t pkg_size, int mb_id) {
HCLIB_PAPI_Stop(curr->papi_counters);
assert(curr_idx >= 0);
HCLIB_PAPI_Show(src, pkg_size, mb_id, curr->papi_counters, curr->num_sends);
#ifdef PAPI_TRACER_DEBUG2
printf("PapiTracer: PE%d end %d\n", shmem_my_pe(), curr_idx);
Expand Down Expand Up @@ -693,6 +700,16 @@ class Selector {
#endif
}

void yield() {
#ifdef ENABLE_TRACE
int idx = papi_tracer.pause();
hclib::yield();
papi_tracer.resume(idx);
#else
hclib::yield();
#endif
}

bool send(T pkt, int rank) {
assert(N==1);
return send(0, pkt, rank);
Expand Down