[Openmp-commits] [PATCH] D23116: Do not block on explicit task depending on proxy task

Andrey Churbanov via Openmp-commits openmp-commits at lists.llvm.org
Thu Aug 4 10:39:58 PDT 2016


AndreyChurbanov added a comment.

Jonas,

What if you add one more dependent task (not on the proxy task)? E.g.

  int dep;
  #pragma omp target nowait depend(out: dep)
  {
      sleep(1);
  }
  #pragma omp task depend(in: dep)
  {
      printf("Task with dependency\n");
  }
  #pragma omp task depend(out: dep)
  {
      printf("Another task with dependency\n");
  }
  printf("Doing some work...\n");

The second dependent task will be lost (unless it also has "in" dependency and thus only depends on the proxy task). It should not be hard to allow all serial dependent tasks be deferred in the presence of proxy task, just couple more changes in the

  __kmp_task_finish()

routine can solve this I think. But is it what you want?  If you want to only allow tasks those depend on the proxy task be deferred letting other serial dependent tasks be undeferred, then more changes may be needed.  Library will need to distinguish tasks dependent on proxy task (among possible multiple dependencies) from tasks dependent on only regular tasks.


https://reviews.llvm.org/D23116





More information about the Openmp-commits mailing list