An Optimum Decision Making Framework for Allocating Spot Instances to Execute Batch Workload in Cloud

Among all available cloud-based solutions, spot instances are ideal for batch job execution with flexible completion times and failure tolerance. The combination of spot instance sizes and prices provides flexibility to execute jobs satisfactorily with regards to their computational requirements. However, the demand for each type of batch instance fluctuates over time and it raises some challenges to provide adequate instances to match the workload demand. This makes it necessary to have a mechanism to dynamically adjust the number of instances and assign them to the incoming jobs.In this paper, we propose an optimization-based solution to allocate spot resources for executing arriving batch jobs in the cloud platforms over time. This method manages the trade-off between the cost of renting spot instances and the user-centric quality of service in terms of job waiting time. Given a set of jobs and spot instances of various types, our algorithm selects the best combination of instances in each analysis window. In addition, the method takes into account the job arrival prediction and characteristics of input jobs to adapt the algorithm.