Balanced Double Queues for GC Work-Stealing on Weak Memory Models
Work-stealing is promising for scheduling and balancing parallel workloads. It has a wide range of applicability on middleware, libraries, and runtime systems of programming languages. OpenJDK uses work-stealing for copying garbage collection (GC) to balance copying tasks among GC threads. Each thread has its own queue to store tasks. When a thread has no task in its queue, it acts as a thief and attempts to steal a task from another thread's queue. However, this work-stealing algorithm requires expensive memory fences for pushing, popping, and stealing tasks, especially on weak memory models such as POWER and ARM. To address this problem, we propose a work-stealing algorithm that uses double queues. Each GC thread has a public queue that is accessible from other GC threads and a private queue that is only accessible by itself. Pushing and popping tasks in the private queue are free from expensive memory fences. The most significant point in our algorithm is providing a mechanism to maintain the load balance on the basis of the use of double queues. We developed a prototype implementation for parallel GC in OpenJDK8 for ppc64le. We evaluated our algorithm by using SPECjbb2015, SPECjvm2008, TPC-DS, and Apache DayTrader.
Mon 18 JunDisplayed time zone: Eastern Time (US & Canada) change
16:00 - 17:30 | Analyzing the Cache and SchedulingISMM 2018 at Discovery AB Chair(s): Michael D. Bond Ohio State University | ||
16:00 30mTalk | mPart: Miss-Ratio Curve Guided Partitioning in Key-Value Stores ISMM 2018 Daniel Byrne Michigan Technological University, USA, Nilufer Onder Michigan Technological University, USA, Zhenlin Wang Michigan Technological University | ||
16:30 30mTalk | Prediction and Bounds on Shared Cache Demand from Memory Access Interleaving ISMM 2018 Jacob Brock University of Rochester, Chen Ding University of Rochester, Rahman Lavaee , Fangzhou Liu , Liang Yuan Institute of Computing Technology at Chinese Academy of Sciences, China | ||
17:00 30mTalk | Balanced Double Queues for GC Work-Stealing on Weak Memory Models ISMM 2018 Michihiro Horie IBM Research - Tokyo, Hiroshi Horii IBM Research, Japan, Kazunori Ogata IBM Research, Japan, Tamiya Onodera IBM, Japan |