I am considering buying a Macbook Pro with M2 Pro, but I am concerned about compatibility issues, specifically with Julia, which I now work exclusively with.
For people already working with Apple silicon, are there any known issues with running Julia on Apple M processors? And are there any potential compatibility issues with other scientific computing tools, like numpy/scipy?
Hello! While I don’t own a Macbook myself, I can answer some of your questions in regards to compatibility.
For Julia 1.8, macOS with an M-series processor is considered a Tier 2 platform (scroll down to the Supported Platforms section), meaning that some tests may not currently pass, but a native binary is available and is considered official.
Julia in its current state seems to run well based on reports both here on Discourse and other social media channels, however if any issues do crop up, you can actually install the macOS x64 binary instead as it can be run via the Rosetta 2 binary translator with the tradeoff being lesser performance. Of course, containers and virtual machines are also supported, so plenty of options to choose from
In regards to scipy, it appears that native ARM builds have been supported since v1.7.3 so it should work smoothly with Julia via SciPy.jl, PyCall/PythonCall,…
I switched to M1 very early (December 2020 on my private Mac, March 2021 on my university one). First I used the Rosetta2-Intel-Julia which I did not have problems with (but I also did not use so advanced stuff as CUDA), and recently with Juliaup I automatically switched to the arm-ones. I never encountered compatibility issues.
The same for NumPy/SciPy, but to be honest, I just use them a very little bit in Teaching.
edit: Had to correct the years, since Corona and stuff made a few of my years just and indistinguishable blob.
As for compatibility with other scientific computing tools like NumPy and SciPy, there have been some reports of issues related to architecture-specific dependencies, but most of these have been resolved through updates to the packages.
The Mac ARM CPUs are very powerful (for single-threaded, even ok or good for multi-threaeded, at least the later ones). You may want to consider if the memory is large enough for you and the GPU is good enough, and note it shares the memory. So, you’re considering the shared RAM to RAM for CPU plus RAM in dedicated GPU for other computers. It’s likely lower, there are (pros and) cons to unified.