본문 바로가기

Programming

Parallel Computing(병렬 컴퓨팅) 2

 병렬 컴퓨팅 두번째 시간입니다.

우선 지난번에 올렸던 글을 따라서 MPICH2 프로그램을 정상적으로 설치하셨으리라

믿고, 다음 과정으로 넘어가 보도록 하겠습니다


MPICH2를 정상적으로 사용하기 위해서는 몇가지 준비과정이 필요합니다.

그중 첫번째가 MPICH2의 실행파일의 path를 환경변수에 등록하는 것인데요,

내컴퓨터 -> 속성 -> 고급 -> 환경변수 로 들어가셔야 합니다.


사용자 삽입 이미지

환경변수로 들어가시면

사용자 삽입 이미지

시스템 변수에서 Path 항목을 수정해야 합니다. 혹시라도 없으면 새로만들기를 눌러서

변수이름은 Path, 값에는 MPICH2가 설치된 폴더의 하위폴더인 bin 폴더까지의

path 명을 기재해 줍니다.

예) C:\Program Files\MPICH2\bin

잘 아시겠지만 각 폴더명은 ; (세미콜론) 으로 구분해 주어야 합니다.

예) C:\Program Files\MPICH2\bin; c:\XXX\XXXX; d:\YYY\YYY;.....


이렇게 해주면 어떤 폴더에서의 실행파일에도 MPI를 적용해 줄 수 있게 됩니다.



다음으로 필요한 사항은 방화벽 설정입니다.

MPICH2는 기본적으로 네트워킹을 통해서 병렬화를 하는 것이므로

실행될 경우 방화벽에서 제제하게 됩니다.

프로그램을 실행시키면, 차단할 것인지 차단해제할 것인지를 물어보게 되죠.

더더욱이나 귀찮은 것은 실행파일이 동일하다 하더라도

폴더의 위치가 바뀌게 되면 그때마다 차단여부에 대해서 물어봅니다.

귀찮은 일이죠.


만일, 병렬화 하고자 하는 컴퓨터들이 외부 네트웍과 연결되어 있지 않은채

내부네트웍으로만 엮여 있으면 방화벽을 꺼버리는게 제일 속편한 일입니다.


외부 네트웍과도 연결되어 방화벽이 필요하다면, 실행할때마다 연결된 모든 컴퓨터에서

'차단해제' 를 해주어야 하구요.

이건 사용자의 선택에 맡기는 수밖에 없겠죠^^



다음으로 필요한 것은, 병렬화 하고자 하는 모든 컴퓨터에 동일한 폴더에 실행파일이

들어가 있어야 합니다.

실행하려는 프로그램의 이름이 aaa.exe 이고

메인 컴퓨터의 d:\abc 라는 폴더에 들어있다면 위 프로그램의

full path는 다음과 같습니다.

d:\abc\aaa.exe


이때, 연결된 다른 모든 컴퓨터에도 d의 abc 폴더에 abc.exe가 카피 되어 있어야 한다는

얘기이지요. MPI는 각 노드에서 실행파일이 로드되어 서로 데이터를 주고 받기 때문입니다.


이상이 병렬컴퓨팅을 위한 준비과정이 되겠습니다.



MPICH2가 정상적으로 작동하는지를 알아보려면

MPICH2의 설치폴더의 하위폴더인 example의 cpi.exe를 실행해보면 됩니다.

실행요령은 다음과 같습니다.


cpi.exe가 있는 폴더로 들어가서

mpiexec -n X cpi.exe

이때 -n 옵션은 프로세서의 갯수를 지정하겠다는 의미이고

X에는 프로세서 갯수를 입력하시면 됩니다.

예를들어 2개 프로세서를 쓰겠다면

mpiexec -n 2 cpi.exe

라고 하면 된다는 것이죠.



참고로 듀얼코어는 독립된 프로세서로 인식하므로

한개의 컴퓨터 = 2개의 프로세서로 작동합니다.

따라서 듀얼코어 cpu를 탑재한 컴퓨터의 경우 다른 컴퓨터와의 네트워킹 없이

자체적으로 2개의 프로세서를 돌릴 수 있게 됩니다.


위의 cpi.exe를 실행시키면 값을 입력받게 되어 있고

그 값을 토대로 계산을 수행, PI 값을 찾아 결과를 출력하게 됩니다.

cpi.exe 가 정상적으로 작동한다면,

MPICH2가 제대로 돌아간다는 뜻으로 보아도 무방하며

이제, 사용자가 직접 만든 프로그램으로 병렬화를 해볼 차례입니다.


-2부 끝-