RFR(M): Extend work gang dispatcher for low latency task handoff

Zhengyu Gu zgu at redhat.com
Mon Mar 13 14:44:45 UTC 2017


This patch provides the capability to group work gang tasks into sessions, which allows low-latency task handoff
by keeping workers hot.

As expected, it only benefits parallel phases, but hurts concurrent phases. I think that the approach does not reach
its max benefit due to not be able to schedule or queue tasks in advance.

The statistics shows that 80% of workers rendezvous during spinning phases, but 20% during yield phases, which might delay
the handoff.

Also the task submission thread, any spins or yields seem only hurts performance, so have to fallback to semaphore, maybe
introduce another latency.

Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/work_session/webrev.00/

I would appreciate any suggestions!



It shows improvement when it is enabled for parallel phases.

Current head: 			 http://cr.openjdk.java.net/~zgu/shenandoah/work_session/baseline_without_patch.txt
With patch, but disabled:        http://cr.openjdk.java.net/~zgu/shenandoah/work_session/baseline_with_patch.txt
Enable for parallel phases only: http://cr.openjdk.java.net/~zgu/shenandoah/work_session/par_session.txt

Compile.sunflow on local machine:

It shows slight drop.

Current head: 		  http://cr.openjdk.java.net/~zgu/shenandoah/work_session/sunflow_without_patch.txt
With patch, but disabled: http://cr.openjdk.java.net/~zgu/shenandoah/work_session/sunflow_no_session.txt
Enabled for parallel phases only: http://cr.openjdk.java.net/~zgu/shenandoah/work_session/sunflow_par_session.txt




More information about the shenandoah-dev mailing list