Skip to main navigation Skip to search Skip to main content

Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages

  • Andi Drebes
  • , Antoniu Pop
  • , Karine Heydemann
  • , Albert Cohen
  • , Nathalie Drach

Research output: Contribution to journalArticlepeer-review

343 Downloads (Pure)

Abstract

We present a joint scheduling and memory allocation algorithm for efficient execution of task-parallel programs on non-uniform memory architecture (NUMA) systems. Task and data placement decisions are based on a static description of the memory hierarchy and on runtime information about intertask communication. Existing locality-aware scheduling strategies for fine-grained tasks have strong limitations: they are specific to some class of machines or applications, they do not handle task dependences, they require manual program annotations, or they rely on fragile profiling schemes. By contrast, our solution makes no assumption on the structure of programs or on the layout of data in memory. Experimental results, based on the OpenStream language, show that locality of accesses to main memory of scientific applications can be increased significantly on a 64-core machine, resulting in a speedup of up to 1.63× compared to a state-of-the-art work-stealing scheduler.
Original languageEnglish
Article number30
JournalACM Transactions on Architecture and Code Optimization
Volume11
Issue number3
DOIs
Publication statusPublished - Oct 2014

Keywords

  • Performance, Languages, FIFO queue, dynamic scheduling, work stealing, lock-free algorithm, weak memory model, dataflow programming, Kahn process network

Fingerprint

Dive into the research topics of 'Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages'. Together they form a unique fingerprint.

Cite this