How many CPUs can be assigned to a Parallels Desktop VM

parallels-desktopperformance

I have an iMac with the quad core i7 CPU which shows up in Mac OS X as an eight core CPU (thanks to Hyper Threading, I think). Parallels Desktop allows me to assign 1-8 cores to the Windows VM that I'm running. How would changing that number affect the Host OS performance? Currently I have 2 cores assigned to the VM, but it is unclear how Parallels manages them. Are those the real cores or the virtual cores? I always see only 4 cores being used in Mac OS X, the remaining 4 (I guess those are the virtual ones) never show any activity.

For example – can I assign all 8 cores to the VM and still use Mac OS X? Say I'd like this for gaming (w/o going to Boot Camp), etc.

Or if I assign 3 cores, 5 cores – real processors always have either 1 or some even number of cores.

Best Answer

You have a lot of cores, and hyperthreading makes it appear to the system that you have twice as many. The reason you may not ever see activity on half your cores is because the system is not utilizing them. While the system may be multiprocessor aware, not necessarily will every application you run. Today's processors are very very fast, which means that most of your cores will sit idle most of the time unless you're doing something really really interesting.


If you want to see your cores being utilized, try this google search, which returns multicore aware Mandelbrot set generators. Another suggestion is to try downloading HandBrake and installing and setting it to transcoding some large wmv9 files with deblock and denoise, set to maximum for good measure, but don't expect nice transcodes with those settings; its just something for your cores to chew on so you can watch in Activity Monitor that you can set processes that will use all cores. If you're not satisfied, run multiple instances of these applications. What I used to do to see the cores utilized is launch a ridiculous number of Chess.app instances and set them all to playing against the computer. If you want to try this, have /Applications/Utilities/Activity Monitor.app open, and open /Applications/Utilities/Terminal.app and enter this line, hit return, hit the up arrow and repeat over and over until you think you have enough instances running to work your processors,:

 /Applications/Chess.app/Contents/MacOS/Chess &

Regarding Parallels, I searched the forums and the documentation. Interestingly, neither the User Guide, nor the Data Sheet, nor any list of features that I could find say anything about how many cores you can assign to each VM. I believe this may be to how things get created in parallel, and while there were issues with multicore in previous versions (if the number of forum posts regarding it are any indication), perhaps they decided to move forward with publishing documentation sans any mention of the abilities to utilize multiprocessor/multicore.


That being said, I found some other sources for you that answer your question

How many CPUs can be assigned to a Parallels Desktop VM?

definitively:

  • according to a wikipedia page comparison between Fusion and Parallels:

Up to 8 processors per VM & Multi Core

In comparison, Fusion 5 and the current version of Parallels support up to 8 CPUs and 8 GB of RAM.

Both Windows and Linux guest operating systems can be installed via an easy installer, and Parallels supports up to eight virtual CPUs, and 64-bit versions of Windows and Mac OS X Server.

Please bear in mind this last citation is for Parallels 5, which should be good news, as subsequent versions of Perallels will only increase the features and hopefully the robustness of the application.


FWIW, while I have switched to Open Source software for virtualization, I was an early adopter of Parallels and found their support to be excellent. They took good care of me and answered all of the many questions and problems I encountered in timely fashion. That was some time ago (~2005/6 during beta, and the release of 3.0), and I have heard complaints since then, but that was not my personal experience with their forums or their phone support. So I have encouraged others to register and seek help and answers to technical questions there. I would recommend you do this to hear from the source exactly what you want to know regarding how Parallels handles multiprocessing/multicore.

can I assign all 8 cores to the VM and still use Mac OS X?

Yes, absolutely, OS X is very good at handling resources. It is possible you may not even notice much is happening. I have myself a rather anemic (by today's standards) core2duo, and with 15 instances of HandBrakeCLI running transcodes, and both my puny cores maxed out, I really couldn't notice anything from the desktop while I continued to surf and use other day to day applications. I did keep an eye on how much memory was being used, and I didn't even get close to maxing my 8GB of RAM, nor did I notice any swapping. But if you have a slow (4200 rpm) harddrive, I think you'll probably notice something.