On Wed, Sep 18, 2013 at 12:31:18PM +0200, Richard Biener wrote: > On Wed, Sep 18, 2013 at 10:38 AM, Jakub Jelinek <ja...@redhat.com> wrote: > > On Wed, Sep 18, 2013 at 11:54:35AM +0400, Kirill Yukhin wrote: > >> Hello, > >> It seems that currently GOMP_target perform call to host variant of the > >> routine: > >> > >> void > >> GOMP_target (int device, void (*fn) (void *), const char *fnname, > >> size_t mapnum, void **hostaddrs, size_t *sizes, > >> unsigned char *kinds) > >> { > >> device = resolve_device (device); > >> if (device == -1) > >> { > >> /* Host fallback. */ > >> fn (hostaddrs); > >> return; > >> } > >> ... > >> } > > > > The problem with that is that what GOMP_target does right now for host > > fallback is not sufficient, but unfortunately I haven't been able to get > > answers to all my questions about what exactly must be done yet. > > Also the host fallback could still use threads? ...
It surely can use #pragma omp parallel etc. inside of it, how many threads it will actually create depends on the runtime library, number of all threads known to libgomp and the state of various internal control variables. Jakub