A Master of Science thesis in Computer Engineering by Abid Farhan entitled, “Virtualizing and Scheduling FPGA Resources in Cloud Computing Datacenters”, submitted in April 2021. Thesis advisor is Dr. Assim Sagahyroon and thesis co-advisor Dr. Raafat Aburukba. Soft copy is available (Thesis, Completion Certificate, Approval Signatures, and AUS Archives Consent Form).
Cloud service providers are consistently leveraging their computing infrastructures by adding reconfigurable hardware platforms such as field-programmable gate arrays (FPGAs) to their existing infrastructures. Adding FPGAs to a cloud environment involves non-trivial challenges. The first challenge is the virtualization of FPGAs in order to enable FPGAs as cloud resources. Since there does not exist a standard virtualization framework, there is a need to devise an efficient framework for virtualizing FPGAs. Moreover, FPGA resources are used in conjunction with central processing units (CPUs) and graphics processing units (GPUs) to accelerate the execution of different tasks. Therefore, to gain the benefits of these powerful accelerating platforms, the second challenge is to optimize the allocation of a batch of tasks to minimize their makespan. Furthermore, the third challenge is for cloud providers to be able to quantify the performance of the various policies implemented in their cloud datacenters. In this work, an FPGA virtualization framework is proposed to abstract physical FPGAs into virtual pools of FPGA resources. Next, an integer linear programming (ILP) model is proposed to optimize the allocation of FPGA resources to cloud tasks requiring acceleration. Preliminary attempts to validate the model indicate that an optimal solution, which is the minimum makespan, is obtained using an exact solution method. Next, a simulated annealing (SA) metaheuristic is developed not only to achieve gains in performance compared to the exact method, but also scale up and handle larger datasets while providing near-optimal solutions. Experimental results show that SA has reduced the makespan of a large dataset with 1000 tasks and 100 resources by up to 30% when compared to first-come-first-serve (FCFS) and shortest-deadline-first (SDF) algorithms. Lastly, in order to quantify the performance of FPGA-enabled cloud datacenters, an existing cloud simulator named CloudSim is extended to enable FPGA as a resource in its environment. The proposed virtualization framework and the SA scheduler are integrated into the environment. Simulation results show that execution time of tasks is reduced by up to 78% when FPGA accelerators are used.