Resource allocation is the process of mapping the available resources to competing jobs based on the individual job requirements [5]. Computing resources must be well-managed to prevent overloading and waste of bandwidth, processing unit, memory, etc. This waste relates directly to significant financial loss for large Cloud service providers with regards to energy, operational cost as well as dissatisfaction of the Cloud service user [6], [7]. Resources allocation systems control how multiple VMs share the underlying Physical Machines (PM). Fast and efficient resource allocation algorithms can help to save energy and cost while increasing customer satisfaction. Resource allocation is typically performed in two stages as shown in Figure 1. The first stage is the jobs assignment to the Virtual Machines: applications or jobs (both terms are used synonymously in the context of this paper) are executed on VMs. Each application has its own requirements of compute power, disk space and RAM space, communication bandwidth, priority, etc. (see [7]). Any VM must meet these requirements when resources are allocated.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.