diff --git a/examples/main.c b/examples/main.c index 656773582fb91037fd7906110b4acf235d718876..e9396bf1c2db751b382dcab5c9fc27ea84f18592 100644 --- a/examples/main.c +++ b/examples/main.c @@ -572,8 +572,8 @@ int main(int argc, char *argv[]) { fprintf(file_thread, " %03i 0 0 0 0 %lli %lli 0 0 0 0 %lli\n", myrank, e.tic_step, e.toc_step, cpufreq); int count = 0; - for (int l = 0; l < e.sched.nr_tasks; l++) - if (!e.sched.tasks[l].skip && !e.sched.tasks[l].implicit) { + for (int l = 0; l < e.sched.nr_tasks; l++) { + if (!e.sched.tasks[l].implicit && e.sched.tasks[l].toc != 0) { fprintf( file_thread, " %03i %i %i %i %i %lli %lli %i %i %i %i %i\n", myrank, e.sched.tasks[l].rid, e.sched.tasks[l].type, @@ -588,11 +588,10 @@ int main(int argc, char *argv[]) { (e.sched.tasks[l].cj != NULL) ? e.sched.tasks[l].cj->gcount : 0, e.sched.tasks[l].flags); - fflush(stdout); - count++; } - message("rank %d counted %d tasks", myrank, count); - + fflush(stdout); + count++; + } fclose(file_thread); } @@ -608,8 +607,8 @@ int main(int argc, char *argv[]) { /* Add some information to help with the plots */ fprintf(file_thread, " %i %i %i %i %lli %lli %i %i %i %lli\n", -2, -1, -1, 1, e.tic_step, e.toc_step, 0, 0, 0, cpufreq); - for (int l = 0; l < e.sched.nr_tasks; l++) - if (!e.sched.tasks[l].skip && !e.sched.tasks[l].implicit) + for (int l = 0; l < e.sched.nr_tasks; l++) { + if (!e.sched.tasks[l].implicit && e.sched.tasks[l].toc != 0) { fprintf( file_thread, " %i %i %i %i %lli %lli %i %i %i %i\n", e.sched.tasks[l].rid, e.sched.tasks[l].type, @@ -619,6 +618,8 @@ int main(int argc, char *argv[]) { (e.sched.tasks[l].cj == NULL) ? 0 : e.sched.tasks[l].cj->count, (e.sched.tasks[l].ci == NULL) ? 0 : e.sched.tasks[l].ci->gcount, (e.sched.tasks[l].cj == NULL) ? 0 : e.sched.tasks[l].cj->gcount); + } + } fclose(file_thread); #endif } diff --git a/src/scheduler.c b/src/scheduler.c index 56bca7350d197b9dcde65cfc154083109bea9913..9fa2ecf775d0ef307bfb6eeac01f1435995db1a2 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -1040,10 +1040,12 @@ void scheduler_start(struct scheduler *s, unsigned int mask, s->mask = mask; s->submask = submask | (1 << task_subtype_none); - /* Clear all the waits and rids. */ + /* Clear all the waits, rids and times. */ for (int k = 0; k < s->nr_tasks; k++) { s->tasks[k].wait = 1; s->tasks[k].rid = -1; + s->tasks[k].tic = 0; + s->tasks[k].toc = 0; } /* Re-wait the tasks. */