Application performance overhead and scalability for execution on virtual machines over multicore processors

Virtualization was born more than 30 years ago by IBM in an attempt to logically partition mainframe computers into separate virtual machines. As expected, despite the benefits virtualization was offering, a performance penalty needed to be paid because of the additional intermediate layers between the hardware and the application. With the passing of the years and the personal computer (PC) systems entering the scenery, along with the recent technology advances, we reach a point where virtualization for PC becomes a real scenario. Many researchers say that the performance penalty of virtualization is not that relevant compared to the benefits obtained. One of the major benefits virtualization has to offer is division of the physical machine into different domains, in a way that isolation is achieved between the different domains. Moreover, while the processor architecture moves from single core to multi-core design and the number of available cores inside the processor keep increasing, it raises the opportunity of executing parallel applications with larger degree of parallelism (High Performance Computing HPC) as well as executing more applications on the same machine at the same time. A combination of the above, offers the chance of executing an HPC application inside one of the many different domains that virtualization has created on a multi core machine. The objective of this work is to evaluate the use of virtualization for the execution of HPC applications. Our work uses virtualization to achieve higher utilization and performance isolation for multi core processors. Based on existing virtualization tools, as a first step, we are proposing the use of Virtual Machines (VM) to measure the performance penalty suffered by different types of applications when executing on top of a VM on both single and multi core systems. As a second step, VMs are used to study the scalability of HPC applications on a virtual environment. The experiments include execution of applications from the PARSEC and DaCapo benchmark on top of VirtualBox, on two different systems: a 32-bit system with one single core processor and a 64-bit system with two quad-core processors. The results observed show that the different characteristics of each application have a considerable impact on the penalty suffered by the execution on Virtual Box. The penalty ranges from 10% up to 40%. Scalability for HPC applications seems to be very promising inside the VM and at the same time the different domains appear to offer performance isolation which means higher system utilization. All the results lead us to conclude that it is possible to combine HPC and virtualization having a variety of overheads depending from the type of the application. Maria Charalambous – University of Cyprus, 2010 APPLICATION PERFORMANCE OVERHEAD AND SCALABILITY FOR EXECUTION ON VIRTUAL MACHINES OVER MULTICORE PROCESSORS Maria Andrea Charalambous A Thesis Submitted in Partial Fulfilment of the Requirements for the Degree of Master of Science at the University of Cyprus Recommended for Acceptance by the Department of Computer Science June, 2010