Dynamic Task Scheduling with Data Dependency Awareness Using Julia

Dynamic task scheduling is vital for optimizing performance and resource utilization, particularly in heterogeneous computing environments. The LLVM-based Julia programming language offers a unique opportunity for developing efficient task-based runtime systems. This paper introduces the Dagger. jl package, a Julia-native implementation for dynamic task scheduling with data dependency awareness. We design a high-performance scheduler that leverages Julia's type inference capabilities to support various computational tasks and data types. Our approach provides an unified API, facilitating the development and deployment of applications across different architectures. We evaluate the performance and overhead of Dagger through several tiled dense linear algebra computations on shared memory systems. Notably, our results show that Dagger with data dependency awareness outperforms other parallel paradigms in Julia and achieves performance comparable to vendor-optimized operations. Dagger also leverages the implementation of the QR communication-avoiding algorithm, delivering significant performance improvements, and highlighting its potential for scalable and efficient parallel computing.

Authors

Institutions

Publication Details

Published
2024-09-23
DOI
https://doi.org/10.1109/hpec62836.2024.10938467
Citations
5
Primary Topic
Parallel Computing and Optimization Techniques
Type
article
Field-Weighted Citation Impact
2.45

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Dynamic Task Scheduling with Data Dependency Awareness Using Julia

Rabab Alomairy, Alan Edelman, F. Vera Tomé, Julian Samaroo
5 citations
Parallel Computing and Optimization Techniques
2.45
article

Dynamic Task Scheduling with Data Dependency Awareness Using Julia

Rabab Alomairy, Alan Edelman, F. Vera Tomé, Julian Samaroo
article en
5 citations

Abstract

Dynamic task scheduling is vital for optimizing performance and resource utilization, particularly in heterogeneous computing environments. The LLVM-based Julia programming language offers a unique opportunity for developing efficient task-based runtime systems. This paper introduces the Dagger. jl package, a Julia-native implementation for dynamic task scheduling with data dependency awareness. We design a high-performance scheduler that leverages Julia's type inference capabilities to support various computational tasks and data types. Our approach provides an unified API, facilitating the development and deployment of applications across different architectures. We evaluate the performance and overhead of Dagger through several tiled dense linear algebra computations on shared memory systems. Notably, our results show that Dagger with data dependency awareness outperforms other parallel paradigms in Julia and achieves performance comparable to vendor-optimized operations. Dagger also leverages the implementation of the QR communication-avoiding algorithm, delivering significant performance improvements, and highlighting its potential for scalable and efficient parallel computing.

Massachusetts Institute of Technology (US)
National Science Foundation
Openalex Percentile: Top 9%
Parallel Computing and Optimization Techniques
2.45
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Dynamic Task Scheduling with Data Dependency Awareness Using Julia — Rabab Alomairy, Alan Edelman, et al. · (2024) | TGRS Research Map | TGRS