Enhancing application performance via DAG-driven scheduling in task parallelism for cloud center

Peer-to-Peer Networking and Applications(2017)

Cited 3|Views21
No score
Abstract
Nowadays, offloading technologies are applied to smart devices, which add more jobs into cloud data center. In cloud data center, limited physical resources and competitions of different jobs all need to be improved the performance. Considering more jobs are in the kind of task parallelism, how to improve their performance is very important. However, due to the size of transistor is approaching physical extreme limit, the count of transistor integrated into a single CPU core is seriously restricted. On the other hand, constrained by cooling efficiency, the frequency of CPU can not be raising without restriction which could lead CPU’s energy consumption and heat production to a rapidly growth. As performance improvement of new generations of hardware has slowed, the era of serial computing is over and programmers are getting hard to acquire free application acceleration through hardware updating. The direction of computer architecture is transforming to parallel structure and in order to be highly qualified in the new world of parallel computing, squeezing last bit of performance of current state-of-the-art architectures is an urgent task for whole cloud computing community. In this paper, we present Function Flow a C++11-based generic framework for task parallelism. Our insight is that heavy use of generic parallel algorithms in task parallelism may introduce numerous unnecessary synchronous operation which can cause loss of performance of applications. To solve the problem, in Function Flow we propose a DAG-driven task scheduler for programs that can be expressed as a Direct Acyclic Graph of tasks with dependency edges. Function Flow distributes work threads to cores and schedules tasks based purely on tasks’ state in DAGs constructed by programmers. Because our implementation is based on callback mechanism, DAGs are represented compactly and the scheduler in Function Flow works in a dynamic and fully-distributed manner. To achieve high performance the only thing programmers need to do is characterizing dependencies between tasks with the help of user-friendly interfaces provided by Function Flow. We use several micro-benchmarks to demonstrate the efficiency of our approach and analyze the performance of the framework.
More
Translated text
Key words
Task parallelism, DAG-driven scheduling, Work-stealing, Callback mechanism
AI Read Science
Must-Reading Tree
Example
Generate MRT to find the research sequence of this paper
Chat Paper
Summary is being generated by the instructions you defined