Underworld2.16.4-ompi can't mpirun on Arm64 Macbookpro
Sir, I am attempting to run my code using mpirun on my MacBook (Apple Silicon, ARM64) with the Underworld 2.16.4-ompi Docker image. However, I encounter the following warning and error WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8).
...
Is this issue caused by a lack of ARM64 platform support in the Underworld image, or am I using it incorrectly?
Hi @HonghaoXiong,
Can you try the underworldcode/2.16.4-mpich. I know this one works for me. Let me know the result.
I'll investigate the ompi version now.
Hi @HonghaoXiong https://github.com/HonghaoXiong,
I run underworldcode/underworld2:2.16.0-ompi on Apple Silicon (ARM64) and can run Python scripts using the mpirun command.
I run the following command on terminal:
docker run -it -v /my_folder/:/home/jovyan/workspace -p 8888:8888 underworldcode/underworld2:2.16.0-ompi bash
then,
mpirun -n <number_of_processes> python <your_script.py>
On Wed, Jun 11, 2025 at 11:37 AM Julian Giordani @.***> wrote:
julesghub left a comment (underworldcode/underworld2#722) https://github.com/underworldcode/underworld2/issues/722#issuecomment-2960962675
Hi @HonghaoXiong https://github.com/HonghaoXiong, Can you try the underworldcode/2.16.4-mpich. I know this one works for me. Let me know the result.
I'll investigate the ompi version now.
— Reply to this email directly, view it on GitHub https://github.com/underworldcode/underworld2/issues/722#issuecomment-2960962675, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFMPHXNK7EUBBOI4XFG5ZPT3C6B33AVCNFSM6AAAAAB6XDKREWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDSNRQHE3DENRXGU . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Thanks for confirming @rcarluccio. So 2.16.0 works! Good to know how you use it!
I never made arm versions of 2.16.4 due to time constraints. I thought docker/podman emulation should handle the intel -> arm issues but for some reason the 2.16.4-ompi is not handling it. 2.16.4-mpich is though.
Hi Julian,
It’s working well, thanks for making it available! I’ve had a few minor issues running Jupyter Notebooks. They’re not major, but they can affect productivity. I haven’t found a reliable workaround yet - perhaps you’ve come across one?
I usually launch Jupyter Notebooks with the following command (though I’ve tried other methods too): jupyter notebook --ip 0.0.0.0 --no-browser
However, if I’ve previously opened a notebook locally, this command often doesn’t work (the page doesn’t load). I end up needing to close the terminal, clear the cache, and sometimes even restart my laptop. I’ve also tried using a different port, but that didn’t help.
The same sometimes happens inside the container, especially after installing new packages. I won’t be able to relaunch the notebook unless I follow a strict order, which can be a bit tricky to manage.
On Wed, Jun 11, 2025 at 12:00 PM Julian Giordani @.***> wrote:
julesghub left a comment (underworldcode/underworld2#722) https://github.com/underworldcode/underworld2/issues/722#issuecomment-2961003853
Thanks for confirming @rcarluccio https://github.com/rcarluccio. So 2.16.0 works! Good to know how you use it!
I never made arm versions of 2.16.4 due to time constraints. I thought docker/podman emulation should handle the intel -> arm issues but for some reason the 2.16.4-ompi is not handling it. 2.16.4-mpich is though.
— Reply to this email directly, view it on GitHub https://github.com/underworldcode/underworld2/issues/722#issuecomment-2961003853, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFMPHXI3GR2QBZEPRAQI4BL3C6ET3AVCNFSM6AAAAAB6XDKREWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDSNRRGAYDGOBVGM . You are receiving this because you were mentioned.Message ID: @.***>
I haven't come directly across that but I'll point out.
- We use
jupyter labnow in 2.16. -
docker run .... -p 8888:8888 ....will only link the container's port 8888 to you local's 8888. So any other ports will NOT be connected. I suspect this is what's happening as running jupyter again inside the container will use a fresh port, (e.g. 8889) - You can use
jupyter lab listto show all the jupyter servers you are actively running.
Thank you, Miss @rcarluccio . I want test 2.16.4 for some reasons.
@julesghub Sir, It works when I use 2.16.4-mpich! But, another question. I still have to set <strata> parameter in .XML. Should I reinstall badlands in my container again like last you teached me? install badlands2.2.4.
You won't be able to install another version of badlands in 2.16.4 as I removed the build tools (make, gcc, etc). So you'll have to use badlands 2.3.
Sorry Sir. I withdraw my words. My simulation process will stop when I use mpirun command through 2.16.4-mpich. I checked docker of desktop, it showed CPU still was occupied
Sir, And I still have set <strata> parameter in badlands.XML. Is there any solver which I do not need set this parameter. Just like I previously reported to you, when I set the <strata> parameters, the program crashes because there is a slight discrepancy between the runtime of my Badlands and Underworld simulations.