Research Article

A Multiconstrained Grid Scheduling Algorithm with Load Balancing and Fault Tolerance

Algorithm 1

MLFT scheduling algorithm.
Step 1. Get the list of tasks from the user with their user deadline and Budget
Step 2. Get the list of resources from GIS with the computation cost per second and initialize the deadline hit count
and hit count values for all resources.
Step 3. Construct matrix of size when is the number of tasks and is the number of resources.
Step 4. For all resources in , where , and denotes number of resources,
   do
      4.1: Calculate Failure rate
      4.2: Calculate Ready Time
      4.3: Calculate Load of each Processing Element using (1).
      4.4: Calculate Average Load of each machine
      4.5: Calculate Average Load of each resource
   done
Step 5. Calculate Average Load of the system
Step 6. Calculate Balance Threshold
Step 7. Create a list of underloaded resources which has .
Step 8. For each task in in queue and for each resource ,
   do
      8.1: Construct completion time matrix of size
      8.2: Construct communication time matrix of size
      8.3: Construct total completion time matrix of size
      8.4: Construct cost matrix
   done
Step 9. For all task in Task_list ,
   do
      9.1: Create lists and with resources that has and
       respectively.
      9.2: Select the resources in with and create lists and . Include the list
       of resources in in .
      9.3: Sort the lists and based on of resources in ascending order
      9.4: Create lists and with the set of underloaded resources from and
       respectively in order.
      9.5: If entries in ,
           Select the first resource in the list for task and dispatch to resource and Increment
          Deadline Hit Count and Hit Count.
       else if entries in ,
           Select the first resource in the list for task and dispatch to resource and Increment
          Hit Count.
      9.6: Remove task from Task_list .
      9.7: Update and where is the resource to which the task is dispatched.
   done
Step 10. If there are tasks in Task_list ,
      Repeat steps from 4.3.
  else
      Compute and
      Compute
      where
               is the number of tasks successfully completed by a resource without any failure and
               is the number of tasks failed to be executed by a resource .
      Compute Resource Utilization
              
      Compute Average Resource Utilization
              
  endif