[Openmp-commits] [PATCH] D77609: [OpenMP] Added the support for unshackled task in RTL

Andrey Churbanov via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Tue Apr 7 13:03:59 PDT 2020


AndreyChurbanov added a comment.

The idea looks feasible to me in general.

Major unclear points off the top of my head are:

- The implementation behavior is not yet defined by the specification, so it will in any way be pilot implementation. Or are you trying it to help the specification progress?

- "For now all tasks are unshackled" - good. But to me this looks like a central point of implementation. What tasks should/can be given to unshackled threads? Is it user's decision, or runtime decision, or some combination (suggest new clause/hint?)? If such a task produce another tasks what to do with them (which thread to push them to, which team should execute them)?  Tasks may have dependencies, affinity, priority,  what to do with them? Should we exclude them from unshackled threads, or have some heuristics here as well?  Etc.

Regarding platform (in)dependence, we do have the implementation of monitor thread, similar technique can be used for the unshackled master thread. And it could not only sleep on condition variable forever, but do some periodic bookkeeping for its team, e.g. to support various wait policies.

Also the question can be for a parent of the task delegated to unshackled thread.  Parent-child relation has some bookkeepings those should not be broken.

- Andrey


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D77609/new/

https://reviews.llvm.org/D77609





More information about the Openmp-commits mailing list