<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=OpenMP</id>
	<title>OpenMP - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=OpenMP"/>
	<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=OpenMP&amp;action=history"/>
	<updated>2026-05-19T11:19:56Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=OpenMP&amp;diff=618&amp;oldid=prev</id>
		<title>Ahn9807: 새 문서: 분류: 스레드/프로세스 분류: 시스템 최적화 분류: 오픈소스 프로젝트 분류: 동시성 프로그래밍  == 개요 == OpenMP(Open Multi-Processing)는 공유 메모리 다중 처리 프로그래밍 API로, C, C++, 포트란 언어와, 유닉스 및 마이크로소프트 윈도우 플랫폼을 비롯한 여러 플랫폼을 지원한다.  병렬 프로그래밍의 하이브리드 모델로 작성된 응용 프로그램은...</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=OpenMP&amp;diff=618&amp;oldid=prev"/>
		<updated>2023-02-13T02:12:42Z</updated>

		<summary type="html">&lt;p&gt;새 문서: &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%EC%8A%A4%EB%A0%88%EB%93%9C/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4&quot; title=&quot;분류:스레드/프로세스&quot;&gt;분류: 스레드/프로세스&lt;/a&gt; &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%EC%8B%9C%EC%8A%A4%ED%85%9C_%EC%B5%9C%EC%A0%81%ED%99%94&quot; title=&quot;분류:시스템 최적화&quot;&gt;분류: 시스템 최적화&lt;/a&gt; &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4_%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8&quot; title=&quot;분류:오픈소스 프로젝트&quot;&gt;분류: 오픈소스 프로젝트&lt;/a&gt; &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%EB%8F%99%EC%8B%9C%EC%84%B1_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D&quot; title=&quot;분류:동시성 프로그래밍&quot;&gt;분류: 동시성 프로그래밍&lt;/a&gt;  == 개요 == OpenMP(Open Multi-Processing)는 공유 메모리 다중 처리 프로그래밍 &lt;a href=&quot;/noriwiki/index.php?title=API&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;API (없는 문서)&quot;&gt;API&lt;/a&gt;로, &lt;a href=&quot;/noriwiki/index.php?title=C&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;C (없는 문서)&quot;&gt;C&lt;/a&gt;, &lt;a href=&quot;/noriwiki/index.php?title=C%2B%2B&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;C++ (없는 문서)&quot;&gt;C++&lt;/a&gt;, &lt;a href=&quot;/noriwiki/index.php?title=%ED%8F%AC%ED%8A%B8%EB%9E%80&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;포트란 (없는 문서)&quot;&gt;포트란&lt;/a&gt; 언어와, &lt;a href=&quot;/noriwiki/index.php?title=%EC%9C%A0%EB%8B%89%EC%8A%A4&quot; title=&quot;유닉스&quot;&gt;유닉스&lt;/a&gt; 및 마이크로소프트 윈도우 플랫폼을 비롯한 여러 플랫폼을 지원한다.  병렬 프로그래밍의 하이브리드 모델로 작성된 응용 프로그램은...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[분류: 스레드/프로세스]]&lt;br /&gt;
[[분류: 시스템 최적화]]&lt;br /&gt;
[[분류: 오픈소스 프로젝트]]&lt;br /&gt;
[[분류: 동시성 프로그래밍]]&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
OpenMP(Open Multi-Processing)는 공유 메모리 다중 처리 프로그래밍 [[API]]로, [[C]], [[C++]], [[포트란]] 언어와, [[유닉스]] 및 마이크로소프트 윈도우 플랫폼을 비롯한 여러 플랫폼을 지원한다.&lt;br /&gt;
&lt;br /&gt;
병렬 프로그래밍의 하이브리드 모델로 작성된 응용 프로그램은 OpenMP와 메시지 전달 인터페이스 ([[MPI]])를 둘 다 사용하거나, 더 투명성 있는 방식으로 비공유 메모리 시스템을 위한 OpenMP 확장을 사용하여 컴퓨터 클러스터 상에서 구동할 수 있다.&lt;br /&gt;
&lt;br /&gt;
== 사용법 ==&lt;br /&gt;
OpenMP는 #progma 키워드를 이용하여 병렬화를 하게 된다. #progma는 컴파일러에게 특정한 지시 사항을 전달하는 것인데, #progma를 통해서 loop를 병렬적으로 처리하게 된다. 또한 Section을 통해서 소스 코드를 병렬화 시킬 수도 있다. &lt;br /&gt;
=== Loop 병렬화 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=c&amp;gt;&lt;br /&gt;
#progma omp parallel for&lt;br /&gt;
   for (i=1; i &amp;lt; n; i++)&lt;br /&gt;
       /* i is private by default */&lt;br /&gt;
       /* Compiler notice that this can be parallel */&lt;br /&gt;
       Do Something&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Section 병렬화 ===&lt;br /&gt;
&lt;br /&gt;
=== 예시 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=c&amp;gt;&lt;br /&gt;
 #include &amp;lt;omp.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 int main (int argc, char *argv[]) {&lt;br /&gt;
   int th_id, nthreads;&lt;br /&gt;
   #pragma omp parallel private(th_id)&lt;br /&gt;
   {&lt;br /&gt;
     th_id = omp_get_thread_num();&lt;br /&gt;
     printf(&amp;quot;Hello World : 스레드 %d\n&amp;quot;, th_id);&lt;br /&gt;
     #pragma omp barrier&lt;br /&gt;
     if ( th_id == 0 ) {&lt;br /&gt;
       nthreads = omp_get_num_threads();&lt;br /&gt;
       printf(&amp;quot;모두 %d 개의 스레드가 있습니다\n&amp;quot;,nthreads);&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
   return EXIT_SUCCESS;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
</feed>