Abstract
The goal of the provider with respect to dynamic resource allocation in cloud computing is to maintain application performance according to service level agreements while reducing electrical power costs. To achieve this goal, we present a resource manager that optimizes a utility function expressing the trade-off between the conflicting objectives of maintaining application performance and reducing power costs. It is based on an artificial neural network (ANN) to find the best resource allocation to virtual machines that optimizes the utility function. To provide support for a potentially large number of virtual machines, we present a distributed version of the resource manager consisting of several ANNs in which each ANN is responsible for modeling application performance and power consumption of a single VM while exchanging information with other ANNs to coordinate resource allocation. Simulated and real experiments show the effectiveness of the distributed ANN resource manager over static allocation, a centralized version and a distributed non-coordinated version.