underworld2 icon indicating copy to clipboard operation
underworld2 copied to clipboard

The issue of installing version 2.17 using Podman

Open HonghaoXiong opened this issue 5 months ago • 9 comments

Dear Julian

Sir, I have attempted to run the lanuch-container.sh script you mentioned in Podman’s rootless mode. Following your guidance, I updated the name in the podman run command with ghcr.io/julesghub/underworld2:2.17 and then executed the script. The image was successfully pulled, as shown in the screenshot below. Then, Jupyter did open a browser tab, but it rendered as shown below. I tried import underworld, but it did not work. What should I do next? I wonder if i can still run .py script in parallel with Podman the same way I do with Docker like docker run -v /Users/haibinyang/Xiong_test:/home/jovyan underworldcode/underworld2:2.16 mpirun -np 2 python 10Mid_55Hash.py

Image Image

HonghaoXiong avatar Sep 03 '25 13:09 HonghaoXiong

Sir, and I also wonder why do we need set <strata>parameter of XML in new version, instead of just commenting it out like we used to?

HonghaoXiong avatar Sep 04 '25 04:09 HonghaoXiong

@julesghub

HonghaoXiong avatar Sep 04 '25 04:09 HonghaoXiong

@julesghub Sir, I have resolved this issue. There were two reasons why I failed to run underworld2.17. First, I needed to change the permissions of my local directory, I changed my local directory from 700 to 755. Second , I used a code to make Podman ignore unfixed platform. There is my code``` podman run --rm -it --userns=keep-id --platform linux/amd64
-e OMP_NUM_THREADS=4
-e KMP_AFFINITY=disabled
-v /Users/haibinyang/Xiong_test:/home/mambauser
-w /home/mambauser
ghcr.io/julesghub/underworld2:2.17
mpirun -np 4 python 10Mid_55Hash_100kmDecay.py

HonghaoXiong avatar Sep 05 '25 10:09 HonghaoXiong

@julesghub @NengLu Sir, I’ve successfully gotten version 2.17 up and running. Then I ran into a timing issue that looks identical to what you were discussing in “strata error in coupling #1.” Namely, when I set the Underworld dt and the Badlands strata interval to 10 000 or 5 000 years, the model sometimes crashes with the error:FileNotFoundError: [Errno 2] Unable to synchronously create file (unable to open file: name = 'outbdls_5e-5_5540_WeakLM_1/h5/sed.time7.hdf5', errno = 2, error message = 'No such file or directory', flags = 13, o_flags = 242)。Should I reduce dt and strata times? By the way, I also had to reduce the checkpoint interval from 0.1 Myr to 0.01 Myr; otherwise the run would fail. With dt = strata = 5 000 yr and checkpoints = 0.01 Myr, Badlands now writes far more output steps than Underworld. As show below snapshot.

Image Image

HonghaoXiong avatar Sep 06 '25 03:09 HonghaoXiong

Then, I also tested enhancing Badlands endtime, laytime, check_point; all set to values greater than UW’s — yet Badlands still retains more intermediate results. But when I set Badlands laytime> UW dt, program will broke.

HonghaoXiong avatar Sep 06 '25 11:09 HonghaoXiong

  1. FileNotFound Error: the outputDir in Model.surfaceProcesses (or in the input XML file for Badlands) is the output path for Badlands (flow and tin files), better keep it to the default one "outbdls".

  2. Some tips on the input parameters for Badlands regarding the coupling:

  • check point better smaller or equal to the checkpoint_interval in Model.run_for (maybe half of it),
  • laytime better to set as dt in Model.run_for,
  • endtime is better to put greater than UW's.

NengLu avatar Sep 08 '25 10:09 NengLu

You may try the models here: https://github.com/underworld-community/uwg-coupling-test

In general, the models' set above is: checkpoint for badlands is much smaller than the checkpoint in UW2 (same as the dt in UW2)

NengLu avatar Sep 08 '25 10:09 NengLu

@julesghub Sir, I tried to restart UW_2.17 after @NengLu advised me to change Badlands output folder to "outbdls", but I met this issues blow picture. @NengLu suggested that I should add some codes to the file src/underworld/UWGeodynamics/_model.py . The codes are

       aspectRatio2d = badlands_model.aspectRatio2d
       surfElevation = badlands_model.surfElevation
       Model.surfaceProcesses = surfaceProcesses.Badlands(
           airIndex, sedimentIndex,
           XML, resolution,
           checkpoint_interval,
           surfElevation=surfElevation,aspectRatio2d=aspectRatio2d,
           restartFolder=restartFolder,
           restartStep=restartStep)

I did it and committed new images in Docker, but it did not work.

Image Image

HonghaoXiong avatar Sep 17 '25 01:09 HonghaoXiong

I then tried to install UW_2.17 locally on my MacBook. Although the installation completed successfully, I am unable to import the module — it returns a segmentation fault. I have submitted the log files for your review.

github_issue_template.md

HonghaoXiong avatar Sep 17 '25 01:09 HonghaoXiong