Parallels or Fusion?

Way back when, I used to use VMware desktop on my Dell for development. When I switched to the Mac, I naturally selected Parallels desktop to let me run Windows instances under OSX. A couple of days ago I was offered a review license for VMware Fusion, so I tried it out to see if it’s better than Parallels, even though I actually have very few complaints about Parallels.

So what I’m comparing here is Parallels Desktop 3.0 for Mac and VMware Fusion 1.1.1. My comparison isn’t in any way exhaustive, just a first impression after a few days of use and for a fairly limited application, namely software development and backups and stuff.

Parallels aboutVMware Fusion about

The machine I’m running these guys on is my brand new Mac Pro with dual quadcore Xeons at 2.8 GHz and 8 Gb of RAM. On this machine it’s hard to have any software perform poorly, so I wouldn’t be able to detect much in the way of inefficiencies, if there are any. Nice for me, but it hobbles my advice somewhat. For details on the machine, see my earlier entries on “Mac XP”.

I’m running an old Win 2000, and two instances of Windows XP under Parallels. One XP is equipped with MS SQL Server developer’s edition and Visual Studio 2005, while the other one harbours Visual Studio 2008. They have 1 Gb resp. 768 Mb of RAM allocated in Parallels. The Win 2000 has just 512 Mb, but I don’t use that one much.

For this comparison, I created a third Win XP and gave it 512 Mb of RAM. I plan on using this VM as a “utility VM”, containing stuff like backup software. The first thing I installed in it was Retrospect 7.5 for Windows that came bundled with my Netgear ReadyNAS+ (5 clients included) and then I purchased and added a further 5 client licenses. So it can now backup 10 clients, mixed Mac OSX and Win clients.

It turns out that Fusion is a pretty good choice for this “utility” VM, since it allows me to allocate 2 virtual CPUs. Retrospect does exploit multiple CPUs if you have them, so this allows Retrospect to use two of the eight cores I have in the machine. Parallels would limit Retrospect to just one core.

Retrospect

Running Retrospect in one of the other XP VMs would make that VM go very slowly. All it’s activities would be limited to one core on the Mac and I would have a nasty time of working in Visual Studio in the same VM at the same time. Having Retrospect run on two cores in its own VM allows me to work in the other VMs without noticing any slowdown at all. It’s great! In all fairness, running Retrospect in a Parallels VM would have had the exact same result, except Retrospect would have run slightly slower.

I’m usually writing quite a bit of multithreaded code, making it practically necessary to run on a multiprocessor to avoid subtle bugs. That would seem to mandate Fusion. But I don’t know how fully it emulates two CPUs. Does it interrupt right in the middle of memory accesses like a true multiprocessor machine would do, or is it more civilized than that? The lack of documentation about this is a problem, just like for hyperthreaded CPUs. In both these cases, it’s very unclear how close they mimic a true multiprocessor machine.

As far as simply running most software, I think both these products do a grand job. I’ve not encountered any problems with either, but remember I’ve done much more on Parallels than on Fusion. The network setups are also practically identical with choices for host sharing, bridged, and host only. The intricate and flexible network configurations we see in VMware’s Windows product aren’t found in Fusion (yet). What’s also lacking is a decent snapshot management in Fusion. You can take snapshots and revert, but there’s no management of multiple snapshots like in the Windows product or in Parallels.

Miserable keyboard handling

Now for my real beef with both of these products: the keyboard. Obviously, most keystrokes should be passed on to the virtual machine, some should be converted, and some intercepted and sent to the host OS. Both these products have made a mess of this even though it ought to be simple to get right.

In Parallels, the command and control keys swap nicely on the left side of the keyboard while remaining unswapped on the right side. Kinda confusing, but I don’t mind getting used to it. But function keys is a real problem. Sometimes I succeed in getting them through to the VM using different combinations of command and control or something, then I can’t remember exactly what I did. It also varies according exactly which function keys we’re talking about. The function keys that have predefined uses for dashboard, expos√©, and similar, behave differently from other function keys. Parallels does have a menu where one can select magic key combinations to send to the VM, but it would have been great to have these keystrokes pass right through under their own steam, so to speak. Having to select function keys from a menu is good for once or twice, but get’s old real quick. This is how it looks under the “Actions” menu in Parallels:

The Actions menu

Under VMware, there’s a setting in the “Preferences”, which means that it is the same for all VMs under VMware:

Preferences in VMware

As you can see, there’s a single checkbox “Enable Mac OS keyboard shortcuts” and it works admirably. A little too admirably, in fact. Once you deselect it, all keystrokes go to the VM, including command-tab. Now there’s no point in passing command-tab to the VM since Windows doesn’t know what a command key is. But it makes sure I can’t easily switch between apps on the Mac. This is ridiculous, since Windows reacts to alt-tab, so they could just as well left command-tab for OSX. The new Mac keyboards also have a special “Fn” key where the useless “Help” key used to be. That ought to be exploited by Parallels and Fusion somehow, but isn’t.

I don’t know which of the systems, Parallels or VMware, got the key settings most wrong; it’s a close call. To me it’s obvious they really could spend a little effort in getting this right, since it’s the one thing that makes working with VMs hard; everything else is almost perfect. Having options allowing all keystrokes to pass to the VM except command-tab and possibly control-space (which I use for QuickSilver), would be absolutely great. Allow the user to freely define another couple of magic combinations that should not pass to the VM, and you’re set.

Converting: defeated by Mickeysoft

Both products are able to convert a VM from the other product to its own system. Both of them take forever to do it, but seem to do a good job of it, ultimately. But Windows isn’t happy about it, since it sees the conversion as a move to another machine and then insists on needing a new activation. Just to be a real PITA, Windows only gives you three days to reactivate, if it was already activated. Considering that you get 60 days to activate (for the MSDN version of XP), you are actually severely punished for having activated your XP in the first place before the conversion. How very nice of MS. Actually, WGA being what it is, it’s not a good idea to convert Windows installations from Parallels to VMware or vice versa at all. Actually, if you can avoid activating at all, that’s even better, but it limits you to 60 days per setup.

Dock difference

Parallels shows an actual live image of the VMs screen in the dock and in the task switcher, so even though a VM is hidden behind a stack of other apps, I can keep an eye on the dock icon and see if some compile has finished or a dialog box is waiting for input:

Parallels dock icon

Fusion, on the other hand, just shows a Fusion logo, missing an opportunity to display something useful:

Fusion dock icon

Conclusion

My current conclusion is that both products are great and work just fine. Both need serious work in the keyboard handling. Fusion has dual CPUs, a major advantage, especially on a multicore machine. Parallels has better snapshot handling and really useful dock icons.

Mac XP: totally cool

I finally got the Mac Pro fully installed. Using the migration utility on a Time Machine backup screwed up the mailboxes in Mail somehow, so I had to hook up the old iMac as a firewire target and copy it all over again. Then it worked.

Some apps needed re-licensing, especially Adobe is a mother when it comes to this. You need to de-activate the old installation before you can activate on a new machine. Max two activated machines per serial number. I can’t imagine what you would have to go through if the old machine isn’t bootable so you can de-activate from it. Moral of the story: don’t ever reformat the old machine before you’ve excercised all your apps thoroughly.

Some other apps needed a new license entry, but none of the others needed deactivating on the original machine. Zinio reader was its usual obnoxious self, needing all kinds of manual removals of files in library and plists and stuff, plus reinstallation. This is about the fifth or tenth time I’m doing this with Zinio, and they really ought to get their act together.

Parallels needed a little fiddling to get the “shared networking” working. The trick is to go into system preferences, networking, and the system automatically wants to activate en3, which is what is missing if you migrate Parallels from another machine. Problem solved.

As a first test, I started up three instances of Windows, and had one of them compile a hefty DLL using Borland C++. At the same time, the other instances remained totally responsive, while OSX itself didn’t slow down in the least. Everything remained snappy as can be. Took a shot of the screen estate with the CPU graphs (8 of them stacked…) on top of the left Windows XP. You can admire the screenshot here. The current version of Parallels isn’t able to use or emulate more than one CPU per instance, but I think they will provide for that later. Let’s hope.

Mac XP: rest of stuff arrives

Just now, the rest of the parts arrived, that is four 500 Gb drives and 4 x 2 Gb RAM, all from OWC. I was a bit impatient and forgot to snap pictures of it before putting it into the box. But you all know how hard drives and RAM looks, right? Except this particular RAM has a lot of black fins on it (see earlier pictures).

Anyway, I took out the 2 Gb RAM that was in the machine and replaced it with 4 modules of 2 Gb each. I’ve read somewhere that memory access is the fastest on these machines if you have 4 modules. Maybe there is a 64 bit wide bus for each module and the computer has a 256 bit wide memory bus? Actually, I don’t know, but it didn’t seem worth slowing down the memory bus for just a meagre extra 2 Gb, so out they went. My next Mac Pro (yeah, right) can then get these for a 4 Gb start in life.

I also took out the single 320 Gb drive that was in the machine when it arrived from Apple. Put in 4 x 500 Gb Seagates instead. All the drives had a jumper in place limiting them to a transfer speed of 1.5 Gb/sec. I seem to remember the Mac Pro can handle 3 Gb/sec so I took them out. Fiddly in the extreme, had to use a knife to get them out.

Started up the machine, but discovered I couldn’t open the optical drives with the classic Mac keyboard, no reaction as I hit the eject button. (I’d taken the new keyboard and used it for the iMac.) Had to switch to the new keyboard and then I could open the drive to get the install DVD in there.

When installing, you have to select “Disk utility” first and format the drives. Time to figure out how to divvy up these drives. My first inclination is to use two of the drives like “regular drives” and save the last two drives for Time Machine. Yes, I do run regular backups through Retrospect to an external NAS, but still, Time Machine is really nice and useful. TM on the iMac sucks too much computing and disk power, however, so I’m hoping this isn’t the case on the Pro. Especially if it can use two internal 3 Gb/s drives, it ought not to get in my way, even though I’m running several Windows instances under Parallels (every change in those gigantic virtual machine files trigger a backup of the whole file, maybe 5-10 Gb at a time. Heavy. I’m not too sure this is a good idea.)

Right now, the Pro is migrating from my iMac using the Time Machine backup on an external 500 Gb Lacie Porsche. It still has another hour to run. Interesting factoid: the little Lacie Porsche makes more noise than the entire Mac Pro under it. Fascinating.

Mac XP: some stuff arrives

Post office delivery truckSome stuff arrived today as expected. Other stuff did not. The stuff that did arrive was the Mac Pro itself with the displays. The stuff from OWC seems to be still in Indiana somewhere. According to Fedex tracking, it will be here next week tuesday.

The post office truck arrived with three boxes. One big and heavy box for the Mac Pro itself, plus two boxes, each with a 23″ cinema display in it.

Three boxes on a table

Optical drive slotsAfter unpacking the Mac Pro chassis, I got my first disappointment. They’d obviously forgotten the two superdrives I ordered. Checked the invoice and sure, there they were. Checked the chassis and there was just two blind plates were I’d expect two optical drives to be. I would never have expected Apple to be this random about a custom build. With the phone in one hand, ready to give Apple sales hell, I figured I’d check if they had simply forgotten to remove the covers or something. Poking the blind plates I noticed they could slide down, and lo and behold, there was an optical drive behind each cover. Well, I’m glad I didn’t call sales and make a fool of myself. They hadn’t forgotten. You simply can’t see the drives from the front unless you eject.

Opening up the chassis is like opening a vault. This machine is awfully sturdy and quite heavy. It has a definite tank aura. You’ve seen pictures of the insides, I’m sure, but if not, then Apple has excellent pictures of it on their site.

I set up the machine under my desk and the two new displays on top. I have to wait for the new drives before I transfer all the content from my iMac to the new Mac Pro so I have to have both machines on the table for a couple of days. As you can see, it’s getting crowded. Lucky for me, it’s only temporary; when the new machine is ready it moves to the office and I can use the old one, the iMac, to access it from home if I need to using “Back to my Mac”. Or the MacBook if I’m on the road.

A really filled desk

Right now I’m typing on the new keyboard, and it feels totally the same as the keyboard on my MacBook, but more solid. I think I’m going to like it. Having the two new displays on the same desk as the 20″ iMac and the Dell monitor actually makes the iMac look a bit dim and slightly yellowish. I have tuned the colors on the iMac so they don’t deviate too much from the Dell, but that’s only part of the explanation. These 23″ cinema displays are really much brighter and whiter than the iMac. Now, comparing to the Dell monitor, which is three years old, the Dell looks like something found in a dumpster. It’s unbelievably crappy in comparison, at full display intensity.

There are two things missing on this system. There’s no webcam built into the displays. I’m sure Apple will come out with 24″ cinema displays with built-in iSight cameras any day now. They only waited for me to buy these two first. I’m going to try to get my old Logitech webcam to work with this system (there are open source drivers for all this, which I hope will work).

The other thing missing that I simply didn’t think of is a sound system. Having tinny dialogue emanate from under the table simply isn’t right. I have to do something about that.

My little son is sitting here asking “Is that my new computer?” over and over again. That is not a good sign. Have to get this new machine out of the house before he gets used to the idea.

Son and new mac

Mac XP: ordering new stuff

Price quote Mac Pro

As I already told you about in my previous blogentry, I need to replace my iMac 2 Gb with something heftier.

So the solution is to get a new Mac that allows me a lot more RAM and a number of internal fast diskchannels. If I can place the Parallels images on one or two secondary disks, leaving just the OSX on my primary, I think I can avoid having the system thrash. There’s only one model that can do all this and that’s the Mac Pro. (Yes, I know recent iMacs can take 4 Gb of RAM but that’s not really enough. The single disk limitation also remains.)

So I went to the Swedish Apple store and configured up one, looked at the sticker and broke out in a sweat. With 4 x 500 Gb drives and 8 Gb of RAM and 2 x 23 inch monitors, I’m out around 50800 SEK, before VAT. Ouch.

There has to be another way. Especially that RAM seems ridiculously expensive. So the first item on the agenda is to find cheaper RAM, and while I’m at it, drives.

Surfing around, looking for good and bad experiences in the newsgroups, I came to the conclusion that Other World Computing (OWC) had a pretty good rep. Checking out their site I noticed they weren’t averse to international shipping. Some people in newsgroups recommended using Fedex, since UPS has a bad habit of crushing boxes, it seems. So Fedex it’ll be.

The Mac Pro, latest version, uses memory with pretty special cooling requirements and if you don’t want the fans in the tower to spin too fast and make howling noises, you’d better get memory with these extra large fins.

Mac Pro memory OWC

For the drives, I chose the Seagates, since according to spec they’re the least noisy.

Seagate 500 Gb drives OWC

Add to that Fedex shipping and the total is:

Total price OWC

Not bad, not bad at all. The price for the Mac Pro with minimum RAM (2 Gb) and one 320 Gb drive is still 34500 SEK without VAT or thereabouts. What more can be done?

Well, I’m a developer, and Apple is kind to developers, so I checked out the ADC Select membership and ordered it:

ADC Select membership

Except for DVDs with developer tools, access to a lot of training, extra technical developer support and stuff, you also get a reduction on one hardware purchase per year and, not least, a t-shirt. That t-shirt clinched it.

With the ADC Select reduction applied, the Mac Pro without the extra RAM and disks came to 28885 SEK. Now we’re talking. Which means that the ADC Select reduction exceeds the price of ADC Select itself. The only requirement is that you don’t sell the hardware within a year and that you use it for development for the Apple platform, which is exactly what I do. I suspect that I even get access to OSX Server this way, except I haven’t really located it yet.

None of all this has arrived yet, but various status reports and phonecalls back and forth indicate that today may be the day for both shipments.

As always, stay tuned for further developments.

Developing on Mac XP

Way back, I developed under Windows, starting from nothing (v 1.03) and going all the way up to XP. Then I drifted into OSX. Recently I drifted back, but not all the way. Currently I’m developing for Windows XP on my iMac, and this is how it looks:

Photo of iMac running XP

As you can see, I’m running two instances of XP, the one on the left has Visual Studio 2005, a full SQL Server developer’s edition, while the one on the right has Visual Studio 2008. That one connects to the SQL server over a faked internal net in the 10.x.x.x A-class. Note that the Dell monitor to the left is connected to the iMac and displays an extended desktop.

Both XPs run under Parallels desktop for Mac, both run in “full screen”, which means they’ll take the full monitor they happen to be on when you go to full screen. Working this way is just like two separate XP machines, except I only need to use one keyboard and mouse. Pretty darn neat. Naturally, you need at least two full XP licenses to do that, but go get an MSDN Pro or MSDN Operating Systems subscription and you’ve got more than enough licenses for this.

For a full screen shot of the two XPs side to side, click this link. (The Dell monitor has lower resolution, which explains why the left XP image is a little bit smaller than the right one.)

When I travel to a customer’s site, I copy over the files for an XP instance to my portable, a MacBook, and when I get back I copy it all back. For instance, I went to a customer site, had them install and set up an SQL database on the XP on my MacBook, came back to my office, copied it back and now the XP running on my iMac has that database installed and set up. It’s the same XP instance. No need for reactivation or anything, XP doesn’t notice the move.

Even more interesting is that I don’t even need to shut down and boot XP. I can leave it open in Visual Studio, for instance, on the iMac, close Parallels, move the files to the MacBook, start Parallels, and I’m still in Visual Studio in XP, right in mid-keystroke, so to speak.

But, there’s a problem.

Both my iMac and my MacBook are dual core Intels and both have 2 Gb RAM, max for these models. If I run two XPs on the iMac, the memory allocation looks like this:

Activity monitor showing memory use

Now, that’s a whole bunch of read paint. And most of the rest is yellow. The two XP instances have 512 and 768 Mb RAM allocated through Parallels, which isn’t all that much for XP, but it is really more than can be handled in 2 Gb of RAM. As long as I do nothing else on the iMac, I can work comfortably this way, but as soon as I try to run NeoOffice or Firefox, for instance, things get real slow. The machine starts thrashing the disk and switching between programs can sometimes take minutes.

I needed a plan to get out of this situation, a plan that definitely does not involve Dell, HP, Lenovo or any of those people. Stay tuned.

And your point is…?

Place: Windows XP SP2. Event: I’m opening “My Computer”, selecting a mapped folder on my in-house NAS, rightclick one of the backup files I have there, intending to copy it, and I get this popup:

Strange windows popup

Now, it’s a backup file, not “a page”. I’m not even surfing the net here. How can the file¬† have “an unspecified security flaw”, and what am I supposed to do about that?

Yes, I’m back into Windows again, having got a development gig based on Windows. So I’m sure you’ll get more whining from me about things like this in the near future.