C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 강좌/문서
C++Builder Programming Tutorial&Docments
[180] 멀티 프로세서를 지원하자. Open MP... 아직은 지원하지 않는...
김호광 [testcode] 20440 읽음    2008-10-27 23:25
Open MP라고 있습니다.

포트란을 사용하시는 분께서는 익숙하시겠지만 멀티 프로세서(multi-thread )를 위한 라이브러리입니다. 점차 유용성을 인정받아 C/C++에서도 지원하게 되었습니다.

Visual C++ 2005에서 지원하기 시작했으며  /openmp 라는 컴파일러 지시어가 지원됩니다. Visual C++ 2008에서는 2.0 버전을 지원합니다. (Static link 비지원)

물론 gcc에서 당연히 지원합니다.

Open MP는 매우 중요한 라이브러리 중 하나입니다. 그 유명한 X-Box 360(여기서만 static link 지원)에서 제대로 멀티 프로세서를 지원하기 위해 필요한 라이브러리입니다.

요상한 것은 VC 2005에서 debugging에 이상스러운 스탭을 보이고 있습니다. 아직 완벽한 통합이 되지 않은 이유가 있습니다.

VC 2008에서는 2.0을 지원하며, 그 전보다 디버깅이 쉬워지는 점이 장점으로 부각되고 있습니다. 아무래도 X-BOX360에서 멀티 프로세서 지원 때문에 강력 지원한 흔적이 보입니다. 쿼드 코어가 일반화되고 있는 현실에서 OpenMP를 통해서 어플리케이션의 최적화가 필요하다고 판단한 것 같습니다.

특히 Win32 API로 지원하는 Thread에 비해서 멀티 프로세스 지원하는 방식이 다양한 것이 장점입니다.

공유 데이터와 프라이비트 데이터, 페러럴 처리 등에서 Thread보다 선명하고 쉽게 코딩이 됩니다. lock / unlock 등이 간단합니다.

그리고 루프 이외의 함수 단위의 병렬처리가 되기 때문에  여러모로 사용이 편리합니다.

아무래도 코드 기어쪽에서 MP를 지원한다고 했을 때 Open MP로 지원하지 않을까싶습니다.  지금 MP를 코드 기어에서 대대적으로 적용한다고 했을 때는 그 만한 이유가 있는 것이 바로 금융권에서 BCB / Delphi가 최적화 되지 않기 때문입니다. 그런 시대적이 이유인 듯 싶습니다.

아, 역시 주의할 것은 VC 2008입니다. Open MP의 효율 테스트를 꼭 해야 합니다. 그냥 gcc처럼 막 적용하면 효율이 올라가는 것이 아닙니다. 도리어 효율이 떨어지는 루틴이 있는데 플레이 시나리오를 제대로 짜서 비교 테스트해야 합니다. 사람의 머리는 싱글 task인데 MP를 지원하려니 사람의 머리에서 에러 내는 경우가 많습니다.

http://openmp.org

예제로는 역시 인텔이 잘 되어 있습니다.

http://software.intel.com/en-us/articles/getting-started-with-openmp

강좌 치고 소스가 없군요...

아직까지 win32에서 제대로 지원하는 버전인 인텔 컴파일러와 gcc 정도입니다. 앞으로 멀티 코어에서 주시해야할 프로그래밍 파트입니다.

testcode~
방콕폐인 [jeong325]   2008-10-29 02:14 X
인텔 컴파일러 환경에서 사용해봤는데 몇가지 지킬것만 지키면 좋더군요... 성능좋고 편하고...intel TBB보다 성능이 좋았던 기억이 납니다
라스코니 [chouoo]   2008-12-02 16:56 X
gcc 에서는 최신 버전 v4.3.2 에서는 -fopenmp 옵션 만 주면 됩니다. 좋은 점은 옵션만 제거하면 돌아간다는 겁니다. 코어 속도는 정체되는 분위기고 멀티 코어가 대세인 요즘 주의깊게 보아야 할 라이브러리입니다.
leo21c [leo21c]   2008-12-05 17:32 X
볼랜드에서도 사용할 수 있으면 좋을텐데...안타까운 부분입니다.

+ -

관련 글 리스트
180 멀티 프로세서를 지원하자. Open MP... 아직은 지원하지 않는... 김호광 20440 2008/10/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.