Macbook Pro (16″ 2019) quick review

I just upgraded yesterday to one of the new 2019 Macbook Pro 16″ models:

  • Macbook Pro (16″, 2019), 3072 x 1920 pixel display, 2.4 GHz 8-core i9, 64GB 2667 MHz DDR4 memory, 2880 x 1800 pixel display, AMD Radeon Pro 5500M GPU with 4GB of GDDR6 memory, 1 TB solid-state drive

    US$4120 list including Apple Care (about US$3800 after the education discount)

The only other upgrade option is an additional 4GB GPU memory for US$100.

My computer for the last seven-plus years and my basis for comparison is a mid-2012 Macbook Pro:

  • Macbook Pro (15″ Retina, Mid 2012), 2880 x 1800 pixel display, 2.3 GHz 4-core i7, 16 GB 1600MHz DDR3 memory, 256 GB solid-state drive

I did 100% of my work on Stan during that time using this computer and overall, it’s been the best computer I’ve ever had. But my old computer was dying. The screen was so burned in I could read last week’s xkcd (I never got the replacement during the recall). The battery was so shot it’d go from 30% power to auto shutdown in the blink of an eye.

I have no idea what’s available in the Windows PC or Linux world for a similar price. It probably comes with 32 cores, 256GB memory, and also acts as a hoverboard. For comparison, while working at Bell Labs in the mid-1990s, I once spent US$7200 for a dual-boot Linux/Windows XP Thinkpad with a super high-res monitor for the time and enough memory and compute power to develop and run our speech recognition code. So while US$3800 may seem outrageously expensive, the bigger picture is that really powerful computers just keep getting more affordable over time.

Form factor

I bought the new computer sight unseen without paying too much attention to anything other than that it had 8 cores, 64GB memory, and an escap key. I was expecting something like a PC gamer deck. Compared to my previous machine, the cases are exactly the same size and the machines are the same weight at least insofar as I can tell physically without reading the specs. It’s even the old silver color, which I strongly prefer to the space grey.

I like that the apple on the lid doesn’t light up.

Ease of upgrade

Apple makes it super easy to move everything from an old machine. Once I entered enough passwords on my menagerie of Apple devices, it took less than 2 hours to transfer everything from the old machine to the new one via my home wireless network.

The only software I’ve had to upgrade to get back to working on Stan is Xcode (the C++ compiler). And I did that just from the command line using this one-liner:

> xcode-select --install

Hats off to Dirk Avery for his blog post on Catalina, Xcode, and Homebrew.

It really was that easy. The entire Stan developer toolchain just works. R, RStan, etc., all just ran once I ran the above command from the terminal.

The keyboard, touchpad, and touchbar

There’s an escape key. I’ve been using emacs for 30+ years and it’s a big deal to me and others like me.

Keyboards matter a lot to me. I’m a very fast typist—around 100 words/minute the last time I tested myself on transcription (two years of school, part time jobs as secretary and keypunch operator, followed by tens of thousands of adult hours at the keyboard).

Overall, I consider this keyboard a downgrade from my 2012 Macbook Pro. I had the same problem with ThinkPads between 1996 and 2010—the keyboards just kept getting worse with every new model. At least the new Macbook Pro keyboards are a lot better than the very-short-throw, low-feedback keyboards used in the time between my 2012 Mac and the new 2019 ones.

The touchpad is huge compared to the old machine. I was worried I’d be accidentally hitting it all the time because I set it to use touch rather than click, but that has thanfully not happened.

The touchbar’s fine for what it’s there for. Its default is to display the only controls I ever used on the old computer—volume and brightness.

Display

Together, the keyboard and display are the most important parts of a computer to me. I’ve always prioritized displays over CPUs. I bought a first-generation Retina Macbook Pro as soon as they were available.

The monitor in the 16″ Macbook Pros is impressive. After using it for a day, the color on all my other devices (previous computer, iPhone, iPad) now looks off (specifically, blue-shifted). Sitting next to each other at max brightness, one might think the backlighting was broken in the old monitor it’s so dim.

Even though it’s not that much bigger, having spent 7 years on a slightly smaller one, this one feels a fair bit bigger. They squeezed it into the same form factor by reducing the bezel size. There are also a few more pixes.

Is it faster?

Yes, much. I haven’t done any formal measurements, but with twice as many cores, each of which is faster, and much faster memory, one would expect to see exactly what I’m seeing informally—the Stan C++ unit tests compile and run more than 50% faster.

Not much compared to the PC heyday when every 18 months saw a doubling of straight-line speed. But enough to be noticeable and well worth the upgrade if that was all I was getting.

I haven’t tried any GPU code yet. I wouldn’t expect too much from a notebook on that front.

64 GB?

It wasn’t that much more expensive to fully load the machine’s memory. This means we should be able to run 8 processes each using nearly 8 GB of memory each.

Ports and dongles

There’s a headphone jack on the right (instead of left as it was on my old computer) and two USB-C jacks on either side. I just plugged the power into one of the ones on the left and it worked.

Ports and dongles are the great weakness of Apple-knows-best design in my experience. I’m going to have to buy a USB-C to HDMI dongle. I really liked that the 2012 Macbook Pro had an HDMI port.

I’m also going to have to figure out how to charge my iPad and iPhone. I prefer to travel without the iPad-specific wall wart.

Apple seems to think they get points for being “mimimal”, flying in the face of every review I’ve ever read of an Apple product. So here you go Apple, another negative review of your choice in the port department to ignore.

Am I an Apple fanboy?

I certainly don’t self identify as an Apple fanboy. I use exclusively Apple products (Macbook, iPhone, iPad) primarily because I’m lazy and hate learning new interfaces and managing software. My decision’s being driven almost entirely from the Macbooks because I want Unix on my notebook without the incompatibility of Cygwin or administrative headache of Linux on a notebook.

It’s clear the Macbook isn’t getting the most love among Apple’s products. I also resent Apple’s we-know-best attitude, which I blame for their cavalier attitude toward backward compatibility at both the software and hardware levels. It’s no surprise Microsoft still dominates the corporate PC market and Linux the corporate server market.

Overall impression

I love it. For my use, the 8 cores, faster 64GB memory, and the high resolution and brightness 16″ monitor more than make up for the slightly poorer keyboard and reduced port selection.

I also ordered the same machine for Andrew and he’s been using his a day or two longer than me, so I’m curious what his impressions are.

17 thoughts on “Macbook Pro (16″ 2019) quick review

  1. Bob:

    I like the real estate on my new computer: more square inches, and also the higher resolution allows a smaller font so now I can see a lot more work at one time on the screen. When I go back to my old laptop, it looks like kindergarten.

    I was able to run Stan right away, no need even for that xcode thing that you mentioned in your post. I haven’t tried to run any big models yet so I can’t comment on speed.

    The transfer from my old laptop went pretty well, but something happened with the mail utility, and most of the emails in my Sent mailbox have disappeared. So that’s annoying.

    • You must’ve had a later OS and/or version of Xcode than me when you started. I was still running High Sierra.

      You might be able to recover sent mail. My sent mail is stored remotely, so I can recover it anywhere.

      There are 6.66% more pixels each way, but the display size only jumped from 15 3/8″ diagonal to 16″ diagonal. As a result, the pixel pitch went up from 220 pixels per inch to 226, which is just a bit higher resolution.

    • That’s what Intel’s “hyperthreading” reports (double the number of actual cores) and what RStan’s start message suggests one do (let R discover the cores, at which point Intel reports double the number actually available). The optimal amount of parallelization for maximizing throughput depends on what’s being run and will be particularly sensitive to memory issues. I’ve found with my last Mac with 4 cores (8 if you belive Intel’s chip) that 5 parallel processes during the Stan make process was just a bit faster than 4 and 6 was slower than 4.

    • It may actually slow things down due to cache coherency issues… basically you have to share the cache between 16 processes instead of 8 so you tend to have less cached, and more cache misses, requiring more context switches, and invalidating more caches… so before you go doing that, check to see if it helps or hurts.

  2. I’ve been wondering about this laptop myself (for non-linear DS models, by comparison – I have a 20-core, 2 GPU, 64GB tower – 2014 tech on board) .

    The form factor with GPU, m2 SSD, and core i9 are definite attractors, as is the screen real estate if I happen to be remote (I usually work with 27″ (x3) monitors – easier to see things with crappy vision).

    I work only with MS Win bc of certain apps that force me into that – so my use of cygwin is although critical, it is minimal for local development (i use it for remote connections to *nix servers). I prefer Linux because of the control I have over the environment (and a few distros like Mint do help me with the admin part that I would rather leave the time and resource to another person).

    My understanding from https://support.apple.com/en-us/HT210754 is that the laptop has 4 ports which frees 3 for monitors and the 4th to a hub for accessories. I suppose I could live with the multiple adapters I’d need to connect to DisplayPort or HDMI-based monitors. But then if I’m spending $4k for a new MacBookPro, then I should have a reasonable excuse to get 3 new hi-res monitors. Maybe the curvy ones … all of the cool kids are using them … hmmm.

  3. Contrast this super-laptop to the one I have for easy / quick on the go stuff, which is a low end very light weight Acer. I was recently on vacation and needed to run Stan from rstan to do some stuff for a talk I was putting together… and … it couldn’t compile even the simplest model to analyze 30 data points without me quitting all programs other than R and emacs due to running out of memory (8 GB RAM). Now, I don’t think this is entirely Stan’s fault, but basically Stan produces C++ that requires g++ to do a lot of work, and so without sufficient RAM you are SOL.

    Now, it seems like in an ideal world it shouldn’t require 3 or 4 gigabytes free to run a statistical model with 5 or 6 parameters on 30 data points. I wonder if the next generation OCaml based compiler will output backend code that requires less overhead to compile?

    • Also note that once g++ chewed on the code for like 3 or 4 minutes and spit out the few hundred kB of object code, the model ran and produced output in a few seconds that required only a few megabytes of RAM probably. And I don’t think it was the Stan front-end that needed excessive resources, I’m pretty sure it’s just g++ on the back end.

    • Stan leans very heavily on the C++ preprocessor for templates and on the optimization pass of the compiler to generate efficient code. What we really need for this situation is an interpreter.

      You may be able to squeeze more mileage out of clang++ (it runs faster than g++ so maybe it uses less memory) and by using an optimization level other than -O3. I really don’t know where the memory’s going—if someone knows a quick fix, please let us know.

      Our best bet for cutting down compiler overhead on a per-program basis would be to precompile more of the math library. We already compile the interface and sampling libs for CmdStan ahead of time. With a small notebook, the bottleneck will be that precompilation of a reusable object file.

    • It would be good for us (the Stan org) to have a tutorial on how to run Stan using AWS or some other cloud thingy so that users can run their Stan programs remotely and fast at reasonable cost. so that this won’t be an issue, at least for people who are willing to pay a few cents per model or however it is that AWS etc do their payments.

      • I’ve had great success using Digital Ocean firing up a cloud-based server (you can select as many cores as you like and whichever OS but it becomes expensive for big specs), they have pre-built and maintained server images with R Studio Server etc you can just deploy, although no defaults with Stan as far as I know (yet). But once you’ve set it up once you can save the image and redeploy it when needed.

      • CoCalc provides a very easy way to run RStan (and maybe other flavors) on a remote server. If the free level doesn’t do the trick you can pay to use more resources. I have used it for R but not for Stan, and did not run against limits at the free level of resources, but then I wasn’t doing anything big. It’s possible to pay for more resources.

        This is not an endorsement — I haven’t used it nearly enough to know how good it is — but rather just to inform people that this option exists.

  4. Bob Carpenter wrote:
    I have no idea what’s available in the Windows PC or Linux world for a similar price.

    Well, having had to upgrade my PC recently, I am familiar with the Lenovo configuration page for the Thinkpad P1. For $3950, you get something roughly comparable to your new Macbook.

    Specifically, Intel i9-9880H (8 cores), NVidia T2000, 4 TB SSD, 64 GB RAM, 3840×2160 display. You could save a few hundred dollars if you bought the second SSD and RAM separately and installed it yourself.

    If you drop the SSD down to 1 TB, the price falls to $3100.

    Source: https://www.lenovo.com/us/en/laptops/thinkpad/thinkpad-p/P1-Gen-2/p/20QTCTO1WWENUS0/customize

    Bob

  5. Rocking a ~2013 13″ MBP, and I really want the 13-14″ version of this exact machine. I’ll even take a step down to 32GB of RAM if I need to. Having moved from a 15″ to a 13″ on that generation, I really don’t want to haul around those extra few inches/pounds again.

Leave a Reply to Bob Carpenter Cancel reply

Your email address will not be published. Required fields are marked *