인피니밴드 2

[ Linux - MPI ] MPI 병렬 계산 멈춤 문제 해결하기 (feat. 아무런 에러 메시지 없이 진행이 안될 때)

배경: MPI 통신 IP 튜닝 단일 노드에서 병렬 계산이 잘 되다가, 2개 이상 노드를 잡고 계산을 할 때에 계산이 진행이 되지 않는다면... 아마도 노드-노드 간 MPI 통신 문제일 가능성이 높습니다. 병렬 연산을 수행하는 프로그램/코드를 다양한 리눅스 OS에서 사용하려고 할 때에 발생할 수 있는 이슈입니다. 보통 리눅스에서 openmpi 라이브러리로 복수노드로 병렬해석을 하게되면 "알아서" 잘 통신을 하는 경우가 많지만, 특히 최신 버전의 리눅스 OS의 경우 MPI 통신에 사용할 IP를 지정해줘야만 하는 경우가 있습니다. 문제상황 진단 병렬 프로그램/코드, 환경변수 등 모두 문제 없는 상태에서... MPI를 사용해서 단일노드, 단일코어 해석 --> 문제 없음 MPI를 사용해서 단일노드, 복수코어 해석..

Linux 2023.10.22

[ Linux - MPI ] 쉽게 설명하는 MPI 통신 핵심 개념 (feat. MPI 통신 멈춤 문제 해결 방법)

​ 배경 슈퍼컴, HPC나 워크스테이션을 사용해서 대규모 시뮬레이션을 수행 할 때에는 보통 클러스터의 여러 노드를 잡고 해석을 수행합니다. 이때 노드-노드 간 통신이 필요하게 되는데, 주로 mpi나 openmp 와 같은 병렬 통신 라이브러리를 사용합니다 이에 관련된 핵심 개념을 러프하게 정리했습니다. 여러 장비나 컴퓨터에서 병렬 컴퓨팅 프로그램/코드를 사용할 때 자주나오는 개념들과, MPI를 좀 더 잘 활용하기 위해서 필요한 개념들을 정리했습니다. 단, 개인 차원에서 필요한 수준까지만 습득하고 이해한 것을 적당히 정리한 것이므로 오류가 있을 수 있음을 주의해 주세요. 예를 들면... 어떤 계산 코드를 컴파일하고 멀티 노드 계산을 수행할 때, 발생할 수 있는 문제가 존재하는데... 돌고 돌아 mpirun ..

Linux 2023.10.22