Program is slower on VM than on physical node

asked 2018-12-13 18:40:18 -0600

calm07 gravatar image

I am observing noticeably faster speeds on a physical node when compared to a VM. More details are below.

I have a complicated C++ program that uses OpenMP. It runs at an average of 4-5 mins on a physical node. When I use the same physical node as a compute node and launch a VM on it, it runs at an average of 10-11 minutes. I understand that virtualization will add some overhead but currently the physical node is 2x faster than the VM. Is that the best I can get with virtualization? If I run "top" on the VM, I notice that it uses less CPU% than compared to the physical node.

If I run the program on an Amazon AWS instance, it runs at an average of 4-5 minutes. So it seems to me that some optimization can be done to make my VM faster. I have tried CPU pinning with no noticeable improvement.

There is only one related question in the OpenStack forums - (https://ask.openstack.org/en/question...). But I have already implemented the solution provided there.

I would be very grateful if someone could point me in the right direction. Right now, I am not sure how to debug the issue.

edit retag flag offensive close merge delete

Comments

You don't know how fast the program would run on the physical server used by AWS.

What hypervisor is configured? On the compute node, check nova.conf. Most probably it's libvirt; in which case what is the value of the virt_type config parameter? If qemu, your cloud emulates CPUs, thus slow.

Bernd Bausch gravatar imageBernd Bausch ( 2018-12-13 20:25:05 -0600 )edit