From: Jakub Jelinek <ja...@redhat.com> Date: Tue, 5 Apr 2011 17:22:04 +0200
> On Wed, Apr 06, 2011 at 12:16:13AM +0900, Sho Nakatani wrote: >> OK. I'll do it as soon as possible. >> Then, my current plan is: >> - Learn other implementations (as Antoniu said) >> - Learn Mercurium implementation >> - Implement the same/similar feature as Mercurium in libgomp/ , >> then evaluate it >> (This might be the first goal) >> - Implement Lazy Task Creation for `untied task' in libgomp/ , >> then evaluate it >> (If I could reach the first goal) > > This would depend on implementing untied tasks, which is quite questionable > thing and can be badly expensive too (while tied tasks can (and do currently) > run on containing thread's stack, untied tasks need to have their own stacks > and there needs to be a way to switch in between them, for which either > you can use *context family of functions (deprecated, but could work > at least on some targets), or come up with something target specific). > > From Mercurium you probably don't need to study the actual C to C compiler, > maybe just quickly what it generates for tasks, but primarily their runtime > library. > >> Is this plan OK? > > Yeah (just that the last step depends on implementing untied tasks, > you can certainly try to implement that (preferrably with minimal > overhead for the default tied task model), but I guess that would take > quite a lot of time to write and test it. > > Jakub Thanks a lot for your kind advice. Then my latest plan is: - Learn other implementations (as Antoniu said) - Learn Mercurium implementation - Implement the same/similar feature as Mercurium in libgomp/ , then evaluate it (This is the goal for GSoC project) However, I currently know nothing about Mercurium. (Of course I'll read the documentation of Mercurium from now on) Does Mercurium implement both `tied task' and `untied task'? Should my goal be implementing both of them? -- Sho Nakatani