arm64 #1080
Replies: 5 comments 5 replies
-
Thanks @philippemiron. Not sure though how to proceed with this. Perhaps @CKehl or @willirath can chip in? |
Beta Was this translation helpful? Give feedback.
-
I think ARM support would be great! To me, it looks like there's two separate parts to the problem: Scipy mode and JIT mode. Here's how I'd proceed for Scipy mode: Build an env that includes all dependencies except for parcels and the compiler packages (see this env file for a starting point) and then manually install Parcels as described in the installation docs for Parcels. As I believe all of the dependencies needed in Scipy mode are available on for ARM, this should allow for running Parcels in Scipy mode (ie without just-in-time compilation). And for JIT mode: When running experiments, Parcels creates C-code and writes it to one or more temporary files. Then, it calls the C compiler and creates shared object files which are then loaded (not sure about the details here). Currently all is pretty hard-wired for GCC on X86 systems. For getting a feeling for how difficult it will be to also support ARM, I'd grab these C-code files and try to compile them on the M1. If this is working, the adaptions for finding and configuring the compiler and for compiling on ARM at runtime will be relatively simple. Pitfalls: As Parcels was so far almost exclusively developed and used in the GCC / X86 / Unix world, I'm sure there's a few obstacles to overcome to even import it in the ARM env:
|
Beta Was this translation helpful? Give feedback.
-
Hi, Thanks for your feedback. I agree to try getting it run on SciPy mode first. If you get that to run easily, then that's fine - if not, it's not worth thinking about the fast JIT-mode. Thing is that our dependency packages (which themselves are build on C/C++ libraries - good to remember that they are always the base) depend on the conda-forge provided version. That has to to with format compatibility (e.g. HDF5, NetCDF) and also compiler compatibility (e.g. the For JIT-mode, procedure would be like that: if SciPy mode works (pre-requisite) then it depends a bit on what compiler-package you get. To my knowledge, Hope that helps as feedback. Christian |
Beta Was this translation helpful? Give feedback.
-
Hi everyone, Reporting what I have done so far: For the installation, the only missing package in the
You all know better than me where this is used in Parcels, but for now, I commented it from the env file to test further. Modifications to the environment file: I then went to try running a few tutorials using ScipyParticles: Although, when running examples/tutorials using JITParticle, I get the following error:
and a kernel crash. I saw that @erikvansebille was running into a similar error #1054 but in his case, it was non-fatal and would disappear after installing mpi4py (installed here). Any suggestions on where to go from here? |
Beta Was this translation helpful? Give feedback.
-
Latest update on this discussion (storpipfugl/pykdtree#61). |
Beta Was this translation helpful? Give feedback.
-
Hi everyone,
I got a new computer, and since it comes with Apple Silicon (M1 arm processor), instead of an anaconda/miniconda install, I went with miniforge, which supports various CPU architectures. It looks like packages have to be added to the https://conda.anaconda.org/conda-forge/osx-arm64 to be supported.
I don't know how much work is involved in porting the current code, but I wondered if this is a plan for future updates? I could help with testing/porting if necessary.
Cheers,
Beta Was this translation helpful? Give feedback.
All reactions