Virtualization has a strong appeal for high-availability computing, given the capabilities to scale and mirror resources on virtual machines with relative ease.
But in the realm of high-performance computing (HPC), virtualization has had a slower rate of adoption for HPC tasks.
A big part of the trepidation is the perception of added latency within a virtualized environment. HPC engineers work very hard to increase the throughput of computing on HPC servers, and a virtualization layer is just one more extra thing between workloads and finely tuned hardware, they worry.
This is where the pain point in HPC still lives. In applications that run completely within an operating system, virtualization would have little effect anyway, since these applications will never need to touch the virtualization layer. But for any app that needs to deal with I/O resources, suddenly that little extra layer between the guest operating system and the host resources will be felt.
This is a valid concern, if the virtualization tools are managed improperly. But that's increasingly less of a concern within HPC circles, where virtualization is being examined as a viable option more and more.
Virtualization, more than physical servers, enables superior administration and provisioning tools, and makes shifting workloads easier, since not only can you shift workloads around, but you can also create new server resources on the fly for those workloads.
Along those lines, resource scaling is also greatly enhanced. For those applications that are hungry for raw computing power, memory and resources can be fed to these apps across virtual machines, just as they would in a physical cluster. For applications that need high capacity, allocating resources to any HPC unit with a problem set is a lot simpler.
Then there's the tuning of the virtual operating system itself. Even more than commodity hardware, virtual systems can be specifically tuned to handle HPC-friendly operating systems. Once configured, those HPC-tuned systems can be provisioned to your heart's content and scaled as needed.
For all these benefits are still concerns about virtualization overhead, and there's been a lot of improvement in paravirtualization systems like VMware to improve communication between VMs.
Realistically, there are few reasons why a virtualization solution, when properly deployed, would not be appropriate for an HPC task set, as many of the early bugaboos have been removed by new innovation and performance streamlining.