programing

OpenMP:지역 변수를 자동으로 개인적인 거?

firstcheck 2022. 8. 2. 22:36
반응형

OpenMP:지역 변수를 자동으로 개인적인 거?

#pragma omp parallel
{
    int x; // private to each thread ?
}

#pragma omp parallel for
for (int i = 0; i < 1000; ++i)
{
    int x; // private to each thread ?
}

감사해요!

추신:지역 변수를 자동으로 개인, 개인 조항을 이용한 점은?

네, 지역 변수를 자동으로 개인적인 거죠

의 존재 이유이다.private코드를 변경하지 않아도 된다는 조항입니다.

유일한 방법은 민간 조항 없이 다음과 같은 코드 평행하게 하다.

int i,j;
#pragma omp parallel for private(j)
for(i = 0; i < n; i++) {
    for(j = 0; j < n; j++) {
        //do something
    }
}

코드를 바꿀 수 있나.이런 예를 들어:

int i
#pragma omp parallel for
for(i = 0; i < n; i++) {
    int j;
    for(j = 0; j < n; j++) {
        //do something
    }
}

그것은 완벽하게 C89/C90 코드가 있으면 좋지만 한 OpenMP의 목표의 요건을 제외하고 추가할 코드를 바꿀 필요가 없다 유효하다.pragma또는 장애인은 컴파일 시간에 구현 가능한 명령문.

평행이 영역 안에 그 데이터는 각 스레드에 민간이다.

부디http://en.wikipedia.org/wiki/OpenMP#Data_sharing_attribute_clauses[데이터 특성 조항을 공유하는 것]참조하십시오.

언급URL:https://stackoverflow.com/questions/6358375/openmp-are-local-variables-automatically-private

반응형