计算机工程与科学2017,Vol.39Issue(7):1201-1210,10.DOI:10.3969/j.issn.1007-130X.2017.07.001
数据流程序动态调度与优化
Dynamic task scheduling and optimization of data flow program
摘要
Abstract
In order to solve the availability problem of data flow programming models,which can be used for flow applications of dynamic data exchange rate under the premise of taking into account the parallelism of programs,we design and implement a dataflow compiling system which combines dynamic scheduling and static scheduling.The compiling system takes COStream programs as its input.It analyzes the program and uses communications with dynamic rate to divide stream applications into coarsegrained sub graphs.Then in sub graphs,static optimization is used.The system assigns the computing units of sub graphs to CPU cores based on the workload of each computing unit and the utilization of computing resources.After stage division,the system allocates each computing unit to its corresponding pipeline stage.At runtime,each sub graph starts a thread on each processor core.The optimization of communications between threads avoids the expenses of multiple threads' reading or writing memory at the same time.We use semaphore to control the synchronization between threads and dynamically schedule each sub graph based on the dynamic rates of communications and the states of threads.Then we construct the software pipeline scheduling and create multi-thread codes.We choose common X86-64 as the experiment platform to test programs and analyze the results.Experimental results show that the compiling system can realize dynamic stream applications.It expands the usability of the system and increases the speedup.关键词
数据流/多核处理器/动态调度/通信优化Key words
data flow/multi-core processor/dynamic scheduling/communication optimization分类
信息技术与安全科学引用本文复制引用
杨胜哲,于俊清,唐九飞..数据流程序动态调度与优化[J].计算机工程与科学,2017,39(7):1201-1210,10.基金项目
国家重点研发计划(2016YFB1000204) (2016YFB1000204)
国家自然科学基金(61572211) (61572211)