Unable to run MPI within Openshell
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 52/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 領域
- hpc, infrastructure
調査の方向性
提供された Containerfile から始め、openshell sandbox create --from localhost/test を使って失敗を再現し、次にサンドボックス内で mpirun コマンドを実行して、正常に動作する podman run のケースと比較します。サンドボックス固有の MPI 初期化と共有メモリの挙動を追跡します。完了の条件は、OpenShell サンドボックス内で reproducer がエラーなしに正常終了することです。
索引モデルが issue の本文から書いたものです。
説明
User Story
As a computational physicist, I want the agent to be able to run MPI-enabled applications within the Openshell sandbox, so that the agent can help me test/develop/debug MPI-enabled scientific software for High-Performance Computing (HPC).
Problem Statement
When running an MPI-enabled application within the sandbox, the application fails at initialization (MPI_Init) with the following message:
Abort(404899215): Fatal error in internal_Init_thread: Other MPI error, error stack:
internal_Init_thread(71).: MPI_Init_thread(argc=(nil), argv=(nil), required=3, provided=0x7ffda19f22f8) failed
MPII_Init_thread(261)....:
MPID_Init(549)...........:
MPIDI_UCX_init_local(234):
MPIDI_UCX_init_worker(86): ucx function returned with failed status(ucx_init.c 86 MPIDI_UCX_init_worker Shared memory error)
Abort(539116943): Fatal error in internal_Init_thread: Other MPI error, error stack:
internal_Init_thread(71).: MPI_Init_thread(argc=(nil), argv=(nil), required=3, provided=0x7ffc5cc9ebc8) failed
MPII_Init_thread(261)....:
MPID_Init(549)...........:
MPIDI_UCX_init_local(234):
MPIDI_UCX_init_worker(86): ucx function returned with failed status(ucx_init.c 86 MPIDI_UCX_init_worker Shared memory error)
Impact / Why This Matters
Having the ability for the agent to run MPI-enabled application is essential for it to help with software development for HPC. Without it, the agent can modify the code to implement new features, but is then unable to test the changes properly.
The current work-around is to do agent-assisted software development outside of openshell, i.e. without the safety guardrails that Openshell offers.
Acceptance Criteria
The bug would be considered fixed if I can run an MPI-enabled application to completion (without errors) from within an openshell sandbox (see reproducer below).
Reproduction Steps
This shows the error with a minimal MPI application: in this case a Python script using mpi4py (but the bug is not specific to Python or mpi4py, and I also observed it in C++ applications using MPI)
- Create a file
Containerfilewith the following content, so that mpi4py is available in the image (installed viaconda):
FROM ghcr.io/nvidia/openshell-community/sandboxes/base:latest
RUN curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh \
&& bash Miniforge3-Linux-x86_64.sh -b -u -p /sandbox/conda \
&& rm Miniforge3-Linux-x86_64.sh \
&& /sandbox/conda/bin/conda clean --all -y \
&& /sandbox/conda/bin/conda init bash
ENV PATH=/sandbox/conda/bin:$PATH
RUN conda install -y -c conda-forge mpi4py \
&& conda clean --all -y
-
Build the image locally:
podman build -t localhost/test:latest . -
Create a sandbox using this image:
openshell sandbox create --from localhost/test -
From inside the sandbox, run
mpirun -np 2 python -c "from mpi4py.MPI import COMM_WORLD"
Note that the same error does not occur when running this simply through podman instead of Openshell. More specifically:
podman run -it localhost/test:latest
and then from within the image:
mpirun -np 2 python -c "from mpi4py.MPI import COMM_WORLD"
works as intended, showing that the issue is specific to Openshell, not to the podman image.
Environment
openshell 0.0.80- Ubuntu 26.04
- Runtime:
podman version 5.7.0
- 主要言語
- Rust
- スター
- 8.7k
- フォーク
- 1.3k
- 平均マージ
- 2日 6時間
- マージ済み PR(30日)
- 297
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NVIDIA/OpenShell のほかの issue
-
area:docs
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
-
state:triage-needed
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
area:cli state:validated
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
state:triage-needed
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
-
area:build spike state:review-ready state:stale
難易度 2/5 半日 初心者へのやさしさ 68/100
NVIDIA/OpenShell の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
state:needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
zed-industries/zed#64680 · コメント 2 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
RustPython/RustPython#8802 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
TheLarkInn/aipm#2390 ·