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.
See Taking advantage of Apple M1?
in short, I would say that the CPU part is super smooth but the GPU programming is not as mature as for other vendors.
Thank you for your suggestions. I have already purchased a Macbook Pro, and I will see how well it fits into my workflow.