Abstract. Grids have been extensively deployed to handle various scientific and engineering applications that can be structured as bag-of-tasks (BoT). The scheduling of BoT applications on Grids is an important issue for achieving high performance. Grid scheduling involves a number of challenging issues, mainly due to the dynamic nature of the Grid. To deal with this dynamic nature, in this paper, we propose an online scheduling algorithm called prudent algorithm with replication (PAR) for scheduling Grid applications. PAR is shown to prudently make scheduling decisions in such a way that it can tolerate inaccurate performance predictions. Another point to note is that PAR adopts task duplication as an attempt to reduce serious schedule increases. Moreover, since the applications to be performed may widely vary in terms of their required hardware and software, we also capture the loads’ various processing requirements in our algorithms, a unique feature that is applicable for running proprietary applications only on certain eligible processing nodes. Thus, in our problem formulation each application can only be processed by certain processors as both the applications and processing nodes are heterogeneous. We then present a task selection policy, referred to as requirement-aware load selection (RALS) policy to handle the contention of multiple applications that have various processing requirements but share the same computing resources. Based on RALS and PAR, we develop two scheduling algorithms: requirement-aware prudent algorithm with replication (RAPAR), and requirement-aware knowledge-free algorithm with replication (RAKAR). RAPAR and RAKAR address the scheduling of multiple BoT applications with heterogeneous processing requirements on Grids. RAPAR works in scenarios where inaccurate performance prediction information is provided whereas RAKAR works without any prediction information. Performance evaluation results are presented to demonstrate the effectiveness and competitiveness of our approaches when compared to existing algorithms.
Mike implemented PAR  in Python 2.7 as part of the Real-Time Systems class (EE5903) by Prof. Bharadwaj Veeravalli at the National University of Singapore in Spring 2017. Report and code are available upon request.
 Hu, Menglan, and Bharadwaj Veeravalli. “Requirement-Aware Scheduling of Bag-of-Tasks Applications on Grids with Dynamic Resilience.” IEEE Transactions on Computers 62.10 (2013): 2108-2114.