parallel programming

고성능 컴퓨팅 환경에서의 병렬 프로그래밍의 성능 최적화 3

hongiiv 2007. 2. 28. 02:44
반응형
정작 글의 내용은 별로 없는데 벌써 3편이네요, 저번 2편은 비공개글로 한 다음에 몇일에 걸쳐서 수정을 한 후 오늘 공개로 변경했는데 이글은 과연 언제쯤 공개로 될지 ^^

2편에 이어서 하드웨어 카운터를 기반으로 성능 분석을 가능하게 해주는 PAPI에 대해서 계속 알아보겠습니다.

(1) PAPI(Performance API)의 설치
PAPI가 지원하고 있는 있는 하드웨어와 운영체제는 거의 모두 지원하고 있다고 보시면 되겠습니다. 여기서는 당연히 X86기반의 리눅스 커널 2.6.X를 기준으로 작성하겠습니다. PAPI를 홈페이지에 다운로드 하고 설치하기 위해서는 커널에 대한 패치가 선행되어야 합니다.

(2) PAPI를 위한 커널 패치
Complete installation instructions are provided in the papi/src/perfctr-x.y directory. Please see the INSTALL file in that directory. x.y는 자신이 사용하는 리눅스 커널의 버전을 의미합니다. INSTALL 파일을 보면 커널 패치에 대한 내용이 나옵니다. 그럼 하나씩 살펴보도록 하겠습니다.

(3) 커널 패치와 커널 소스
자신의 버전에 맞는 커널 패치는 papi/src/perfctr-x.y/patches에 redhat과 suse 그리고 일반 커널에 대해서 버전별로 들어있다. 내가 사용하는 배포본은 fedora5(Kernel  2.6.15-1.2054_FC5)이기 때문에 fedora에서 제공하고 커널 소스도 다운로드(/usr/src/kernels/2.6.15-1.2054_FC5-i686)하였다.

(4) 커널 컴파일
커널 소스와 커널 패치가 준비되었으니 이제 커널에 패치를 하고 컴파일 해보도록 하자. 커널소스가 존재하는 디렉토리로 이동한 후 커널 패치가 존재하는 디렉토리의 update-kernel을 수행한다.
# cd /usr/src/kernel/2.6.15-1.2054_FC5-i686
#  /root/papi-3.5.0/src/perfctr-2.6.x/update-kernel

헉 에러가 난다. 2.6.15-1.2054_FC5 커널에 대한 패치가 없단다. 에러가 나면 다른 버전이지만 문제없이 잘 돌아갈만한 버전(patch-kernel-2.6.15)을 알려준다.
# /root/papi-3.5.0/src/perfctr-2.6.x/update-kernel --test --patch=2.6.15
테스트가 끝나면 --test 옵션을 빼고 실제 패치를 적용한다.
# /root/papi-3.5.0/src/perfctr-2.6.x/update-kernel  --patch=2.6.15

마지막으로,








반응형