So I’m currently at a coding Boot Camp that’s call General Assembly. On day 0, they strongly suggested that we get a Macbook for use in the course. Now most people already have Macs at their disposal, and truth to be told they aren’t that expensive for what they are. When I started there I had neither a Macbook to start or money to buy one (General Assembly’s Tuition saw to that). While you can certainly do the entire course on a Windows machine, the workflow is ridiculous and the pathing is different from UNIX. But 1k is not chump change by any stretch, so I wanted to see how life is with a Windows machine.
I didn’t make it past Day 0. It horrible enough to make me want to drop all my lunch money on a crappiest Mac that I can find so I wouldn’t have to deal with the weirdness on Windows for 12 weeks and maybe longer. But then I came the slow realization that I don’t particularly need a Mac, not the hardware at least. I needed its Software.
Apple’s Hardware design is super sexy and almost timeless. Machines from 2008 (11 years ago), still hold up very well today in terms of looks. The touchpad is second to none and absolutely humongous on the latest machines. Battery life, while not as far and away as it used to be, is phenomenal and screen quality always impresses. This is all fine and good, but how does this relate to Machine Learning in which our Data Science course works in? It doesn’t. Sure, quality of life stuff and Mac are just better, virus free, cancer free and doesn’t have any growth hormones in it, but we don’t actually need it. In fact, I’d argue that it is worse for Machine Learning, hardware wise at least.
As of 2019, the Macbook Pros have been refreshed to use the latest and greatest. This is true for CPU space, which is naturally important for many machine learning models. The top spec CPU available for the 15 inch Macbook Pro is the i9 6 core, which turbos all the way up to 4.8 GHz. Hot dog right? Not exactly, it certainly does hit that turbo for a short amount of time. But a lot of machine learning models run Grid Searches, Random Search, Neural Networks and more. These run for a very long time if you configure them so, and they’re also sometimes multi threaded, meaning they run on all the cores and use them to their maximum capacity. Besides making your computer chug, it introduces another problem: heat. Apple has tuned their Macbook Pros to be spaceship like nearly silent. But how? How does Apple achieve such high clocks in such a small form factor? It doesn’t. It thermal throttles.
For the uninitiated, thermal throttling is what CPUs do when they reach a certain temperature. When that temperature is reached, they downclock to hopefully get rid of the heat over time. (Phones actually do this as well, but Apple thermal design there is leaps ahead) So in actuality, Macbooks only run at 2.9 GHz or less when the threads are saturated. Independent testing from reviewers have revealed that the CPU fan spins up to audible sounds in the high 90 degrees Celcius. That can nearly boil water. Apple has actually tuned the Macbook to run as silent as possible at the cost of computer life. Realistically speaking though, the CPU is not likely to die first. The components on the board are likely to fail before that from the heat and the flexing of the PCB from the heat.
I also noticed that a lot of Mac users like to keep their laptops on top of their laptop sleeves. That is a huge no no. The sleeves acts as insulation and can block air intake into the system to flush it out. Again, this kills the system’s life overtime, particularly the components and battery.
Another big issue that I have with MacBooks is their switching to AMD GPUs. While this is only found on the 15 inch or the iMac, this is an huge issue for Keras for Neural Network work. Keras only supports the GPU architecture from Nvidia and not AMD. This means that anyone who bought a high end Mac will have either code thing manually without Keras or buy a external GPU which means more moola you’ll have to fork over.
I personally think that Apple design is beautiful, but in my personal opinion they aren’t suited for sustained loads that Machine Learning has.
So how do we solve the software bit? Install a Linux Distribution. What does that mean? A Linux distribution is an Operating System that uses Linux as a kernel (yes, linux is a kernel not an OS). My personal favorite right now is Linux Mint, which uses Ubuntu as a base, meaning all packages meant for Ubuntu will work for Linux Mint. Other distributions (or distros) are elementary OS (Mac like), Arch Linux and Fedora. All of which can take MacOS’s place in machine learning. Best part is that its free. All of it. You should donate if you choose their distro, but it is not mandatory. I’d donate if I made money (which I always say but I don’t).
Nearly all code that works on MacOS will work on Linux. So there is usually no library problems when moving when working here.
So luckily for me, I own gaming equipment which can be used for Machine Learning. So nearly all the hardware I used to pwn n00bs can be used for Tensorflow on my Convolutional Neural Networks. Just kidding, I’m the noob that got pwned.