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 |
