Scientific Programming

Volume 2016 (2016), Article ID 3676149, 11 pages

http://dx.doi.org/10.1155/2016/3676149

## HSIP: A Novel Task Scheduling Algorithm for Heterogeneous Computing

^{1}School of Software Technology, Dalian University of Technology, Dalian 116620, China^{2}Liaoning Police College, Dalian 116036, China^{3}School of Computer Science and Technology, Dalian University of Technology, Dalian 116024, China

Received 22 September 2015; Revised 9 January 2016; Accepted 16 February 2016

Academic Editor: Bronis R. de Supinski

Copyright © 2016 Guan Wang et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

High-performance heterogeneous computing systems are achieved by the use of efficient application scheduling algorithms. However, most of the current algorithms have low efficiency in scheduling. Aiming at solving this problem, we propose a novel task scheduling algorithm for heterogeneous computing named HSIP (heterogeneous scheduling algorithm with improved task priority) whose functionality relies on three pillars: () an improved task priority strategy based on standard deviation with improved magnitude as computation weight and communication cost weight to make scheduling priority more reasonable; () an entry task duplication selection policy to make the makespan shorter; and () an improved idle time slots (ITS) insertion-based optimizing policy to make the task scheduling more efficient. We evaluate our proposed algorithm on randomly generated DAGs, using some real application DAGs by comparison with some classical scheduling algorithms. According to the experimental results, our proposed algorithm appears to perform better than other algorithms in terms of schedule length ratio, efficiency, and frequency of best results.

#### 1. Introduction

In the era of big data, data intensive computing cannot rely on a single processor to be completed. It often relies on heterogeneous computing system (HCS). A heterogeneous computing system defined as high-speed network interconnection of multiple processors computing platform can carry out parallel and distributed intensive computing [1, 2]. The effectiveness of performing similar applications on heterogeneous computing systems relies on task scheduling methods [3, 4]. Typically, an effective task scheduling method can improve the efficiency of a heterogeneous computing system. Task scheduling methods aim to minimize the overall time of completion (makespan) [5]. In detail, a task scheduling algorithm needs to record the operations of the processors and command their completion under the requirement of task precedence.

Typical task scheduling algorithms include Heterogeneous Earliest Finish Time [6] and Critical Path On a Processor [6], Standard Deviation-Based Algorithm for Task Scheduling [7], and Predict Earliest Finish Time [8]. Although they have been widely used in heterogeneous computing systems, they still have three drawbacks. First, most of them ignore heterogeneity of different computing resources and different communication between computing resources. Second, current methods adopting entry task duplication to all the processors lead to the overload of CPU. Finally, they do not have an effective inserting-based policy.

Aiming at solving the three problems, this paper proposes the Heterogeneous Scheduling with Improved Task Priority (HSIP). It works in two steps: task prioritizing stage followed by processors selection stage. In the first step, the algorithm combines the standard deviation with the communication cost weight to determine the priorities of the tasks. In the second stage, we proposed an entry task duplication strategy to determine whether there is a need for entry task duplicate to other processors. At the same time, the improved insertion-based optimizing policy makes the makespan shorter. The experimental results show that our projected algorithm performs better than other algorithms in terms of schedule length ratio, efficiency, and frequency of best results.

The rest of this paper is constructed as follows: Section 2 presents the task scheduling problem and Section 3 outlines the related work on the task scheduling in heterogeneous computing systems. The projected algorithm is clarified in Section 4 and the experimental outcomes are presented in Section 5. Section 6 summarizes and concludes the findings of this paper.

#### 2. Heterogeneous Task-Scheduling Problem

A task scheduling model is composed of an application, a target computing environment, and performance benchmarks. An application can be characterized by a directed acyclic graph (DAG), , where is the set of nodes and is the set of edges. A DAG model example in Figure 1 is similar to literature [6]. Each node denotes an application task. Each denotes that the communication cost between two jobs under the task dependence constraint such as task should fulfill its execution prior to task . In a given application DAG, a task without any parent is known as an entry task while a task without any child is regarded as an exit task. If a DAG has more than one entry (exit) node, a mock entry (exit) node with zero both in weight and in communication edges is added to the graph. The DAG is supplemented by a matrix that is equal to computation cost matrix, where represents the number of tasks and symbolizes the number of processors in the system. provides the estimated time for task completion on machine . The mean time for task completion of task is calculated as the following equation: denotes the communication cost between task and task . When both and are processed on the same processor, becomes zero due to neglecting the interprocessor communication costs. The mean communication costs are commonly calculated to label the edges [6]. The average communication cost of an edge is calculated as the following equation:where indicates the average latency time of all processors and is the mean bandwidth of all links that connects the group of processors. is the quantity of data elements that task needs to send to task .