摘要:Task scheduling plays a significant role in parallel and distributed computing. A good task scheduler will balance the system load and thus improve the utilization of the system. Task scheduling can be classified into two categories: independent task scheduling and dependent task scheduling. For independent task scheduling, the tasks are independent and the scheduling is mostly conducted at runtime. In contrast, for dependent task scheduling, the tasks are dependent and the scheduling is mostly conducted at the compilation. The aims of the current task schedulers are either to schedule independent tasks or to schedule dependent tasks. But for many applications, there are both independent tasks and dependent tasks existing in them. In our proposed system, we support both independent task scheduling and dependent task scheduling. A parallel programming interface "par" is proposed to extend the C/C-h- language. Through this interface users can submit both independent parallel tasks and dependent parallel tasks. We develop a source to source translator to analyse this interface and transform it into C/C++ programs embedded with MPI or PVM communication library functions. The translator will analyse all the tasks submitted in this interface. If there is no dependence detected among the tasks, an independent task scheduling algorithm will be employed.