Apple macOS M1 as a startup platform.
By: Uki D. Lucas
Tags: Linux, Mac, M1, Apple, Microservices

In this post, I am considering an emerging alternative to fulfill the computational needs of the modern company, the Apple M1 platform. This post is written from the machine learning developers’ point of view.

Most of the “cloud” servers run on the Linux operating system. Linux is primarily a command-line platform. You can cut down on a lot of computing power if you connect to your servers via a command-line terminal (i.e. ssh) to send all instructions as text. This works computational wonders, and it is very stable. Linux rules in this arena, and it is the king of the “cloud”.

I have to mention a “little lie” about “cloud” computing. There are many free instances of virtual servers and there are free online hosts for your Jupyter notebooks. I have tried and benchmarked many and they kept me wanting. My local computer was always easier to use and faster, especially when considering massive data transfers.

Then, there are instances of the powerful NVidia GPU-enabled servers for machine learning training, but they are super expensive (few bucks per hour which adds up quickly). Except for some specific cases, you might want to consider setting your own training machines, especially if you train your models regularly. The valid exceptions might include training using super-powerful Google TPU servers that are not yet available locally to us, mere mortals.

When you actually try to do work on Linux using it as a personal computer, the problems start accumulating fast. I am currently using various Linux distributions varying from multiple, yet humble, Raspberry Pi, edge-AI NVidia Jetson, a dual-boot Linux and a Windows with Ubuntu subsystem, to a dedicated Linux tower with NVidia GPU for machine learning training. There will be plenty of readers at this point to say that they use Linux on a daily basis and it works “fine”. I trust you, I will not try to steer you away. It is my personal observation the Linux PC still sucks.

On the opposite end of the spectrum are countless legions of corporate employees using the Windows operating system. Windows offers the graphical user interface (GUI), and notably, Windows does have an installable application for every work task, however dubious in its implementation quality.

If you hire a person and pay them tens of thousands of dollars each year, if not much more, then maybe you should give them the best choice of a computer, for the equivalent of $8 per working week. Sadly, corporations are in love with Windows PC, the rationale that has always escaped me.

Let me elaborate on the subject for a second.

Ever since I lived and studied in Japan, I marveled at certain aspects of that culture which permeates many aspects of their life. For example, I love traditional Japanese (and Chinese) wood joinery. They were able to build items ranging from furniture to buildings that are beautiful, often delicate, yet are able to withstand centuries of daily use in the earthquake zone, all of that without any use of glue or metal fasteners. One of the secrets of the Japanese master builders is the tools they use, and the time they spend to care for them. In a great simplification, they always keep their tools sharp.

To be fair, you do not have to travel to Japan to see the same, many European masters would tell you the same. Even our own Abraham Lincoln said, “Give me six hours to chop down a tree and I will spend the first four sharpening the axe.” This idea pertains to both, the tools you use, as well as to your mental attitude.

I have to admit the guilt here, I have been a Mac user since 2001. I have also been lucky to attend many technical conferences in both Chicago and California, and whereas, at first, Macs were a rarity, but starting at around 2009 majority of the attendees were sporting Macs. These people were representing the technologists (many from Apple and Google) and many startup employees.

In 2020, Apple released the ARM-based, AI-accelerated M1 chips and the new Mac OS. The M1 is currently faster and by far more efficient than traditional Intel and AMD personal computers of a comparable cost.

The following question started to nag me, do I need to use a separate PC or a MacBook to write software and then to deploy the code on a Linux box, or can I do both using Apple Mac Mini M1?

The Apple Mac Mini has by far the best cost-to-power ratio, not to mention the stability, security, and beautifully manicured software.

If I was just hanging around the old-school corporate world, I might think that Windows 10, however an excellent improvement, is the pinnacle.

After two decades of shuffling Linux, Windows, and Mac on regular basis, I am already sure that the macOS is the best platform to do software development which was also proven true by Google, and some other 46,715 companies (look it up).

In addition to running your traditional programming languages such as C/C++, Java, Python, now I have a choice of Julia and Apple’s own Swift.

What I love about macOS that it is a UNIX compliant operating system with the bash shell Terminal as a first-class resident and not an afterthought.

Image lifted from greenminihost.com (no affiliation)

I imagine the next startup getting a stack of Apple Mac Mini and running them right from their office closet, as a micro-service center, or edge devices, cracking up the data and running neural networks without breaking a bank, power consumption cost, noise, nor heat.

I think the era of inexpensive multi-AI core computing is upon us. I am betting on some combination of Apple M1 hardware, macOS, and a language designed for math, AI, parallelism, and multi-process processing such as Julia.