iMac Pro, current iMac, future Mac Pro for Xcode Developer

Discussion in 'Buying Tips and Advice' started by JorgAncrath, Jun 14, 2017.

  1. JorgAncrath macrumors newbie

    Jun 14, 2017
    I'm a long term Mac developer and have been on the Mac Pro from when it was called the PowerMac G4. In recent years, however, Apple has failed to deliver my new Mac Pro every 3 years and I’ve been forced to try lots of different strategies: By now I have a 2014 iMac in my office, a 2013 hex-core Mac Pro in my home office and a Late 2016 MacBook Pro 15” to roam around with.

    I’m mostly working on my MacBook Pro at the moment, but later in the summer my new home office will be ready and I’ll go back to working mostly on a desktop. I’m a 3 big screens kind of developer, so a laptop is not a great fit for me.

    Now with the new Kaby Lake iMac out, the iMac Pro due in December and the new Mac Pro some time off, I’m trying to figure out what to do.

    On the one hand, the new iMac 27” fully specced out is actually a fantastic machine trouncing all of my current Macs with 5,692 single and 19,478 multi-core performance, which is 74% faster on single, and 5% faster on multi-core than my Mac Pro.

    On the other hand an 18 core iMac Pro is only a few months away, and the new Mac Pro is certain to go even further, though it’s ETA is up in the clouds.

    I’m mostly interested in Xcode (and AppCode) performance and it is really hard to predict its performance on different architectures. I know Xcode is CPU bound, but only up to the point where the disk and the RAM can’t shovel data in and out quickly enough. I found some old benchmarks online, but there aren’t really enough to get a clear picture.

    My fully specced out Skylake MacBook Pro 15” 4-core is a smidgen faster than my Mac Pro already. The MacBook Pro has 16Gb of memory v. the Mac Pro’s 12Gb, the SSD is twice as fast, it is a good 20% faster on single core tasks but 28% slower on multi-core tasks. I would spec a new iMac with at least 16Gb of RAM and its disk is supposed to be 50% faster than the previous generation, so probably at least on a par with the 2x of the MacBook Pro.

    The question is what does all that amount to?

    As far as I can see the iMac Pro ships with at least 32Gb of memory, but it is quite possible that it has the same SSD speed. Starting at 8 cores, I’m already wondering whether even the base model can shovel the data in and out fast enough to keep the cores working. What is the likelihood of 2 or 8 additional cores being used at all?

    Looking at Intel’s range, it is clear that the more cores, the less highly clocked the CPU can be. That means that an 8-, 10- or 18-core Xeon machine is likely to get nowhere near the i7’s single thread performance.

    Does all this amount to making the i7 iMacs faster for Xcode than the Mac Pro? If so, there’s no point in waiting till December and beyond. If I’ve learned anything from 20 years as a Mac users is that prices don’t fall before a new machine goes out, so you’re best off buying as soon as it is released to get most life out of it.

    To make things worse, Coffee Lake is due out later this year and is said to offer around 30% increase in performance at the same clock speed.. but will Apple update the iMacs again before long? or leave the iMac Pro in clear air for a while longer?

    Your thoughts would be appreciated.
  2. theluggage macrumors 68040

    Jul 29, 2011
    I don't think we know the specifications of the Xeon CPU it will use yet, but desktop Xeons tend to feature plenty of internal PCIe lanes, which will help keep those cores fed with data from two internal PCIe SSD blades. However, the sort of data flows involved in development are chicken feed c.f. the sort of 8k video or pro audio that the Pro is aimed at, so I doubt that is your current bottleneck. So, I'm sure it will be great for development if cost is no object - but unless you're developing 3D/VR or video editing software there's no justification.

    ...and even with 18 cores, as you've found with your Mac Pro - single-core performance is likely to be good, but nothing to write home about.

    One thing you should do (and may have already done) is to fire up a big XCode build of the sort you've been working on while watching the CPU activity window in Activity Monitor. If it isn't pegging all 8 virtual cores of your current MacBook Pro - or at least the 4 "real" cores - then adding more cores is probably not going to make a night and day difference c.f. the generally faster CPU you'd get in a regular iMac.

    The iMac Pro is $5000 for 8-core - no info on the price of the 18-core version but if you need to ask the price you probably can't afford it. The forthcoming Mac Pro is unlikely to under-cut it (i.e. cost less than an iMac Pro with comparable spec plus a decent screen) and may be pitched higher (maybe with a higher entry-level spec... or just plain higher: Apple aren't a nonprofit organisation!)

    The reality is that Apple's new "Real Pro" range (the iMac and forthcoming but mysterious Mac Pro) is aimed firmly at Video/Audio/3D "professionals" who want Xeon, ECC RAM and compute-optimised workstation GPUs. A better fit for a general developer would be a Mac Mini with a decent quad-core i7 - or a straightforward microATX i7 mini-tower (which would make most people happy except, possibly, Apple's shareholders). Don't hold your breath.
  3. JorgAncrath thread starter macrumors newbie

    Jun 14, 2017
    You can tell Xcode to use x cores for a build when you run it off the command line and I've done that on both my 6-Core MacPro (blue) and the 4 core MacBook Pro (red). The X axis is the number of virtual cores and the Y axis the number of seconds for the complete build.

    As you can see the second core almost halves the build time and further cores make progressively less difference. Essentially past 6 cores the lines flatten out.

    The thing I don't know is what the limiting factor is. Is it that Xcode does a lot of things in single threaded mode? Is it the SSD limit being reached? RAM?

    As you suggested I've just now kept a close look on the activity monitor during the builds. The CPU usage on both goes up to around 90%-95% but within the build rises and falls a few times. The pattern is more ragged on the Mac Pro, which means it has more trouble supplying the cores with extra work. However, there is neither memory pressure, nor anything close to 100% IO write or loads on either machine. The cores are sitting there, but not doing much.

    Not sure what to make of that. Could the speed of the RAM be the limiting factor, i.e. when the on-chip cache fails and more roundtrips to actual CPU are made?

    I've read somewhere that Xcode keeps source files in memory for the most part. I suspect that the signing and copying of resources might account for a lot of the actual build time..

    Attached Files:

Share This Page