24장. HPC 환경에서 Podman 사용


Podman을 Open MPI(Message Passing Interface)와 함께 사용하여 HPC(고성능 컴퓨팅) 환경에서 컨테이너를 실행할 수 있습니다.

24.1. MPI로 Podman 사용

이 예제는 Open MPI에서 가져온 ring.c 프로그램을 기반으로 합니다. 이 예제에서는 값이 링과 같은 방식으로 모든 프로세스에 의해 전달됩니다. 메시지가 랭크 0을 통과할 때마다 값이 감소합니다. 각 프로세스가 0 메시지를 수신하면 해당 메시지를 다음 프로세스에 전달한 다음 종료합니다. 0을 먼저 전달하면 모든 프로세스가 0 메시지를 받고 정상적으로 종료할 수 있습니다.

사전 요구 사항

  • container-tools meta-package가 설치되어 있습니다.

절차

  1. Open MPI를 설치합니다.

    # dnf install openmpi
  2. 환경 모듈을 활성화하려면 다음을 입력합니다.

    $ . /etc/profile.d/modules.sh
  3. mpi/openmpi-x86_64 모듈을 로드합니다.

    $ module load mpi/openmpi-x86_64

    선택적으로 mpi/openmpi-x86_64 모듈을 자동으로 로드하려면 다음 행을 .bashrc 파일에 추가합니다.

    $ echo "module load mpi/openmpi-x86_64" >> .bashrc
  4. mpirunpodman 을 결합하려면 다음 정의와 함께 컨테이너를 만듭니다.

    $ cat Containerfile
    FROM registry.access.redhat.com/ubi9/ubi
    
    RUN dnf -y install openmpi-devel wget && \
        dnf clean all
    
    RUN wget https://raw.githubusercontent.com/open-mpi/ompi/master/test/simple/ring.c && \
        /usr/lib64/openmpi/bin/mpicc ring.c -o /home/ring && \
        rm -f ring.c
  5. 컨테이너를 빌드합니다.

    $ podman build --tag=mpi-ring .
  6. 컨테이너를 시작합니다. 4개의 CPU가 있는 시스템에서 이 명령은 4개의 컨테이너를 시작합니다.

    $ mpirun \
       --mca orte_tmpdir_base /tmp/podman-mpirun \
       podman run --env-host \
        -v /tmp/podman-mpirun:/tmp/podman-mpirun \
        --userns=keep-id \
        --net=host --pid=host --ipc=host \
        mpi-ring /home/ring
    Rank 2 has cleared MPI_Init
    Rank 2 has completed ring
    Rank 2 has completed MPI_Barrier
    Rank 3 has cleared MPI_Init
    Rank 3 has completed ring
    Rank 3 has completed MPI_Barrier
    Rank 1 has cleared MPI_Init
    Rank 1 has completed ring
    Rank 1 has completed MPI_Barrier
    Rank 0 has cleared MPI_Init
    Rank 0 has completed ring
    Rank 0 has completed MPI_Barrier

    결과적으로 mpirun 은 4개의 Podman 컨테이너를 시작하고 각 컨테이너는 바이너리의 하나의 인스턴스를 실행하고 있습니다. 모든 4 프로세스는 MPI를 통해 서로 통신하고 있습니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.