Do I Want a Mac Pro?

I need to reconfigure the computers on my desk somehow, and I don’t really know that much about hardware. I think I want to ask Mozilla for a beefy Mac Pro, but I wanted to get opinions from my knowledgable readers first.

Random related question: are VMWare shared folders a lot slower on a Windows guest than a Linux guest? I’ve been using shared folders in VMWare Fusion to share a single mozilla source directory between multiple VMs, and this works really well with Linux guests and very poorly with Windows guests.

Type

Processor(s)

RAM

Disk

Current OS

Desktop – custom-built

Athlon64 3200+

1G

WD Caviar – 200GB 7200RPM

Linux – FC4

Desktop – Dell Dimension 9100

Pentium D – 3Ghz (dual core)

4G

WD Caviar – 250GB – 7200RPM

Windows XP

Laptop – Macbook Pro 15″

Core 2 Duo

2G

100G 7200RPM

MacOS10.4

Atom Feed for Comments 13 Responses to “Do I Want a Mac Pro?”

  1. Stuart Parmenter Says:

    I recently was trying to decide what new machine to get. I looked at the high end Dell machines as well as the Mac Pros and decided both were overpriced and had numerous downsides (the super old video card options of the Mac Pro for $1500!).

    I ended up building my own machine. Some observations:

    I started off with a 10000RPM SATA WD Raptor drive but it wasn’t _that_ fast and it died after two days. I ended up switching to some Seagate 7200.10 500gb drives (7200rpm) and they seem to be working well and are nearly as fast. For optimal performance you should use raid0 with multiple drives. raid0 means if any drive in that array dies though, you’re whole array is toast so you might want to do something like use 4 drives and use raid10.

    If you want to use more than ~3GB RAM you’re going to need to to run Vista 64 which I’m running now without many problems.

    As for compiling on Windows, that is slow for everyone. The problem is our build system. Before we moved to gmake, crazy dependencies, etc our Windows builds used to be significantly faster than all the other platforms.

  2. Stuart Parmenter Says:

    I should also note that I opted for a 3ghz E6850 core2duo CPU over the 2.4ghz Q6600 or 2.6ghz Q6700 for the extra speed even though you should be able to overclock both of the quad processors up to 3ghz without much trouble. The Q9450 is due out sometime later this year which might be the way to go. For doing parallel builds quad processor might be good.

  3. Bob Clary Says:

    Windows XP limits processes to 2G unless you enable 3G support via a boot.ini option and compile the program to enable the use of 3G. On my WinXP box with 4G physical ram, it only sees 3.25G.

    I bet your windows slowness is primarily due to using a SMB shared folder and possibly contention between simultaneous builds. Can you mount it using NFS or better yet move the trees to separate physical disks? New SATA 7200 drives with large caches on separate controllers would be fast enough I bet, especially if you had a separate drive for the host and each guest.

    I find that running VM Server with a Fedora Core 6 guest on a WinXP host significantly slows down my simultaneous builds on my Dell Precision 650 with dual 3.06Ghz Xeons. It could be either the cpu load (which pegs 100%) or the really old slow disks (~20MB/s). I am about to convert my Dell to Fedora 7 and use that as the host for WinXP VMs. I wonder if the newer kernels would help out with respect to scheduling as well. I’ll let you know how that goes if you are interested.

    On a different note, what is the policy with Mozilla provided hardware? I have a Mozilla provided Mac Mini with 512K (ha!) and personal Dell Precision 650 (4+ years old) and an IBM Thinkpad T42 (3+ years) old. Can I have some killer hardware too? :-)

  4. Shane Caraveo Says:

    I have a quad core mac pro with 1gb and 1tb hd. I find building mozilla for osx a breeze. I use vmware for other platforms, limit them to 1 cpu and 786mb memory, building there is not so fast, but I tend to set them building and work on other stuff in osx.

  5. Odders Says:

    Well, to answer some of your questions:

    – To run all 3 OS’s (at reasonable speed that is), yes, you will need an Intel Mac. The only way to run Mac OS on a regular box is to use PearPC (http://pearpc.sourceforge.net/), which is ridiculously slow.

    – The 7200RPM discs are goin to have a very minor impact on speed. To see the difference, compare a few common drives here (http://www23.tomshardware.com/storage.html) and see the difference.

    – From what I remember, and this isn’t gospel, Windows is able to use up to 4GB on any application in it’s 32bit flavours. Been quiet a while since I really had any reason to look into that though…

    Keep in mind you can use parallels (http://www.parallels.com/) as an alternative to VMware on the Mac too. I havn’t looked at VMware for a while, and while I’m pretty sure it makes use of virtualisation on multi-core chips, be sure check out parallels for Mac as well, becuase it’s virtualisation performance is unreal. It has tons of cool features too (ie, you can boot into Windows natively using bootcamp (http://www.apple.com/macosx/bootcamp/), as well as virtualising that exact same partition along side OS X VMware style).

    BTW, thanks for your work on XULRunner, I love it :)

  6. fredrik Says:

    If you want OS X without hacks you do need Apple hardware. For better HDD performance, there is an Apple-branded RAID card but it’s expensive ($999) and not very impressive. HighPoint* has a couple products, but for the Intel-based Mac Pros it looks to be mostly with external ports, not internal.

    The HDDs will always be the bottleneck these days. It may be possible to add e.g. 4 drives to the Mac Pro and configure 2 in a RAID0 array and the other two in RAID1 (speed for build directories etc. and redundancy for the important stuff). But I’m not sure if that’s really possible, I just know the Intel chipset hardware has that type of functionality.

    For the Macbook Pro, find an external drive that has a Firewire interface. It’s faster than USB and better suited for moving large amounts of data (peer-to-peer protocol whereas USB is master/slave and interrupt crazy). There should be quite a few enclosures with Firewire support. Couple that with a fast drive and it should do the trick.

    [*] http://www.hptmac.com/

  7. Coop Says:

    >For some reason, compiling on the Windows box is really slow.

    I’m sure you’re probably already doing this, but building on FAT partitions is faster than on NTFS, although still slow comparatively speaking to the other platforms.

  8. jens Says:

    read about the 3GB here http://www.gehrytechnologies.com/catia/catia/catia_windows_large_memory.htm

  9. Matthew Gertner Says:

    I have a quad core (2×2) Mac Pro at home with 2Gb RAM and a single 7200rpm 500Gb disk. It’s blazing fast for things like transcoding video, but I haven’t done any builds on it yet. That said, I’m planning to set up a build environment so if you want any hard statistics before buying, I’d be happy to test on my machine. I’m planning to set up Parallels as well this weekend.

  10. robcee Says:

    Lots of differing opinions here, but I think it largely depends on what platform you use to do the bulk of your work and how available you want OS X to be. If you do most of your work in OS X, then I think the Mac Pro’s the way to go. If Linux or Windows, go with a Dell or build your own (with Stuart’s help, of course).

    If you do most of your work in Windows, I would suggest getting the beefiest Windows box you can get. The Q6700 is a great chip and will give you 4 cores. RAID0’s a little scary, but you can get some fast external (Firewire800, eSATA) enclosures that will give you that if you don’t feel like messing around with on-board RAID or cards. If you’re using them strictly as a build drive, the loss of one of the drives wouldn’t be too crippling.

    I don’t think the “old” video cards in the Mac Pros is a particular detriment to them, or at least not sufficient a deterrent to prevent you from getting one. The ATI1900 is a pretty decent video card. Lacking DX10 support is really only an issue of you’re going to be running Vista with it. It’s sufficiently fast and beefy for desktop work.

    Lastly, the fast portable drive issue. I keep a little laptop-sized firewire drive around which I can rsync my project directories to for transport. It lets me move my work environment with me. VMWare Fusion on the Mac will run VMs from VMWare Workstation (and ESX images) which for us is a bonus over Parallels.

    I don’t know if this is helpful or adding more confusion. :)

  11. Alan Says:

    Hi Ben. Some random thoughts:

    * Yes, VMware Shared Folders are much faster (~40%) on a Linux guests (if using Workstation 6). See http://blogs.vmware.com/performance/2007/05/improved_perfor.html for details.
    * I’ve seen slow-downs for debug builds on Windows due to the way Visual C++ creates .pdb files. By default, all compilation processes will write to a vc80.pdb in the same directory as the .obj file. AIUI, this can prevent parallelism.
    * 7200 RPM drives are somewhat slow. But you can improve things by putting each VM on a separate drive. Putting two 7200 RPM drives in RAID 0 will make things even faster. Maybe just do this for builds. Or do it for your OS, but make frequent backups.
    * Use pre-allocated virtual disks in VMware rather than virtual disks that grow.
    * Software RAID works great on Linux (generally faster than hardware RAID). I don’t know about OS X. Never use RAID 5—performance is terrible.
    * Try creating a RAM disk for builds. Or use Gigabyte’s i-RAM (battery-backed RAM).
    * Get as much RAM as you can. It’s cheap and you can use it for RAM disks (see above). But don’t buy it from Apple. It’s much cheaper to buy a good brand like Kingston or Crucial from Newegg.
    * Get as many cores as you can. For doing builds on three platforms and running VMs, even 8 cores isn’t enough.
    * If your CPU supports VT (all recent CPUs do), use kernel 2.6.20 or later for Linux guests and enable VMI: http://www.vmunix.com/mark/blog/archives/2007/07/07/a-quick-look-at-paravirtualization-support-in-vmware-and-linux/
    * The Pentium D is a terrible CPU (like all Pentium 4s). Get rid of it. A 2.0GHz Core 2 Duo is much faster than a 3.0GHz Pentium D, and should actually cost less when you factor in the cost of electricity.
    * Use the VMware “any-any” patch if you have trouble compiling the kernel modules on a recent Linux host: http://ftp.cvut.cz/vmware/
    * 64-bit Windows should be faster than 32-bit Windows.
    * I’ve seen people report FAT32 being faster than NTFS (~10%), but I don’t know if this is still the case with modern drives and large volumes. I always have reliability problems with FAT32, so I never use it anymore. You may be able to squeeze better build performance out of NTFS with a different cluster size.
    * 64-bit Linux should be faster than 32-bit Linux.
    * Reiserfs is much faster than ext3 for small files. I don’t know if this makes a difference for builds. I almost always use reiserfs.
    * The best way to add a super-fast disk to the MacBook Pro is to buy an enclosure, plus a drive to go in it. Firewire 800 is fast and simple. eSATA may be slightly better, but you need an Express Card for this. Some enclosures may support both interfaces. 7200 RPM drives are available in 2.5″ (laptop) form factor, but will be somewhat slower than 7200 RPM 3.5″ (desktop) drives. Seagate 7200.10 drives are fast and have a 5-year warranty. Recent flash drives from Samsung and Sandisk may offer even better performance at a higher cost: http://www.tomshardware.com/2007/08/13/flash_based_hard_drives_cometh/page12.html

    BTW, great work on XULrunner and the Mozilla build system. Cheers!

  12. BSBlog » Blog Archive » Don’t dig deeper than you have to… Says:

    […] replaced Windows XP with FC7 on my fast machine last week. Compiling and linking is much faster than on Windows, and I’ve […]

  13. Andriy Says:

    Benjamin, get more RAM and make your builds faster by putting the build output directory on a RAM disk. In my case this made builds 25% faster (http://blog.mousefeed.com/2007/12/faster-build-compilation-with-ram-disk.html). My setup is on Linux though, but it should work with minimal changes on OS X.

Leave a Reply