Aproximating static list schedules in dynamic multithreaded applications
List scheduling algorithms are known to be efficient when the application to be executed can be described statically as a Directed Acyclic Graph (DAG) of tasks. Regardless of knowing the entire DAG beforehand, obtaining an optimal schedule in a parallel machine is a NP-hard problem. Moreover, many p...
Saved in:
Published in | Cluster computing Vol. 17; no. 2; pp. 155 - 168 |
---|---|
Main Authors | , , , , |
Format | Journal Article |
Language | English |
Published |
Boston
Springer US
01.06.2014
Springer Nature B.V |
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | List scheduling algorithms are known to be efficient when the application to be executed can be described statically as a Directed Acyclic Graph (DAG) of tasks. Regardless of knowing the entire DAG beforehand, obtaining an optimal schedule in a parallel machine is a NP-hard problem. Moreover, many programming tools propose the use of scheduling techniques based on list strategies. This paper presents an analysis of scheduling algorithms for multithread programs in a dynamic scenario where threads are created and destroyed during execution. We introduce an algorithm to convert DAGs, describing applications as tasks, into Directed Cyclic Graphs (DCGs) describing the same application designed in a multithread programming interface. Our algorithm covers case studies described in previous works, successfully mapping from the abstract level of graphs to the application environment. These mappings preserve the guarantees offered by the abstract model, providing efficient scheduling of dynamic programs that follow the intended multithread model. We conclude the paper presenting some performance results we obtained by list schedulers in dynamic multithreaded environments. We also compare these results with the best scheduling we could obtain with similar static task schedulers. |
---|---|
ISSN: | 1386-7857 1573-7543 |
DOI: | 10.1007/s10586-013-0322-3 |