2010년 5월 3일 월요일

TBB가 무엇이더냐...

인텔 스레딩 빌딩 블록(TBB, Intel Threading Building Blocks) 환경 구축
2009/12/14 13:56 in 멀티스레드 프로그래밍 TBB란 병렬 프로그래밍의 여러 패러다임이 제안되었고 오랫동안 자리 잡은 패러다임입니다. C++로 되어 있는 일종의 라이브러리이며 스레드 처리에 대한 전문 지식 없이도 멀티코어 프로세서 시스템의 성능을 향상 시키도록 도와줍니다. 세부적인 내용은 추후 다루기로 하고 설명에 앞서 TBB를 사용하기 위한 환경 구축 방법에 대해 알아보도록 하겠습니다.

TBB 다운로드 (http://www.threadingbuildingblocks.org/)





tbb22_009oss_win.zip

라이브러리 설치 방법으로 두 가지 방법이 있는데 환경 변수를 등록한 방법과 개발 툴에 고정적으로 라이브러리 위치를 직접 넣는 방법이 있습니다.

1. 개발 툴에 라이브러리 등록하기







Tool - Options...- Projects and Solutions 에 헤더/라이브러리 위치 설정

2. 환경 변수 등록





내 컴퓨터 - 속성 - 고급 - 환경 변수 클릭
내 계정에 대한 시스템 변수 - 새로 만들기(W)... 클릭
변수 이름 : TBB22_INSTALL_DIR
변수 값 : C:\SDK\TBB




개발 툴 (Visual Studio 2008)로 프로젝트 설정




프로젝트 내부 헤더 경로 설정





프로젝트 내부 라이브러리 경로 설정






프로젝트 내부 TBB 라이브러리 사용 등록


위와 같이 TBB사용을 위한 세팅을 한 후, 간단하게 TBB를 이용한 것과 그렇지 않은 것의
랜덤 넘버를 생성한 후 오름차순 정렬을 실행 하고 결과 시간을 측정하였습니다.




윗쪽 그림은 tbb를 사용하여 sort한 결과, 그리고 아래 그림은 tbb를 사용하지 않고 sort한 결과입니다.
tbb를 사용한 그림의 cpu사용현황을 보면 2개의 cpu가 full로 돌고 있는 것을 볼 수 있습니다. 스레드 또한 2개로 돌아가고 있습니다.

댓글 1개: