2012-09-07 2 views
8

omp 병렬 블록 외부의 critical, single, master 또는 barrier와 같은 omp pragma를 사용해도됩니까? OMP 병렬 블록에서 호출 할 수있는 함수가 있거나 없습니다. 그렇다면 중요한 부분에 코드의 일부를 포함해야합니다. 즉,이 코드는 괜찮습니까?omp 병렬 블록 외부의 omp pragmas

OpenMP 설명서에서 언급하지 않은 것을 발견했습니다. 나는 코드가 1 스레드 실행과 똑같이 행동해야한다고 생각한다 - 이것이 gcc에서 작동하는 방법이다. 이 동작이 이식 가능한지, 아니면 사양에서 정의하지 않은 것이고 무엇이든 기대할 수있는 것인지 알고 싶습니다. this 문서에 따르면

+0

나는 이것이 대부분의 pragmas에서 괜찮다고 생각합니다. – osgx

답변

2

:

할 일 /에 존재하는 경우, 섹션, SINGLE는, MASTER와 장벽 지침은 동적으로 둘러싸는 병렬로 결합한다. 현재 실행중인 병렬 영역이 없으면 지시문은 아무 효과가 없습니다.

그래서 그 pragma는 병렬 영역 밖에서 사용할 수 있습니다. 나는 아직도 문서에 명시 적으로 기술되어 있지 않습니다.

관련 문제