Exploiting FIFO Scheduler to Improve Parallel Garbage Collection Performance

Abstract

Recent studies have found that parallel garbage collection performs worse with more CPUs and more collector threads. As part of this work, we further investigate this enomenon and find that poor scalability is worst in highly scalable Java applications. Our investigation to find the causes clearly reveals that efficient multi-threading in an application can prolong the average object lifespan, which results in less effective garbage collection. We also find that prolonging lifespan is the direct result of Linux's Completely Fair Scheduler due to its round-robin like behavior that can increase the heap contention between the application threads. Instead, if we use pseudo first-in-first-out to schedule application threads in large multicore systems, the garbage collection scalability is significantly improved while the time spent in garbage collection is reduced by as much as 21%. The average execution time of the 24 Java applications used in our study is also reduced by 11%. Based on this observation, we propose two approaches to optimally select scheduling policies based on application scalability profile. Our first approach uses the profile information from one execution to tune the subsequent executions. Our second approach dynamically collects profile information and performs policy selection during execution.

Document Details

Document Type
Pub Defense Publication
Publication Date
Mar 25, 2016
Source ID
10.1145/3007611.2892248

Entities

People

  • Du Li
  • Hong Jiang
  • Junjie Qian
  • Pan Yi
  • Sharad Seth
  • Witawas Srisa-an

Organizations

  • Carnegie Mellon University
  • Defense Advanced Research Projects Agency
  • National Science Foundation
  • University of Nebraska–Lincoln

Tags

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Modeling and Simulation
  • Parallel and Distributed Computing.