• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Virtual PC vs. VMware

My host machine at home is a AMD X2 4000+ running Vista Business x64. I run XP on Virtual PC 2007 with hardware virtualization enabled. I use it to run video encoding software on the guest OS. I'm doing this because I'm not sure if all the codecs/encoders are clean. I have a few observations/problems:

1. For some reason, the guest OS (XP 32bit) only sees one core.

CPU-Z on host machine | CPU-Z on Virtual PC

I doubt any of the encoding tools can use dual cores, so I doubt if this makes much of a difference.

2. The x264 encoder doesn't see the SSE3 feature on my CPU. Does this have an effect on video encoding speed?

3. Virtual PC can't run a 64bit guest OS.



Will VMware player solve one or more of the above problems?

Can I use my existing Virtual PC files on VMware player, or will I need to create a new guest OS?

UPDATE: For some reason, the VMware guest OS is slow.

I tried converting the same set of .vob files into H.264.

Microsoft Virtual PC: single core, no SSE3: about 4 hours.
VMware: dual core, cpu-z output similar to Host system: about 11 hours.

Despite using two cores instead of one, the system was more than twice as slow. This does not compute! Any ideas?
 
Funny you should bring this up, I was about to do the same thing and was wondering about the same performance issues with VMWARE vs. VPC2007.

AFAIK VMWARE has a converter that you can use to convert VPC images to VMWARE; I haven't used it, but check it out, I think I saw a converter as an optional download or something, and people have mentioned interconversion options before too.

SSE4 / SSE3 / SSE2 are HEAVILY used by the BETTER encoders out there. You will get a major performance loss if the emulated CPU doesn't efficiently handle SSEx instructions for video encoding. I'm sure SOME encoders cannot use SSE, but MOST of the popular ones have supported detecting it and using it where present for years.

Multi-core emulation -- wow that sucks. With the VM software I usually use under UNIX you can specify how many cores to give to the emulated VM as well as how much memory.
I believe VMWARE is 100% capable of that also, but I haven't tried it to check.

Also I think there are configuration files you can find and edit for VPC that will let you tune a lot of parameters that the documented configuration options and the GUI do NOT give you any access to adjusting. Maybe you can tune them by finding that file and intelligently editing it with your text editor. At least in VPC2004 it was an XML format file it had somewhere. I've got notes on the name / location somewhere but until I get to look that up just check google or whatever I'm sure plenty of people talk about it.

Maybe VPC2007 is better and they give you more documented ways to adjust certain things, though.


Originally posted by: George P Burdell
My host machine at home is a AMD X2 4000+ running Vista Business x64. I run XP on Virtual PC 2007 with hardware virtualization enabled. I use it to run video encoding software on the guest OS. I'm doing this because I'm not sure if all the codecs/encoders are clean. I have a few observations/problems:

1. For some reason, the guest OS (XP 32bit) only sees one core.

CPU-Z on host machine | CPU-Z on Virtual PC

I doubt any of the encoding tools can use dual cores, so I doubt if this makes much of a difference.

2. The x264 encoder doesn't see the SSE3 feature on my CPU. Does this have an effect on video encoding speed?

3. Virtual PC can't run a 64bit guest OS.



Will VMware player solve one or more of the above problems?

Can I use my existing Virtual PC files on VMware player, or will I need to create a new guest OS?

 
Oh yeah I forgot to explicitly say it -- the MAJORITY of better encoders have been very effective users of multi-core / multi-thread approaches for years.

You will run nearly 200% faster with 2 cores instead of one for many of the encoders, and similarly for 4 cores vs 2. Not everything supports that, but many major ones do.

I'd check out ffmpeg, handbrake, and see how well those work for you. They're reasonably reputable encoders, though it's always good to be cautious about possible malware even in reputable products since sometimes even the distribution sites get hacked without the authors having any involvement with the malware.

I'd be skeptical about 3rd party codec packs though obviously things like quicktime lite / quicktime alternative, real alternative, et. al. are pretty popular.

By default, though, FFMPEG is compatible with a BUNCH of formats so there's limited need for additional 3rd party codec packs.

 
Oh yeah and I forgot to say explicitly, VMWARE is usually taken as being a serious and very flexible VM product that can let you adjust all kinds of low level configurations like the ones you mention.

VPC2007 is like a toy in comparison, but still quite useful for the things it is good at, but usually VMWARE will do most things better. That's what I've heard universally about comparing the two.

 
Virtual PC is limited to uni processor guest OS's.

I have played with Virtual PC and Virtual Server 2005. I honestly cant believe Microsoft would release such a pile of garbage. Maybe if it had a Beta tag on it.

VMWare's Server or workstation is much more robust for desktop duty.

Microsoft will close the gap in terms of features with Hyper V. But that will require Server 2008.

I suggest getting VMWare server 1.04, stay away from 2.0 It is in beta and not very good.
 
Originally posted by: Genx87
I suggest getting VMWare server 1.04, stay away from 2.0 It is in beta and not very good.

I played around with VMware yesterday and I'm pleased with what I've seen so far. It took about 15 minutes to convert my Virtual PC files, after which they ran like a charm.

What's the difference between VMware server and workstation?
 
OBTW mencoder is another free encoder to check out vs. ffmpeg.

Looks like VMWare wins at being multi-core capable.

I've heard good things about VirtualBox too, but apparently (if this chart is up to date) it doesn't do SMP guest either.
http://en.wikipedia.org/wiki/C...on_of_virtual_machines

Here's some DIVX (MP4 basically) video encoding benchmarks; the quads usually perform at least 30% better than duals at the same clock rates, and the dual core CPUs look like they're well over twice the speed of any of the single core CPUs:
http://www23.tomshardware.com/...&model2=1072&chart=430

Similar deal for the mainconcept H.264 encoder, with an even larger performance benefit for the Yorkfield Quad over the Wolfdale Dual at similar clock rates:
http://www23.tomshardware.com/...&model2=1072&chart=431


Premiere Pro MP2 to WMV9:
http://www23.tomshardware.com/...&model2=1072&chart=432

whereas (unrelated to video) the Photoshop CS3 filtering bench is abysmal on quad-core CPUs showing little improvement over dual core models at the same clockrate, so obviously it isn't well using any more than two threads, perhaps only one:
http://www23.tomshardware.com/...&model2=1072&chart=437
 
UPDATE: For some reason, the VMware guest OS is slow.

I tried converting the same set of .vob files into H.264.

Microsoft Virtual PC: single core, no SSE3: about 4 hours.
VMware: dual core, cpu-z output similar to Host system: about 11 hours.

Despite using two cores instead of one, the system was more than twice as slow. This does not compute! Any ideas?
 
What are you trying to convert? There are utilities out there that don't need codecs and can still convert. I have no codecs installed on my PC because they're a pain in the ass on Windows.
 
What are you using? Server or player? You mentioned player in the OP. Where are the vob files located? Are you copying them to the guest OS drive?
 
Originally posted by: quikah
What are you using? Server or player? You mentioned player in the OP. Where are the vob files located? Are you copying them to the guest OS drive?

I have Vmware workstation and player installed. I was using the player for the test.

This setup is identical for both VMware and Virtual PC:
Identical copies of XP Pro.
.vob files on network share mounted to Z:
x264 encoder reads from Z:
.mkv container written to Z:

Differences:
Virtual PC has Virtual Machine Additions installed. Can only see single core.
VMware has VMware tools installed. Can see dual cores. I can cerify that x264.exe was using both cores while encoding.
 
Did you try VMWare with just one core allocated? I have a vague recollection that it's considered bad to allocate all of your CPUs to VMs.
 
I'm not sure what's going on, but I'd double check that VMware is set up to offer the expected number of SMP cores to the guest.

I'd also double check that the CPU emulation is giving you access to whatever performance relevant extensions your encoder is effectively capable of using -- SSE2, SSE3, MMX, whatever. The log output should show what extensions it is compiled with and is actually using.

Also be sure to run the encoder in threaded mode allowing it to access the right nunber of threads as CPU SMP cores available to the guest.



 
Originally posted by: Nothinman
Did you try VMWare with just one core allocated? I have a vague recollection that it's considered bad to allocate all of your CPUs to VMs.

yes it is. very very bad. You only want to allocate no-more-than half your available cores to a single virtual machine. If you only have one core (one cpu) than you have not choice, but in dual (or more) core systems you will in fact have better performance by not allocating all your cores.

There is a big long VMWare white paper on this, but it basically boils down to scheduling conflicts with the host system and having to have ALL cores reserved before the guest can use them.
 
Back
Top