How many CPUs can be assigned to a Parallels Desktop VM?
Solution 1:
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
- according to lowendmac
In comparison, Fusion 5 and the current version of Parallels support up to 8 CPUs and 8 GB of RAM.
- according to macworld
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.
Solution 2:
Parallel support sent me this
Considering that 1 vCPU is equal to 1 CPU is an assumption for the sake of simplification, since vCPUs are scheduled on logical CPUs which are hardware execution contexts. These tasks can take a while in the case of a single core CPU, CPUs that have only 1 thread per core, or could be just a thread in the case of a CPU that has hyperthreading.
Consider this scenario:
In the physical world you can run Windows 2003 Standard Edition on up to 8 cores (using a 2-socket quad-core box) but in a virtual machine they can only run on 4 cores because it tells the operating system that each CPU has only 1 core per socket.