Implementing an algorithm in place of gomp 'auto'

2019-03-01 Thread 김규래
Hello everyone, I'm an EE student at Sogang University Korea. I have recently submitted a paper on parallel loop scheduling algorithm and had to modify libgomp a bit in the process. It is known that the... /* For now map to schedule(static), later on we could play with feedback driven choic

Re: Implementing an algorithm in place of gomp 'auto'

2019-03-01 Thread 김규래
e some work. Also, out of curiosity, is there any plan to add work stealing (affinity schedules) to gomp? The clang implementation seem have work stealing. Ray Kim -Original Message- From: "Jakub Jelinek" To: "김규래"; Cc: "gcc Mailing List"; Sent: 2019-03

Re: Implementing an algorithm in place of gomp 'auto'

2019-03-02 Thread 김규래
ects we are discussing (Additional scheduling algorithms, doing something about auto, WS etc..) could make the cut for a GSoC 2019 project? Ray Kim -Original Message- From: "Jakub Jelinek" To: "김규래"; Cc: "gcc Mailing List"; Sent: 2019-03-02 (토) 02:46:14 (GM

Re: Implementing an algorithm in place of gomp 'auto'

2019-03-02 Thread 김규래
> > > It is on the wish list, but I'm afraid I won't have cycles for it in the > > > next year or two at least (once GCC 9 is released, I need to work on the > > > remaining OpenMP 5.0 features). Of course if somebody implements it and > > > submits > > > and it is of reasonable quality/performan

[GSoC 2019] No application template?

2019-03-23 Thread 김규래
Hello, I was trying to write my application for GSoC 2019 but couldn't find an application form for GCC. Some other organizations seem to have GSoC application forms/templates. The gcc GSoC wiki page doesn't mention any. Is the application format free? or did I miss it somewhere? If it is free, is

Re: [GSoC 2019] No application template?

2019-03-26 Thread 김규래
ent/d/1UwrBOsiAXsZSClsq1r6tAEw6QdqUzJvgW74SQpcWlIU/edit?usp=sharing Ray Kim. -Original Message- From: "Martin Jambor" To: "김규래"; ; Cc: "Jakub Jelinek"; Sent: 2019-03-26 (화) 08:32:51 (GMT+09:00) Subject: Re: [GSoC 2019] No application template? Hi, On Sun, Mar 24 2019, 김규래 wrote:

GSoC'19 Thanks for acceptance

2019-05-07 Thread 김규래
Hi everyone, Thanks for accepting my proposal Implementing OpenMP Work Stealing Scheduling for GSoC 2019. I'll do my best to accomplish the proposed goals. Right now the semester hasn't ended so progress would be limited. However, I'll start working on the project as soon as the semester ends. Dur

[GSoC'19, libgomp work stealing] baseline benchmark results

2019-05-29 Thread 김규래
​Hi everyone, Just wanted to share some quick baseline benchmark results [3]. I ran LU decomposition on a AMD Ryzen Threadripper 1950x 16C/32T system. LAPACK is currently plain loop parallel BLAS as far I believe. And the upstream version of PLASMA uses OpenMP tasks [1]. The colored region is the 9

Re: [GSoC'19, libgomp work stealing] baseline benchmark results

2019-05-30 Thread 김규래
Hi, My bad. I broke the link capitalization by mistake. This is the correct link: http://imgur.com/YsxS5Ol ​ Ray Kim ​ -Original Message- From: "Martin Jambor" To: "김규래"; ; Cc: ; Sent: 2019-05-30 (목) 18:11:31 (GMT+09:00) Subject: Re: [GSoC'19, libgomp work ste

[GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-06-03 Thread 김규래
Hi, I've been studying the libgomp task parallelism system. I have a few questions. First, Tracing the events shows that only the main thread calls GOMP_task. How do the other worker threads enter the libgomp runtime? I can't find the entry point of the worker threads from the event tracing and th

Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-06-05 Thread 김규래
correct, I guess the task priority should be given some special treatment? Ray Kim -Original Message- From: "Jakub Jelinek" To: "김규래"; Cc: ; Sent: 2019-06-04 (화) 03:21:01 (GMT+09:00) Subject: Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime On T

Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-06-05 Thread 김규래
> On Wed, Jun 5, 2019 at 9:25 PM 김규래 wrote: > > > Hi, thanks for the detailed explanation. > > I think I now get the picture. > > Judging from my current understanding, the task-parallelism currently works > > as follows: > > 1. Tasks are placed in a global

Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-06-06 Thread 김규래
> Another option, which I guess starts to go out of scope of your gsoc, is > parallel depth first (PDF) search (Blelloch 1999) as an alternative to work > stealing. Here's a presentation about some recent work in this area, > although for Julia and not OpenMP (no idea if PDF would fit with OpenMP a

[GSoC'19] How to test lock-free code?

2019-06-17 Thread 김규래
Hi, Currently, gcc (specifically libgomp) contains some amount of lock-free code. Does gcc test for the correctness of the lock-free sections? Or is it tested just as any other code? Ray Kim

Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-06-24 Thread 김규래
Hi, I'm not very familiar with the gomp plugin system. However, looking at 'GOMP_PLUGIN_target_task_completion' seem like tasks have to go in and out of the runtime. In that case, is it right that the tasks have to know from which queue they came from? I think I'll have to add the id of the corre

[GSoC'19] First Evaluations: Implementing OpenMP Work Stealing Scheduling

2019-06-26 Thread 김규래
Hi everyone, I'll share my status for GSoC first evaluation. Current status of libgomp task system: I'll first summarize my understanding of libgomp. Please correct me if I'm wrong. Currently libgomp has 3 different queues: children_queue, taskloop_queue and team_queue. These three queues are pr

Re: [GSoC'19] First Evaluations: Implementing OpenMP Work Stealing Scheduling

2019-06-29 Thread 김규래
> > Implementation of competing systems: > > The intel OpenMP implementation [1] is simpler. > > It uses a single queue for each thread and a single subroutine for > > dequeuing and executing the tasks [2, 3]. > > The taskgroup tasks and childen tasks are only counted (not queued) [4, 5, > > 6].

Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-07-09 Thread 김규래
Hi, This is an update about my status. I've been working on unifying the three queues into a single queue. I'm almost finished and passed all the tests except for the dependency handling part. Ray Kim

Re: Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-07-21 Thread 김규래
Hi Jakub, About the snippet below, if (gomp_barrier_last_thread (state)) { if (team->task_count == 0) { gomp_team_barrier_done (&team->barrier, state); gomp_mutex_unlock (&team->task_lock); gomp_team_barrier_wake (&team->barrier, 0); return; } gomp_team_barrier_set_wa

[GSoC'19, libgomp work-stealing] GSoC 2nd Evaluation Status

2019-07-21 Thread 김규래
Hi, Just submitted a WIP patch for my current status. I've finished unifying the three queues and reducing the execution paths. From now on, I will reduce the locked region so that in the end, only the queue accesses are locked. Once this is done splitting the queues and implementing work-stealing

Re: Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-07-22 Thread 김규래
wanted to be sure that's the general case. Thanks. Ray Kim -Original Message- From: "Jakub Jelinek" To: "김규래"; Cc: ; Sent: 2019-07-23 (화) 03:54:13 (GMT+09:00) Subject: Re: Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime On Sun, Jul 21, 2019 a

Re: Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-08-03 Thread 김규래
Hi, I'm currently having trouble implementing the thread sleeping mechanism when the queue is out of tasks. Problem is, it's hard to maintain consistency between the thread sleeping routine and the queues. See the pseudocode below, 1. check queue is empty 2. go to sleep if we go lock-free, th

Re: Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-08-05 Thread 김규래
> I thought we don't want to go lock-free, the queue operations > aren't easily > implementable lock-free, but instead with a lock for each of > the queues, ​ Hi, By lock-free I meant to use locks only for the queues, But my terminology was indeed confusing sorry about that. ​ > mean we don't in so

Re: Re: [GSoC'19, libgomp work-stealing] Task parallelism runtime

2019-08-25 Thread 김규래
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..)

Willing to apply for GSoC 2018

2018-02-15 Thread 김규래
Hi, my name is Ray Kim. I am a Junior EE student in Sogang Univ. Korea. I wish applying to gcc for GSoC 2018. I'm have a little experience on C, C++, Parallelism/Concurrency and CUDA, however mostly very new to compiler technology. Though I'm personally interested in the projects below, - Par