This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime
- From: 김규래<msca8h at naver dot com>
- To: Jakub Jelinek<jakub at redhat dot com>
- Cc: gcc general<gcc at gcc dot gnu dot org>
- Date: Sun, 25 Aug 2019 16:49:11 +0900
- Subject: Re: Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime
- References: <e2a9f7c55311795785d0f2c47f70acbd@cweb001.nm.nfra.io> <2ec486a9ba251a2ffc757ed3b06192@cweb004.nm.nfra.io> <20190713062848.GE2125@tucnak> <bf7021199a966f222d14dfc65713d46@cweb009.nm.nfra.io> <20190722185413.GA13123@laptop.zalov.cz> <d455e79784586d2cf8a713bd5ad7d86@cweb002.nm.nfra.io> <ac16ab3c02b87c6fec8eed4b143862@cweb006.nm.nfra.io> <20190805103216.GQ2726@tucnak> <cd9dace24f9ab623ecd20d9828048e3@cmweb01.nm.nfra.io> <20190819061020.GA27842@laptop.zalov.cz>
Hi Jakub,
I think the current semaphore sleep system ought to be improved.
I'm not sure how but since the GSoC deadline is approaching I'll just post the results without the semaphores.
Instead of sleeping on a per-task basis (for example there are depend waits, task waits, taskgroup waits etc..),
I think we should simply sleep the threads when the queue is empty and wake them up whenever a task finished executing or
a new task has been added to the queue.
This shouldn't be too difficult to implement using semaphores.
However, since the current gomp semaphores are not always the most performant, I'm not absolutely certain how to do this.
I'll defer this to after GSoC.
Let me know if you have an idea.
Ray Kim