티스토리 뷰

728x90

1. OpenMP

  

 병렬 프로그램을 하기 위해서는 기본적인 하드웨어적인 제원이 필요하다. 일반적으로 우리가 사용하는 멀티 코어 컴퓨터에서는 Thread 단위로 병렬화를 할 수 있다. 이 뿐만 아니라  복수 대의 컴퓨터가 하나의 큰일을 나누는 병렬 기법도 있다. 




 OpenMP는 메모리를 공유하고 있는 하나의 컴퓨터에서 멀티 쓰레드 프로그래밍을 쉽게 하기 위한 기법으로 라이브러리나 툴이라고 생각하면 된다. 컴파일러 내부에서 제어할 수 있으며 코드에 Syntax를 추가하는 것만으로도 병렬화가 가능하다. 또한 리눅스 환경에서는 환경변수로 설정할 수 있다.


 

그리고 우리가 흔히 사용하는 Visual Studio에서도 지원하며, Gcc나 Intel Compiler에서도 지원한다.


 아래 표는 MPI와 Threads, 그리고 OpenMP가 제공하는 기능을 표로 나타낸 것이다.





2. Visual Studio 환경설정

  

  우선 프로젝트를 하나 생성 후 해당 프로젝트를 우측 마우스 클릭을 하여 속성을 누른다.


이후 구성 속성 -> C/C++ -> 언어로 들어간다.


OpenMP 지원을 예로 변경한다.


Visual Studio 2015에서도 OpenMP 2.0을 제공하고 있다.

 

 


3. Linux

  

  OpenMP 홈페이지인 http://openmp.org/wp/openmp-compilers/ 에 들어가 보면 우리가 흔히 쓰는 Gcc뿐만 아니라 여러 Complier에 서비스를 제공하고 있다. 아래 표를 보면 Visual Studio가 2.0 버전의 OpenMP를 제공하는 반면에 아래 컴파일러들은 높은 버전의 OpenMP를 제공하고 있다.

 

 

따라서 표에 있는 컴파일러가 Linux환경에 설치되어 있다면 사용법만 안다면 OpenMP를 바로 사용할 수 있다.



4. 출처

  

  • 2015 부산대 슈퍼컴퓨팅 교육자료

  • 2016 부산대 슈퍼컴퓨팅 교육자료


'SoftWare > 병렬 프로그래밍' 카테고리의 다른 글

[MPI]MPI - 기본 명령어  (0) 2016.08.18
[OpenMP]OpenMP - 기본 명령어  (1) 2016.08.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함