CPU availability predictor and machine recommender for a desktop grid - Shafazand, Mohammad Yaser (2014)
Desktop grid computing has emerged from the concept of providing relatively large amounts of computing power for little cost using typical desktop machines. The computing power is stolen by the scheduler from desktop computers while they are in an idle state. Approaches have been taken to utilize the idle CPU cycles of desktop machines using desktop grid computing. However, efficiently using resources has complications due to their volatile state. The scheduler, being responsible for appropriate job dissemination, needs accurate job runtime predictions and thus resource availability predictions for an efficient resource management. Distance, high diversity, distributed resource ownership and intermittent availability of resources are considered challenges which affect forecasting resource availability in desktop grids. Many have successfully researched on processes, techniques and methodologies for accurate resource availability predictions in grid computing, but only some have specifically considered the desktop grid. The overhead of the predictor systems in these environments are also less studied. This has led to more sophisticated predictors sacrificing simplicity and having high resource usage overhead. Another issue for the desktop grid scheduler is to appropriately match suitable desktop machines (resource providers) to a job. Machines that have enough available resources to satisfy the job requirements and which could also finish the job as soon as possible, must be selected. As a solution to these problems, two frameworks for a desktop grid computing environment are modelled and proposed. The first framework attends to cluster and model availability behaviour of the machines in the server and predict everyday CPU availability on each client for that particular client. The second framework recommends desktop machines to the scheduler based on resource specifications and the CPU availability property. We simulated both frameworks by developing software modules and using the CPU availability of 700 desktop machines of an actual desktop grid. We analysed both the accuracy and overhead of our predicting module and compared it with other studies. The results for our first framework show lower server resource usage overhead compared to similar works while preserving the accuracy. For the second framework, compared to two well known schedulers in desktop grid, our design proved better performance via lower overall job batch completion time. The design of the second framework also supports various resource availability parameters as well as CPU availability. It also has no interference with existing scheduling processes. The overall application of these two frameworks has decreased server resource usage overload and assisted the desktop grid scheduler in better decision making and thus lower overall job completion time.