GLB: lifeline-based global load balancing library in x10

  • Authors:
  • Wei Zhang;Olivier Tardieu;David Grove;Benjamin Herta;Tomio Kamada;Vijay Saraswat;Mikio Takeuchi

  • Affiliations:
  • BM T. J. Watson Research Center, Yorktown Heights, USA;IBM T. J. Watson Research Center, Yorktown Heights, USA;IBM T. J. Watson Research Center, Yorktown Heights, USA;IBM T. J. Watson Research Center, Yorktown Heights, USA;Kobe University/RIKEN, Kobe, Japan;IBM T. J. Watson Research Center, Yorktown Heights, USA;IBM Research - Tokyo, Tokyo, Japan

  • Venue:
  • Proceedings of the first workshop on Parallel programming for analytics applications
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present GLB, a programming model and an associated implementation that can handle a wide range of irregular parallel programming problems running over large-scale distributed systems. GLB is applicable both to problems that are easily load-balanced via static scheduling and to problems that are hard to statically load balance. GLB hides the intricate synchronizations (e.g., inter-node communication, initialization and startup, load balancing, termination and result collection) from the users. GLB internally uses a version of the lifeline graph based work-stealing algorithm proposed by Saraswat et al [25]. Users of GLB are simply required to write several pieces of sequential code that comply with the GLB interface. GLB then schedules and orchestrates the parallel execution of the code correctly and efficiently at scale. We have applied GLB to two representative benchmarks: Betweenness Centrality (BC) and Unbalanced Tree Search (UTS). Among them, BC can be statically load-balanced whereas UTS cannot. In either case, GLB scales well -- achieving nearly linear speedup on different computer architectures (Power, Blue Gene/Q, and K) -- up to 16K cores.