TY - GEN
T1 - Towards a Deterministic Fine-Grained Task Ordering Using Multi-Versioned Memory
AU - Gilad, Eran
AU - Mayzels, Tehila
AU - Raab, Elazar
AU - Oskin, Mark
AU - Etsion, Yoav
N1 - Publisher Copyright: © 2017 IEEE.
PY - 2017/11/8
Y1 - 2017/11/8
N2 - Task-based programming models aim to simplify parallel programming. A runtime system schedules tasks to execute on cores. An essential component of this runtime is to track and manage dependencies between tasks. A typical approach is to rely on programmers to annotate tasks and data structures, essentially manually specifying the input and output of each task. As such, dependencies are associated with named program objects, making this approach problematic for pointer-based data structures. Furthermore, because the runtime system must track these dependencies, for efficient runtime performance the read and write sets should be kept small. We presume a memory system with architecturally visible support for multiple versions of data stored at the same program address. This paper proposes and evaluates a task-based execution model that uses this versioned memory system to deterministically parallelize sequential code. We have built a task-based runtime layer that uses this type of memory system for dependence tracking. We demonstrate the advantages of the proposed model by parallelizing pointer-heavy code, obtaining speedup of up to 19x on a 32-core system.
AB - Task-based programming models aim to simplify parallel programming. A runtime system schedules tasks to execute on cores. An essential component of this runtime is to track and manage dependencies between tasks. A typical approach is to rely on programmers to annotate tasks and data structures, essentially manually specifying the input and output of each task. As such, dependencies are associated with named program objects, making this approach problematic for pointer-based data structures. Furthermore, because the runtime system must track these dependencies, for efficient runtime performance the read and write sets should be kept small. We presume a memory system with architecturally visible support for multiple versions of data stored at the same program address. This paper proposes and evaluates a task-based execution model that uses this versioned memory system to deterministically parallelize sequential code. We have built a task-based runtime layer that uses this type of memory system for dependence tracking. We demonstrate the advantages of the proposed model by parallelizing pointer-heavy code, obtaining speedup of up to 19x on a 32-core system.
KW - Parallel programming
KW - Task-based programming
KW - Versioned memory
UR - http://www.scopus.com/inward/record.url?scp=85041208927&partnerID=8YFLogxK
U2 - https://doi.org/10.1109/SBAC-PAD.2017.21
DO - https://doi.org/10.1109/SBAC-PAD.2017.21
M3 - منشور من مؤتمر
T3 - Proceedings - 29th International Symposium on Computer Architecture and High Performance Computing, SBAC-PAD 2017
SP - 105
EP - 112
BT - Proceedings - 29th International Symposium on Computer Architecture and High Performance Computing, SBAC-PAD 2017
T2 - 29th International Symposium on Computer Architecture and High Performance Computing, SBAC-PAD 2017
Y2 - 17 October 2017 through 20 October 2017
ER -