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

OpenMP 4.1 target task #26

Open
hahnjo opened this issue Aug 28, 2015 · 1 comment
Open

OpenMP 4.1 target task #26

hahnjo opened this issue Aug 28, 2015 · 1 comment

Comments

@hahnjo
Copy link
Contributor

hahnjo commented Aug 28, 2015

OpenMP 4.1 will require a target task for all target constructs except #pragma omp target data.

Are there already any plans for this? Should this be implemented in libomptarget or in clang?
From what I can see, Intel introduced proxy tasks to libomp and calls the relevant functions from compiler-generated code (currently only if a nowait is present)...

I'm asking because they would be really helpful up to needed for OMPT development.

@AlexandreEichenberger
Copy link

A careful read of the specs on target, target enter/exit data, and target update show that the tasks are very unusual, compared to normal tasks. The task must execute directly, the target must be initiated directly, and then, with a nowait, the encountering thread may resume execution following the target construct.
There is still an open debate about how dependences, maps, and privates are used for such special tasks. So it will take a bit more time before things are truly sorted out (i.e. what does it mean to have first private for merged task). So the implementation may have to wait a bit on these features until there is a clear consensus in the community on the features of these tasks.
With regards to OMPT, one could generate task events for all target constructs (except the target data). Or only for the ones with dependences or nowait [but all have technically a task scheduling point inside the construct, regardless of the nowait]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants