본문 바로가기

Programming

MPI 와 OpenMP의 공존가능성에 대한 간단한 테스트

 네트웍으로 여러개의 컴퓨터를 링크하고 동시에 컴퓨터 내부의 코어를 엮어서

병렬 컴퓨팅의 성능을 최대한 끌어올리기 위한 시험을 수행중입니다.

MPICH2를 이용하여 각 컴퓨터를 네트웍으로 엮고, 이어서

내부적으로 코어를 모두 활용하기 위해 OpenMP를 적용했습니다.

우선 MPICH 코드가 내장된 상태에서 OpenMP가 어떻게 작동하는지 확인하기 위하여

일단은 듀얼코어만 활성화 시켜서 테스트 해본 결과 다음과 같습니다.


OS 환경은 Win7 64bit


OpenMP를 이용해서 코어2개를 모두 사용할 경우 (CPU 점유율 99%)

사용자 삽입 이미지



OpenMP를 사용하지 않을 경우 (CPU 점유율 60~70%)

사용자 삽입 이미지



 대강 보아하니 CPU 점유율 정도의 차이가 발생하네요

흠-_- Win7은 이번에 처음 써보는 거라 생소하긴 한데,

XP 쓸땐 싱글코어로 돌리면 CPU점유율 50% 이상으로는 안가던데 이건 좀-_-;;;

뭔가 체계가 다른가보네요.

하여튼, 결론은 OPenMP로 코어를 활성화 시키면 그만큼 속도의 향상이 있는 것은

확실합니다. 다만, 알고리즘을 보다 최적화 한다던가 그런 작업은 요구 될 것 같네요.



사이클당 소요시간 평균 40초 -> 28~9 초라면 뭐.... 시도해볼만 하지 않겠어요?^^;;;

조금 더 시도해보고 결과가 나오는 대로 계속 포스팅할 예정입니다^^;;