Header menu link for other important links
X
Efficient lock-step synchronization in task-parallel languages
Published in John Wiley and Sons Ltd
2019
Volume: 49
   
Issue: 9
Pages: 1379 - 1401
Abstract
Many modern task-parallel languages allow the programmer to synchronize tasks using high-level constructs like barriers, clocks, and phasers. While these high-level synchronization primitives help the programmer express the program logic in a convenient manner, they also have their associated overheads. In this paper, we identify the sources of some of these overheads for task-parallel languages like X10 that support lock-step synchronization, and propose a mechanism to reduce these overheads. We first propose three desirable properties that an efficient runtime (for task-parallel languages like X10, HJ, Chapel, and so on) should satisfy, to minimize the overheads during lock-step synchronization. We use these properties to derive a scheme to called uClocks to improve the efficiency of X10 clocks; uClocks consists of an extension to X10 clocks and two related runtime optimizations. We prove that uClocks satisfies the proposed desirable properties. We have implemented uClocks for the X10 language+runtime and show that the resulting system leads to a geometric mean speedup of 5.36× on a 16-core Intel system and 11.39× on a 64-core AMD system, for benchmarks with a significant number of synchronization operations. © 2019 John Wiley & Sons, Ltd.
About the journal
JournalData powered by TypesetSoftware - Practice and Experience
PublisherData powered by TypesetJohn Wiley and Sons Ltd
ISSN00380644
Open AccessNo
Concepts (11)
  •  related image
    Clocks
  •  related image
    Locks (fasteners)
  •  related image
    Synchronization
  •  related image
    GEOMETRIC MEAN
  •  related image
    HIGH-LEVEL SYNCHRONIZATIONS
  •  related image
    PROGRAM LOGIC
  •  related image
    RUNTIME OPTIMIZATION
  •  related image
    Runtimes
  •  related image
    SYNCHRONIZATION OPERATION
  •  related image
    TASK PARALLEL
  •  related image
    High level languages