TY - GEN
T1 - Scalable Task Scheduling and Synchronization Using Hierarchical Effects
AU - Heumann, Stephen T.
AU - Tzannes, Alexandros
AU - Adve, Vikram S.
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2016/3/8
Y1 - 2016/3/8
N2 - Several concurrent programming models that give strong safety guarantees employ effect specifications that indicate what effects on shared state a piece of code may perform. These specifications can be much more expressive than traditional synchronization mechanisms like locks, and they are amenable to static and/or dynamic checking approaches for ensuring safety properties. The Tasks With Effects (TWE) programming model uses dynamic checking to give nearly the strongest safety guarantees of any existing shared memory language while providing the flexibility to express both structured and unstructured concurrency. Like several other systems, TWE's effect specifications use hierarchical memory regions, which can naturally model nested and modular data structures and allow effects to be expressed at different levels of granularity in different parts of a program. To implement a programming model like TWE with high performance, particularly for programs with many fine-grain tasks, the run-time task scheduler must employ an algorithm that can enforce task isolation (mutual exclusion of tasks with conflicting effects) with low overhead and high scalability. This paper describes such an algorithm for TWE. It uses a scheduling tree designed to take advantage of the hierarchical structure of TWE effects, obtaining two key properties that lead to high scalability: (a) effects need to be compared only for ancestor and descendant nodes in the tree, and not any other nodes, and (b) the scheduler can use fine-grain locking of tree nodes to enable highly concurrent scheduling operations. We prove formally that the algorithm guarantees task isolation. Experimental results with a range of programs show that the algorithm provides very good scalability, even with fine-grain tasks.
AB - Several concurrent programming models that give strong safety guarantees employ effect specifications that indicate what effects on shared state a piece of code may perform. These specifications can be much more expressive than traditional synchronization mechanisms like locks, and they are amenable to static and/or dynamic checking approaches for ensuring safety properties. The Tasks With Effects (TWE) programming model uses dynamic checking to give nearly the strongest safety guarantees of any existing shared memory language while providing the flexibility to express both structured and unstructured concurrency. Like several other systems, TWE's effect specifications use hierarchical memory regions, which can naturally model nested and modular data structures and allow effects to be expressed at different levels of granularity in different parts of a program. To implement a programming model like TWE with high performance, particularly for programs with many fine-grain tasks, the run-time task scheduler must employ an algorithm that can enforce task isolation (mutual exclusion of tasks with conflicting effects) with low overhead and high scalability. This paper describes such an algorithm for TWE. It uses a scheduling tree designed to take advantage of the hierarchical structure of TWE effects, obtaining two key properties that lead to high scalability: (a) effects need to be compared only for ancestor and descendant nodes in the tree, and not any other nodes, and (b) the scheduler can use fine-grain locking of tree nodes to enable highly concurrent scheduling operations. We prove formally that the algorithm guarantees task isolation. Experimental results with a range of programs show that the algorithm provides very good scalability, even with fine-grain tasks.
KW - Hierarchical effects
KW - Task isolation
KW - Task scheduling
UR - http://www.scopus.com/inward/record.url?scp=84975506073&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84975506073&partnerID=8YFLogxK
U2 - 10.1109/PACT.2015.25
DO - 10.1109/PACT.2015.25
M3 - Conference contribution
AN - SCOPUS:84975506073
T3 - Parallel Architectures and Compilation Techniques - Conference Proceedings, PACT
SP - 125
EP - 137
BT - Proceedings - 24th International Conference on Parallel Architecture and Compilation, PACT 2015
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 24th International Conference on Parallel Architecture and Compilation, PACT 2015
Y2 - 18 October 2015 through 21 October 2015
ER -