Running scientific computing applications in a Virtual Machine

yhelothar

Lifer
Dec 11, 2002
18,409
39
91
Will the performance of the number crunching be severely hampered when run in a virtual machine (Oracle VirtualBox) or would it run with similar performance as it would in the native OS?

Are there other VMs that are more ideal for this purpose?

I'm using a hex-core Xeon Westmere-EP with VT-x and VT-d.
 

Crusty

Lifer
Sep 30, 2001
12,684
2
81
I use a 12-core 64GB machine for 'scientific' computations on a daily basis. Doesn't hurt that the disk system is a massive RAID 60 as well. I believe the host hardware is running KVM for this virtual machine.

It's umm... fast.
 
Feb 25, 2011
16,990
1,619
126
When running VMs, the CPUs are usually like 98% as good. It's a very small overhead penalty.

Disk I/O is usually worse, but you can throw hardware (SSD, in particular) at that and make up for it.
 

zir_blazer

Golden Member
Jun 6, 2013
1,229
528
136
There is always overhead, even if minor. For I/O, what I know that some users do, is using VT-d to do passthrough of a RAID Controller directly to a VM, and they can get near native I/O performance that way.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
Most likely yes. Virtualbox performance has always been highly variable.
Xen and KVM would be good options, or HyperV. The minimum overhead of running in a VM shouldn't be much, but VB's performance goes up and down by workload and version.

There is always overhead, even if minor. For I/O, what I know that some users do, is using VT-d to do passthrough of a RAID Controller directly to a VM, and they can get near native I/O performance that way.
If you can afford it for the data size, an SSD is the way to handle that. There a re a lot of things that I can defend as not much better with SSD over HDD, but Virtualbox IO performance is just amazing, compared to having HDDs.
 
Last edited:

zir_blazer

Golden Member
Jun 6, 2013
1,229
528
136
If you can afford it for the data size, an SSD is the way to handle that. There a re a lot of things that I can defend as not much better with SSD over HDD, but Virtualbox IO performance is just amazing, compared to having HDDs.
It doesn't matters if it is a SSD or HD, what matters is how you pass it to the VM, reason why I made this Thread. You need to figure out how to reduce the overhead for your I/O performance to not plummet if running virtualized. This is particularily important if you're working with tons of small files, which are the ones that suffers the most.
Passing through an entire SATA or RAID controller is the easier way assuming you can do that, because it could run inside the VM with native Drivers and near native performance. Some people that wanted to try the concept of all-in-one boxes had a VM acting as File Server with good results.