OpenMP를 사용하는 응용 프로그램을 컴파일하고 있습니다. -fopenmp와 함께 gcc 4.4를 사용하고 있습니다. 또한이 애플리케이션은 자체 버전의 OpenMP (libiomp5)가 포함 된 IPP를 사용합니다. (참고 : 우리는 ippSetNumThread (1)을 호출하여 IPP의 내부 스레딩을 비활성화하고 있습니다. 인텔의 설명서에 따르면 다른 스레딩 라이브러리와의 충돌을 피할 수 있지만 IPP와의 링크는 여전히 libiomp5.so의 링크입니다.)libiomp5와 libgomp을 함께 사용할 수 있습니까?
이후 libiomp5. 그래서 이미 링크되어 있습니다. 우리는 이 아니고 libgomp.so (gcc의 OpenMP 버전)와 연결되었습니다.이 아닙니다. 오랫동안이 작업이 진행되었지만 겉보기에 중대한 변화가 있은 후에 우리는 우리가 지원하는 4 개의 플랫폼 중 하나에서 매우 이상한 OpenMP 관련 충돌을 보았습니다. 다른 3 개의 플랫폼은 여전히 잘 작동합니다.
libgomp.so와 libiomp5.so에 링크하면 충돌을 일으킬 수 있습니다.
이- 이러한 라이브러리 안전 모두 연결되어 :
나는 이것에 대해 몇 가지 질문이? 두 사람이 같은 기호를 정의하는 것처럼 보입니다.
- OpenMP libiomp5.so가 지원하는 버전을 알 수있는 방법이 있습니까? gcc 4.4에서 libgomp.so는 OpenMP v3.0에 있어야합니다. libiomp5.so의 OpenMP 버전에 대한 인텔의 설명서에서 정보를 찾을 수 없습니다. 아무도 며칠 동안 대답하지 않았다 때문에