underworld2 icon indicating copy to clipboard operation
underworld2 copied to clipboard

Underworld2.16.4-ompi can't mpirun on Arm64 Macbookpro

Open HonghaoXiong opened this issue 7 months ago • 10 comments

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?

Image

HonghaoXiong avatar Jun 06 '25 04:06 HonghaoXiong

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.

julesghub avatar Jun 11 '25 01:06 julesghub

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: @.***>

rcarluccio avatar Jun 11 '25 01:06 rcarluccio

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.

julesghub avatar Jun 11 '25 02:06 julesghub

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: @.***>

rcarluccio avatar Jun 11 '25 02:06 rcarluccio

I haven't come directly across that but I'll point out.

  1. We use jupyter lab now in 2.16.
  2. 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)
  3. You can use jupyter lab list to show all the jupyter servers you are actively running.

julesghub avatar Jun 11 '25 02:06 julesghub

Thank you, Miss @rcarluccio . I want test 2.16.4 for some reasons.

HonghaoXiong avatar Jun 11 '25 03:06 HonghaoXiong

@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.

HonghaoXiong avatar Jun 11 '25 03:06 HonghaoXiong

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.

julesghub avatar Jun 11 '25 03:06 julesghub

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

Image Image

HonghaoXiong avatar Jun 11 '25 08:06 HonghaoXiong

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.

HonghaoXiong avatar Jun 12 '25 00:06 HonghaoXiong