본문 바로가기

프로그래밍

Ubuntu-우분투-에서 openmpi 설치하기

 

리눅스용 윈도우즈 하위 시스템으로 설치된 우분투에서 openmpi를 설치하는 방법이다.

1. openmpi 설치파일 다운로드 받기

https://www.open-mpi.org/

아래 사이트로 접속해 왼쪽 메뉴의 download로 가면,

 

사진에 표시된 것 과 같이 최신 버전을 다운로드 해 준다.


2. 설치하기

 

이후 다운로드 받은 파일을 두번 압축 해제 해 주고 나서, cd 명령어를 이용해 압축 해제 된 폴더로 현재 디렉토리를 변경해 준다.

 

ex) cd /mnt/c/openmpi-4.1.4


이후 설치할 디렉토리에 대해 ./configure 명령을 실행해 준다.

 

sudo ./configure --prefix=<directory>

ex) sudo ./configure --prefix=/opt/openmpi

ex) sudo ./configure --prefix=/usr/local

정상적으로 configure 과정이 끝나면, 맨 마지막에 Open MPI configuration: 으로 시작하는 아래와 같은 출력 화면이 나온다.


위 과정이 제대로 완료되면 아래의 명령을 입력한다.

sudo make all install


마지막으로, 경로를 지정해 주면 설치가 끝난다. 이때 echo $PATH 명령어를 입력해 자신이 설치한 디렉토리가 이미 PATH environment variable에 포함되어 있지 않은지 확인해야 한다. 만약 포함되어 있지 않다면 아래와 같은 명령어를 입력하면 된다. /opt/openmpi 부분에 자신이 설치한 디렉토리를 입력하면 된다. 이 과정은 영구적으로 지정하는 것이 아니기 때문에 매번 컴퓨터를 킬 때 마다 진행해 주어야 한다. 만약 이것이 귀찮다면 PATH environment variable에 포함된 경로에 설치하기 바란다.

 

ex) export PATH=/opt/openmpi/bin:$PATH

 

설치 후 mpirun 명령을 입력했을 때 아래와 같은 화면이 출력되면 정상적으로 설치된 것이다.


3.정리(입력 예시)

cd /mnt/c/openmpi-4.1.4

sudo ./configure --prefix=/opt/openmpi

sudo make -j 6 all install

export PATH=/opt/openmpi/bin:$PATH


 

4. 주의사항

 

이미 mpi가 설치된 상태라면, 반드시 설치된 파일을 모두 삭제한 뒤 새로 설치 해 주어야 한다. 같은 openmpi의 새로운 버전을 설치하고 싶다고 하더라도, 이전에 설치된 버전을 반드시 제거해 주어야 한다는 말이다. 설치 과정에서 이전 버전이 자동으로 제거되지 않는다. 서로 다른 위치에 설치한 다음에 어떤 디렉토리의 mpi를 사용할 것인지 지정해 줄 수도 있는 것 같은데, 리눅스 초짜인 나는 잘 모르겠다.

 

configure 과정에서 에러가 나도 설치가 가능했던 것으로 기억한다. 이럴 경우 나중에 문제가 생길 수 있으니, 꼭 configur 과정이 완벽히 끝난 뒤 설치하기 바란다.

 

설치하는데 상당히 시간이 오래 걸린다. 어떤 컴퓨터를 사용했느냐에 따라 다르지만 가장 오래 걸렸을 때에는 ./configure과 make 과정에서 총 1시간 정도 소요된 것 같다. 문제가 있는 것이 아니므로 괜히 중간에 중단시키지 말길 바란다.


 

5. 내가 겪은 문제점 및 해결방안

5-1.나는 ./configure --prefix=/opt/openmpi 로 설치를 진행했다. 그런데, root 계정(?) 으로 접속하지 않은 탓인지, 권한이 없다는 아래와 같은 에러 메세지와 함께 configure 에러가 발생했다.

아래와 같은 명령어로 다시 실행해 보았더니 문제가 해결되었다. 권한 문제였으므로 아마 sudo를 입력해 해결된 것 같다.

sudo ./configure --prefix=/opt/openmpi


5-2. 처음 openmpi를 설치하고 sparta 빌드를 make mpi 명령으로 실행했을 때, mpi.h 파일이 존재하지 않는다는 에러가 발생해 mpi로 빌드하지 못했었다. 에러 문구 출력은 아래와 비슷한 형식이었다.

내가 유추하기로는 아마 ./configure 명령이 제대로 실행되지 않아서 였던 것 같다. 처음 설치할 때 5-1과 같은 문제를 그냥 무시하고 설치했기 때문이다.

그러나 이 문제가 아니었을 수도 있다. 처음 설치에서 달라진 점이 두가지였는데, 5-1 문제를 해결한 것 말고도, 다른 디렉토리에 openmpi를 설치한 것이다. 처음에는 sudo ./configure --prefix=/usr/local 명령어를, 두번째 설치(성공한) 에서는 sudo ./configure --prefix=/opt/openmpi 명령어를 이용해 서로 다른 디렉토리에 설치하였다.

어쩌면 디렉토리 자체의 문제가 아니라 export PATH=/opt/openmpi/bin:$PATH 명령을 처음에 입력하지 않아 위와 같은 에러가 발생했을 수도 있다. 실제로 opt/openmpi 디렉토리에 설치했을때는 위 명령을 입력하기 전에는 mpirun 명령어가 동작하지 않았다. /usr/local에 설치했을때는 위 명령을 입력하지 않아도 mpirun이 작동했기 때문에 위 명령줄을 입력하면 해결되었을 문제였을 수도 있다. (하지만 깨닫기 전에 아예 싹 밀고 다시 깔아버렸다....)

 

만약 나와 같은 문제를 겪는 사람이 있다면, 꼭 위의 명령줄을 입력해 보기 바란다.