证明有效的非抢占任务调度与Cilk

V.-B. Vee, W. Hsu
{"title":"证明有效的非抢占任务调度与Cilk","authors":"V.-B. Vee, W. Hsu","doi":"10.1109/CMPSAC.1998.716733","DOIUrl":null,"url":null,"abstract":"We consider the problem of scheduling static task graphs by using Cilk, a C based runtime system for multithreaded parallel programming. We assume no preemption of task execution and no prior knowledge of the task execution times. Given a task graph G, the output of the scheduling algorithm is a Cilk program P which, when executed initiates the tasks in consistence with the precedence requirements of G. We show that the Cilk model has restrictions in implementing optimal schedules for certain types of task graphs; however, the restriction does not fundamentally hinder the practical applications of Cilk, as it is possible to produce reasonably good quality schedules (in the sense of expected execution time). Our algorithm identifies a minimal number of stages, assigns tasks to these stages, and bundles parallel tasks of the same stage into one Cilk procedure. By using Tarjan's algorithm (for set operations) to implement the bundling process, we demonstrate that the parallel schedule can be derived in O(n+e) time for all practical purposes, where n and e denote the number of nodes and edges in the task graph G. With P processors, the expected completion time for the scheduled tasks is bounded by Tp=O(T/sub 1//P+S), where T/sub 1/ denotes the total work, i.e., the time required for executing all tasks on a single processor, and S denotes the sum (over all stages) of the longest execution time of the tasks at each stage. When the execution times of tasks are relatively homogeneous, the quality of the schedule generated by using our approach is nearly optimal.","PeriodicalId":252030,"journal":{"name":"Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1998-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Provably efficient non-preemptive task scheduling with Cilk\",\"authors\":\"V.-B. Vee, W. Hsu\",\"doi\":\"10.1109/CMPSAC.1998.716733\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We consider the problem of scheduling static task graphs by using Cilk, a C based runtime system for multithreaded parallel programming. We assume no preemption of task execution and no prior knowledge of the task execution times. Given a task graph G, the output of the scheduling algorithm is a Cilk program P which, when executed initiates the tasks in consistence with the precedence requirements of G. We show that the Cilk model has restrictions in implementing optimal schedules for certain types of task graphs; however, the restriction does not fundamentally hinder the practical applications of Cilk, as it is possible to produce reasonably good quality schedules (in the sense of expected execution time). Our algorithm identifies a minimal number of stages, assigns tasks to these stages, and bundles parallel tasks of the same stage into one Cilk procedure. By using Tarjan's algorithm (for set operations) to implement the bundling process, we demonstrate that the parallel schedule can be derived in O(n+e) time for all practical purposes, where n and e denote the number of nodes and edges in the task graph G. With P processors, the expected completion time for the scheduled tasks is bounded by Tp=O(T/sub 1//P+S), where T/sub 1/ denotes the total work, i.e., the time required for executing all tasks on a single processor, and S denotes the sum (over all stages) of the longest execution time of the tasks at each stage. When the execution times of tasks are relatively homogeneous, the quality of the schedule generated by using our approach is nearly optimal.\",\"PeriodicalId\":252030,\"journal\":{\"name\":\"Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241)\",\"volume\":\"33 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1998-08-19\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CMPSAC.1998.716733\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CMPSAC.1998.716733","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

我们使用Cilk(一个基于C语言的多线程并行编程运行时系统)来考虑静态任务图的调度问题。我们假设没有任务执行的抢占,也没有任务执行时间的先验知识。给定一个任务图G,调度算法的输出是一个Cilk程序P,该程序在执行时启动符合G优先级要求的任务,我们证明了Cilk模型在实现某些类型的任务图的最优调度时存在限制;然而,这个限制并没有从根本上阻碍Cilk的实际应用,因为它可以产生相当高质量的调度(在预期执行时间的意义上)。我们的算法确定最小数量的阶段,为这些阶段分配任务,并将同一阶段的并行任务捆绑到一个Cilk过程中。通过使用Tarjan算法(用于集合操作)来实现绑定过程,我们证明了在所有实际目的下,并行调度可以在O(n+e)时间内导出,其中n和e表示任务图g中的节点和边的数量。对于P个处理器,调度任务的预期完成时间由Tp=O(T/sub 1//P+S)限定,其中T/sub 1/表示总工作量,即在单个处理器上执行所有任务所需的时间。S表示各阶段任务最长执行时间之和(所有阶段)。当任务的执行时间相对均匀时,使用我们的方法生成的调度质量几乎是最佳的。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Provably efficient non-preemptive task scheduling with Cilk
We consider the problem of scheduling static task graphs by using Cilk, a C based runtime system for multithreaded parallel programming. We assume no preemption of task execution and no prior knowledge of the task execution times. Given a task graph G, the output of the scheduling algorithm is a Cilk program P which, when executed initiates the tasks in consistence with the precedence requirements of G. We show that the Cilk model has restrictions in implementing optimal schedules for certain types of task graphs; however, the restriction does not fundamentally hinder the practical applications of Cilk, as it is possible to produce reasonably good quality schedules (in the sense of expected execution time). Our algorithm identifies a minimal number of stages, assigns tasks to these stages, and bundles parallel tasks of the same stage into one Cilk procedure. By using Tarjan's algorithm (for set operations) to implement the bundling process, we demonstrate that the parallel schedule can be derived in O(n+e) time for all practical purposes, where n and e denote the number of nodes and edges in the task graph G. With P processors, the expected completion time for the scheduled tasks is bounded by Tp=O(T/sub 1//P+S), where T/sub 1/ denotes the total work, i.e., the time required for executing all tasks on a single processor, and S denotes the sum (over all stages) of the longest execution time of the tasks at each stage. When the execution times of tasks are relatively homogeneous, the quality of the schedule generated by using our approach is nearly optimal.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信