Proposals for efficient management of fpgas within cloud computing environments

Cloud computing offers an attractive framework to be used by different types of Cloud clients, such as scientists, developers, students or universities. These clients use Cloud services for running their applications, developing new ones or using applications offered by providers as a service. Most Cloud providers support their services with sets of homogeneous computational resources within every data centre. However, some applications demand different requirements, such as a higher level of parallelism, real-time response or low latency. In these cases, the integration of heterogeneous resources can pave the way for more efficient service provisioning, both in terms of application performance and resource utilization. Furthermore, the popularity of Cloud computing services has dramatically increased in the last few years. As a consequence, this demand has caused the development of large data centre that consume lots of energy. In order to tackle this problem, Cloud providers have become interested in introducing more power-efficient resources into their infrastructures. In this way, more and diverse clients can be serviced, without impacting power consumption negatively. One example is FPGAs (Field-Programmable Gate Arrays), which exhibit an excellent performance/energy consumption ratio. Moreover, they can provide significant business value in Cloud environments due to their enormous computing capacity with predictable latency and higher parallelism level. However, their introduction and management is not a trivial task. The aim of this thesis is to use FPGA accelerators to improve QoS in Cloud platforms and reduce their energy cost. To this end, the thesis presents several proposals focused on the integration and efficient management of FPGAs as accelerators in Cloud platforms. The motivation is not only to enable their use by clients as another infrastructure resource, following an IaaS (Infrastructure as a Service) model. We also aim to get the best from them when used to support applications delivered as a service by the Cloud provider, that is, when used to support a SaaS (Software as a Service) model. In this case, the goals pursued are related to QoS (Quality of Service) support, with a positive side effect on energy consumption. First, we designed a novel architecture aimed at integrating hardware accelerators such as FPGAs into a Cloud Computing infrastructure, and making them available as a service. In this case, Cloud clients decide if they need to use FPGAs and for how long when purchasing their access to computational resources. This idea is very similar in concept to the Amazon’s F1 instance family (virtual machines which include an FPGA together with the software needed to program them), presented by Amazon in late November 2016 and currently in a preview state. The next goal, providing efficient support to QoS for SaaS offerings, involves making the system responsible for matching the best resources to each client request. Allocation and scheduling algorithms based on classification and prediction models have been developed and integrated into our architecture to tackle this problem. Advances in FPGA dynamic management and efficient virtualization technology to accelerate the execution of certain types of tasks are harnessed in this context. The proposal has been implemented in a real proof-of-concept prototype, which includes two servers and one FPGA. A use case based on an image processing service has been used. Results show that the smart use of FPGAs integrated with conventional computational resources leads to a higher percentage of clients serviced with their QoS fulfilled. Furthermore, the proposal also contributes to the reduction of data centres’ energy footprint. In order to extrapolate the benefits of adding FPGAs to the system without increasing money expenses, we have developed a simulation tool to study the impact on performance and energy consumption of scaling the number of FPGAs in the system. This simulation tool is based on statistical models of processing time and power consumption, and it was statistically validated against previous experiments. Results confirm a positive trend in the ratio of successfully serviced user requests while also improving energy consumption. Although the proposed techniques have led to significant advantages, there is still room for improvement. As a result of the work conducted on the research visit, we have established that additional benefits can be provided by deploying a time division multiplexing strategy among the client requests which need the FPGA as an accelerator. Moreover, a strategy has been developed that uses both the applications’ performance and deadlines to control the assignment of FPGAs to applications that would consume the most energy. Results show an improvement in terms of successful requests and energy consumption. Furthermore, an optimizer aimed at handling the remaining VMs in the server (those which run workloads which do not use the FPGA), through vertical scaling and CPU frequency adjustments, has been integrated into the proposed architecture. In this way, the power consumption considering the entire Cloud system is further optimized. Results confirm that energy savings are possible while maintaining application performance, with multimedia applications offered as a service.