openMP가 shared memory 구조를 지원한다고 하는데
다르게 말하면 함수나 block 구현시
private 메모리가 생성되는걸 응용하여 사용하는것 같은 느낌
그리고 이러한 공유 변수의 제어는 default 키워드를 이용하는데
default(shared)가 기본 값이고 none으로 할 경우 별도의 변수를 선언을 해주어야 한다.
$ cat test.c
다르게 말하면 함수나 block 구현시
private 메모리가 생성되는걸 응용하여 사용하는것 같은 느낌
그리고 이러한 공유 변수의 제어는 default 키워드를 이용하는데
default(shared)가 기본 값이고 none으로 할 경우 별도의 변수를 선언을 해주어야 한다.
#pragma omp parallel
default(shared|none)
private
firstprivate
lastprivate
|
$ cat test.c
#include "omp.h" void thread() { int res = 0; #pragma omp parallel default(none) { // int res = 0; // initialize printf("res = %d\n",res); } } int main(int argc, const char *argv[]) { thread(); return 0; } |
$ gcc -fopenmp test.c -lm
test.c: In function ‘thread’:
test.c:16:8: error: ‘res’ not specified in enclosing parallel
test.c:12:9: error: enclosing parallel
make: *** [all] 오류 1 |
'Programming > openMP' 카테고리의 다른 글
openMP atomic과 critical (0) | 2013.11.26 |
---|---|
openMP single 과 master의 차이점 (0) | 2013.11.26 |
openMP gnu implement (0) | 2013.11.11 |
openMP example (0) | 2013.09.29 |
openMP로 구현한 야매 sum() (0) | 2013.09.25 |