Stable Adaptive Work-Stealing for Concurrent Many-Core Runtime Systems
スポンサーリンク
概要
- 論文の詳細を見る
The proliferation of many-core architectures has led to the explosive development of parallel applications using programming models, such as OpenMP, TBB, and Cilk/Cilk++. With increasing number of cores, however, it becomes even harder to efficiently schedule parallel applications on these resources since current many-core runtime systems still lack effective mechanisms to support collaborative scheduling of these applications. In this paper, we study feedback-driven adaptive scheduling based on work stealing, which provides an efficient solution for concurrently executing a set of applications on many-core systems. To dynamically estimate the number of cores desired by each application, a stable feedback-driven adaptive algorithm, called SAWS, is proposed using active workers and the length of active deques, which well captures the runtime characteristics of the applications. Furthermore, a prototype system is built by extending the Cilk runtime system, and the experimental results, which are obtained on a Sun Fire server, show that SAWS has more advantages for scheduling concurrent parallel applications. Specifically, compared with existing algorithms A-Steal and WS-EQUI, SAWS improves the performances by up to 12.43% and 21.32% with respect to mean response time respectively, and 25.78% and 46.98% with respect to processor utilization, respectively.
著者
-
Qian Depei
School Of Computer Science And Engineering Beihang University
-
CAO Yangjie
School of Electronic and Information Engineering, Xi'an Jiaotong University
-
SUN Hongyang
School of Computer Engineering, Nanyang Technological University
-
WU Weiguo
School of Electronic and Information Engineering, Xi'an Jiaotong University
-
WU Weiguo
School of Electronic and Information Engineering, Xi'an Jiaotong University
関連論文
- Link Availability Based Mobility-Aware Max-Min Multi-Hop Clustering (M^4C) for Mobile Ad Hoc Networks
- Stable Adaptive Work-Stealing for Concurrent Many-Core Runtime Systems