::: 강좌/소스/문서 :::

강좌/소스/문서 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-04-09 22:56:38, Hit : 11192, Vote : 1738
 [MPI] MPICH 1.2.5 설치

// 제   목: MPICH 1.2.5 설치
// 작성자: 김영대( http://www.howto.pe.kr )

병렬 시스템의 두 큰 부류는 MPP(massively parallel processing)와 SMP (symmetric multiprocessing) 로
나눌 수 있으며 여기서 MPP란 프로그램을 여러 부분으로 나누어 여러 프로세서가 각 부분을 동시에 수행시키는
것을 말한다. 이때 각 프로세서는 각기 운영체계와 메모리를 따로 가지고 일을 수행하며 각 프로세서간에는
메시지 패싱과 같은 기법을 이용하여 통신을 한다. 따라서 하나의 프로그램을 수행하는데 수 백 혹은 수 천개의
프로세서를 이용할 수 있다. MPP의 성능을 제대로 발휘하려면, 프로그램을 독립적으로 수행되는 여러 부분으로 나누고,
각 프로세서가 다른 프로세서와 정보를 주고받는 일을 최대한 효율적으로 할 수 있는 하드웨어 구조와, 이를 뒷받침하는
운영체계의 성능이 잘 조화를 이루어야 한다.

MPP 메시지 패싱을 위해서 PVM(Parallel Virtual Machine) 이나 MPI(Message Passing Interface) API를 사용하는데
PVM과 MPI 모두 메세지 전달을 도와주는 적용이 간편한 소프트웨어이다. 역사적으로 볼 때 PVM이 먼저 개발 되었고
워크스테이션의 네트웍에 맞게 설계되었다.
PVM 은 분산 저장을 하거나 하지 않거나에 관계없이 많은 병렬 수퍼컴퓨터에 적용되어져 왔다.
MPI는 그와는 달리 많은 하드웨어 판매자에 의해 지원되고 있으며 PVM보다 더 많은 기능을 제공한다.
많은 경우 PVM과 MPI 둘 중 어느하나를 써야한다는 규칙은 없다. MPI의 경우 표준이 정해져 있기 때문에 많은 사람들이
MPI를 선호한다. 하지만 PVM도 사용되고 있다. 이 문서는 각 소스에 관한 정보를 포함하고 있다.

MPI:
  자유롭게 사용할 수 있는 두가지의 MPI 버젼이 있다.
MPICH(MPI Chameleon):
  http://www-unix.mcs.anl.gov/mpi/mpich/
LAM-MPI:
  http://www.mpi.nd.edu/lam/
PVM:
  http://www.epm.ornl.gov/pvm/


1.MPICH 및 패치파일 다운받기
  이 설치문서는 Linux(Redhat 7.3)에서 MPICH를 설치하는 과정을 다룬다(Windows NT/2000 버전도 있다)
  설치작업은 root 로 예제 실행은 일반 계정으로 작업한다
  
  http://www.mcs.anl.gov/mpi/mpich/download.html 또는
  ftp://ftp.mcs.anl.gov/pub/mpi 에서 mpich.tar.gz 를 다운받는다
  
  또한 관련된 patch file은 모두 받도록 한다(이미 패치가 적용된 mpich.tar.gz 을 받은 경우는 패치가 필요없다)
  MPICH의 경우에는 LAM과 비교하여 다수의 platform을 지원한다. 이것이 장점이자 동시에 단점이 되어, platform 에
  따라 4~5개 정도의 patch가 필요할 수도 있다. patch file은 동일한 site에서 확보할 수 있으며, version 1.2.5의
  경우 Linux상에서 7528, 7633, 7629, 7650 의 4개의 patch file 이 있다.
  patch file 들은 ftp://ftp.mcs.anl.gov/pub/mpi/patch/1.2.5 에서 다운 받을 수 있다
  
2.다운받은 파일을 unpack 해야 하는데 NFS(network file system) 파티션에 풀지말고
  로컬로 마운트된 파티션(예, /tmp or /sandbox)에서 풀며 해당 파티션에 최소 100MB 이상의 가용 용량이
  있어야 한다(나중에 make install 하게 되면 보통 /usr/local/mpich 에 설치된다)
    % cd /tmp
    % tar zxovf mpich.tar.gz

  이때 생성된 mpich directory로 위의 다운받은 4개의 patch file을 copy하고, 다음의 명령에 의해
  patch file을 전부 patch 한다(이미 패치가 적용된 mpich.tar.gz 을 받은 경우는 패치가 필요없다).

    % patch -p0 < 7528
    % patch -p0 < 7633
    % patch -p0 < 7629
    % patch -p0 < 7650

  아래는 unpack한 상태의 디렉토리와 파일들이다
  


3.configure
  여기서 우선 ./configure --help에 의해 여러 option을 확인할 수 있는데, option 없이 default만으로
  config해도 크게 문제는 없다. 다만 경우에 따라서 특별한 compiler를 사용할 경우가 있는데,
  이때는 -fc, -cc, -f90 -c++ 등의 option으로 지정해준다.

  기본 device(이 용어는 MPICH 홈페이지를 참조)로 할 경우는 아래와 같이 실행하고
    % ./configure --prefix=설치디렉토리
  혹시 자동으로 환경을 선택해주시 못한다면 아래와 같이 해본다
    % ./configure --with-device=ch_p4 --with-arch=LINUX --prefix=설치디렉토리
  


  아래와 같은 메시지가 나오면 configure가 제대로 실행된 것이다
    ...
    creating Makefile
    creating mpptestconf.h
    creating mpid/ch_p4/Makefile
    creating mpid/tests/Makefile
    creating mpichconf.h
    mpichconf.h is unchanged
    *# --->
    *# You should register your copy of MPICH with us by sending mail
    *# to majordomo@mcs.anl.gov containing the message
    *# subscribe mpi-users
    *# This will allow us to notify you of new releases of MPICH.
    *#  
    *# You can also check the MPICH home page at
    *# http://www.mcs.anl.gov/mpi/mpich
    *# ---<
    Configuration completed.

4.make
  시스템 성능에 따라 수분에서 수시간 소요된다
    % make

  실행이 완료된 후 메시지의 맨 아래 부분에 다음과 같은 메시지가 나오면 제대로 실해된 것이다
    Completed build of MPI.  Check the output for errors Also try executing 'make
    testing' in examples/test (This relies on mpirun, which currently works for
    many but not all systems.  For workstation networks, mpirun requires that you
    first setup a "machines" file listing the machines available; this is covered
    in the installation manual.)
  
5.로컬에서 예제 돌려보기
  make install 하기전에 로컬 머신에서 4개의 프로세스로 병렬 실행되는지 아래처럼 테스트할 수 있다
  
    % cd examples/basic
    % make cpi
    % ../../bin/mpirun -np 4 cpi

  

  만약 실행시 다음과 같은 에러 메시지를 만난다면 조치한다
    .Connection Refused. -> rsh 데몬이 실행가능한지, 방화벽이 rsh 를 막지는 않는지 ~/.rhosts 이나
         /etc/hosts.equiv 등등의 rsh 관련 환경을 적절히 설정한다
    .Permission denied.  -> rsh 메몬은 실행중이나 rsh 관련 환경이 적절하지 않을때 발생한다
    
6.make install
   configure 설정시 --prefix 옵션으로 지정한 설치디렉토리에 설치를 시작한다
    % make install
  
   정확히 설치가 되었으면 아래와 같은 메시지가 보인다    
  


7.실제 병렬 환경에서 예제 돌려보기
  실제 병렬 환경에서 MPI의 실행은 일반 계정으로 하도록 한다
  
  먼저 MPI 가 설치된 디렉토리의 share/machines.LINUX 파일을 열어 MPI 병렬 계산에 참여하는 호스트들을
  차례로 등록한다(여기서는 myhome 과 slave 라는 두대의 환경으로 테스트 하였으며 자기 자신은 등록하지
  않는다. 여기서는 slave 라는 호스트에서 mpirun 을 하였다)
  

  
  또한 MPI는 rsh를 이용하므로 일반계정의 홈디렉토리에 .rhosts 파일을 600 파일 권한으로 만든 후
  MPI 병렬 계산에 참여하는 호스트들과 계정(동일한 계정)들을 등록한다
  


  MPI 가 설치된 디렉토리의 예제 폴더에서 cpi를 실행해 본다
    % cd examples/basic
    % make cpi
    % ../../bin/mpirun -np 2 cpi
  물론 rsh 를 이용하므호 모든 호스트의 동일한 계정의 동일한 디렉토리에 cpi 실행파일이 이미 복사되어
  있어야 한다. 아래는 실행한 결과이다
  

    





7   [병렬 프로그래밍] [thread] POSIX thread 에 관한 몇가지 참고사항  김영대 2003/07/17 11054 2100
  [병렬 프로그래밍] [MPI] MPICH 1.2.5 설치  김영대 2003/04/09 11192 1738
5   [병렬 프로그래밍] [OpenMP] Parallelizing the Mandelbrot Set  김영대 2003/03/15 7193 1731
4   [병렬 프로그래밍] [MPI] Parallelizing the Mandelbrot Set  김영대 2003/03/15 6412 1581
3   [병렬 프로그래밍] [MPI] N-Body Problem  김영대 2003/03/15 6852 1791
2   [병렬 프로그래밍] [MPI] Prime Number Generation  김영대 2003/03/15 6669 1746
1   [병렬 프로그래밍] [MPI] Game of Life (Conway`s Game of Life)  김영대 2003/03/15 7060 1606

1
 

Copyright 1999-2017 Zeroboard / skin by zero