Support for multiple cores within Parallels?

Discussion in 'Parallels Desktop for Mac' started by kaidomac, May 21, 2007.

  1. kaidomac


    When will Parallels support more than 1 core per Virtual Machine? If I can get dual-core support within my Windows XP Pro image, I can completely drop PCs out of my life :D Is it already supported, or do we have an ETA?
  2. James Bond 007

    James Bond 007

    Duo Core support is not available with the current version. Probably in the next version, but we do not know when the next version will be released.

  3. tacit_one

    tacit_one Kilo Poster

    Parallels itself will take advantage of the dual-core cpu (it will speedup your video, sound, usb, etc. in your vm), but windows itself will see only one cpu in the current version. I fact, this will not prevent you from using any windows application, so i don't see why can't you drop your PC right now :) or you can wait for the moment we will announce the smp support ...
  4. mmischke


    There seems to be a degree of confusion surrounding the implications of having only one virtual CPU on multicore hardware. As tacit_one mentions, Parallels takes advantage of multiple cores on the Mac just fine; it's just another app running on OS X, spinning off threads which are distributed by OS X's scheduler.

    I can envision a handful of not-too-common development scenarios in which Windows must be presented with multiple CPUs (i.e. those which make use of CPU affinity), but this kind of thing isn't ideally done under virtualization, anyway.

    Multiple virtual CPUs is certainly interesting, tho. VMWare's latest Workstation (not for Mac) is an example where this kind of thing may have been taken too far. They let you assign two CPUs to a VM on machines having only a SINGLE core. That's bound to be one busy core! :) This isn't meant to either boost or slam VMWare and I only mention it because it's relevant to the discussion.

    On another note, the Windows uniprocessor kernel is faster than the multiprocessor kernel because its scheduler is simpler in design. If and when the day comes that we're running virtualized Windows with two CPUs on dual-core hardware, we may possibly discover that it's slower than our current scenario.
  5. VTMac


    Just to add to that, in most circumstances the current beta of VMWare Fusion is slower with multiple CPUs than with single CPU. And it seems they expect it to remain that way do to scheduling overhead.
  6. vioccc


    There's one situation in which having dual-core support in Windows could be of a great help: on a single core machine, when an application uses 100% of the CPU (be it because of a bug or because it really needs to do a lot of processing), Windows is pretty much frozen. On a dual-core machine, Windows will usually remain responsive because it's got one spare core to use (unless the application in question is multithreaded and uses up 100% of both cores).

    Of course, the downside is that if dual core was supported in Parallels and a Windows application used up 100% of both cores, both Windows and MacOS X would be frozen, something that can not happen at the moment since Windows can only use a single core in the current version.
  7. tacit_one

    tacit_one Kilo Poster

    mmischke, great explanation! Really.
  8. slamb


    vioccc: If an operating system allows one normal-priority process to monopolize the processor, then its scheduler really sucks. Windows's may (haven't checked), but I've experimentally verified that OS X does not suck that badly.

    There's another, simpler, explanation for why someone would want SMP support: they're running a parallelizable, CPU-intensive task in the guest and want it to go twice as fast.

    I'll give you an example. At work, we have an extremely intensive build - "make -j5" from scratch takes about a half hour to complete on a 2x2 Xeon. "make -j1" is almost four times slower (near-perfect parallelism). When I'm in the office, sshing in to my powerful and expensive Linux machine is my best option.

    However, if I should need to make a build while at a customer lab with no net access...well...there's one particular build tool we don't have the source code to, and we had to fight to get even a Linux binary. So no native OS X builds without trickery. I don't like dual-booting, and I don't like lugging an extra laptop around. Virtualization it is. My MacBook Pro has two processors, and I'd prefer to expose both of them to a virtualized environment so a one-file change takes 10 minutes instead of 20.
    Last edited: May 23, 2007

Share This Page