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

View/ Open
Date
2010-06Author
Charalambous, MariaPublisher
Πανεπιστήμιο Κύπρου, Σχολή Θετικών και Εφαρμοσμένων Επιστημών / University of Cyprus, Faculty of Pure and Applied SciencesPlace of publication
ΚύπροςCyprus
Google Scholar check
Metadata
Show full item recordAbstract
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.