OpenMPを使用するアプリケーションをコンパイルしています。 -fopenmpとともにgcc 4.4を使用しています。また、独自のバージョンのOpenMP(libiomp5)を含むIPPも使用しています。 (注:私たちは、ippSetNumThread(1)を呼び出すことによってIPPの内部スレッドを無効にしていますが、インテルのドキュメントによれば、これは他のスレッドライブラリとの競合を避けるはずです。既にリンクされているので、ではありません。はlibgomp.so(gccのOpenMPのバージョン)とリンクしていません。長い間、これはうまくいきましたが、私たちがサポートしている4つのプラットフォームのうちの1つ(非常にうまく動作する他の3つのプラットフォーム)で、OpenMP関連のクラッシュが非常に奇妙に見え始めたようです。libiomp5とlibgompは混在できますか?
私がlibgomp.soとlibiomp5.soにリンクしていると、クラッシュする可能性があります。
私はこのことについてカップルの質問があります。
- は、これらのライブラリは、安全の両方にリンクしていますか?両方とも同じシンボルを定義しているようです。
- OpenMP libiomp5.soがサポートしているバージョンを知る方法はありますか? gcc 4.4では、libgomp.soはOpenMP v3.0になければなりません。 OpenMPバージョンのlibiomp5.soに関するインテルの文書には情報がありません。