2010-07-28 3 views
0

C++ 객체의 생성자에서 openmp를 사용할 수 있습니까?C++ 객체 생성자에서 OpenMP 사용

그런 생성자가있는 세계 정적 개체가있을 때 수행 할 작업은 무엇입니까?

+3

당신이 (모순적으로) 묻는 것을 보여주는 몇 가지 코드를 게시하십시오. –

+0

예, 생성자는 다른 모든 것과 마찬가지로 코드를 실행합니다. – GManNickG

+1

명확히하기 위해 로컬 또는 글로벌 정적을 의미합니까? 그들은 초기화 순서가 다르다 – Anycorn

답변

1

예. 이것이 생성자에서 OpenMP 함수를 호출하는 것과 같다고 상상해보십시오.

두 번째 요점은 구현에 달려 있다는 점입니다. 나는 pthreads 구현이 전역 정적 객체에 대해 괜찮을 것이라고 확신한다. http://www.terboven.com/download/poster_A0_portrait_neu_formatiert.pdf

정적 초기화가 다소 어려울 수도 있습니다 (http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.12). 정적 객체는 main보다 먼저 초기화된다는 점에 유의하십시오.

+0

언제 openmp 시작 스레드가 될까요? 메인() 시작 또는 그 전에? – osgx

+1

@osgx는 병렬 영역이 발생할 때마다 있어야합니다. 정확한 스레드 구현은 구현에 따라 다름 (재사용 가능/단일 스레드 일 수도 있음) – Anycorn

+0

intel mp로 확인 - 그러한 생성자를 지원합니다 – osgx

관련 문제