A duplication based compile time scheduling method for task parallelism

  • Authors:
  • Sekhar Darbha;Dharma P. Agrawal

  • Affiliations:
  • -;-

  • Venue:
  • Compiler optimizations for scalable parallel systems
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

The cost of inter-processor communication is one of the major bottlenecks of a distributed memory machine (DMM) which can be offset with efficient algorithms for task partitioning and scheduling. Based on the data dependencies, the task partitioning algorithm partitions the application program into tasks and represents them in the form of a directed acyclic graph (DAG) or in compiler intermediate forms. The scheduling algorithm schedules the tasks onto individual processors of the DMM in an effort to lower the overall parallel time. It has been long proven that obtaining an optimal schedule for a generic DAG is an NP-hard problem. This chapter presents a Scalable Task Duplication based Scheduling (STDS) algorithm which can schedule the tasks of a DAG with a worst case complexity of O(|v|2), where v is the set of tasks of the DAG. STDS algorithm generates an optimal schedule for a certain class of DAGs which satisfy a Cost Relationship Condition (CRC), provided the required number of processors are available. In case the required number of processors are not available the algorithm scales the schedule down to the available number of processors. The performance of the scheduling algorithm has been evaluated by its application to practical DAGs and by comparing the parallel time of the schedule generated against the absolute or the theoretical lowerbound.