インテル® oneAPI で提供される共有ライブラリーへの参照の解決

インテル® oneAPI ツールで配布されている共有ライブラリーを使用している場合は、ユーザーのシステムにこれらの共有ライブラリーがあることを確認する必要があります。

ユーザー・コミュニティーにデプロイされるアプリケーションがインテル® oneAPI ツールで配布される共有ライブラリー (Linux* の .so 共用オブジェクト、Windows* の .dll ダイナミック・ライブラリー) に依存している場合は、ユーザーのシステムにこれらの共有ライブラリーがあることを確認する必要があります。プログラムやコンポーネントが依存する共有ライブラリーは、次の方法で特定できます。

Linux*
ldconfig コマンドを使用します。
Windows*
dumpbin /DEPENDENTS programOrComponentName コマンドを使用します。

上記のコマンドを実行後、ユーザーへライブラリーをデプロイする方法を選択する必要があります。

共有ライブラリーのデプロイ

アプリケーションのビルド、実行、デバッグが完了したら、ユーザーにデプロイします。デプロイメントには、インテル® oneAPI ツールキットのコンポーネントのライブラリーを含む共有ライブラリーが含まれます。

デプロイメント・モデル

アプリケーションが依存するインテル® oneAPI ツールキットからの共有ライブラリーをデプロイする方法は 2 つあります。

プライベート・モデル

インテル® oneAPI ツールキットからアプリケーション環境へ共有ライブラリーをコピーして、アプリケーションと一緒にパッケージ化してデプロイします。インストールしたインテル® oneAPI ツールキットとコンポーネントに関連するライセンスとサードパーティーのファイルを確認して、再配布可能なファイルを決定します。

このモデルの利点は、ライブラリーとバージョンを制御できるため、テストしたライブラリーのみをパッケージ化してデプロイすることができます。欠点は、エンドユーザーがシステムにインストールされたライブラリーを見ることができることです。また、更新が必要になるたびにライブラリーを更新する責任があります。

パブリックモデル

インテルが提供するランタイムパッケージを使用します。ユーザーは、アプリケーションをインストールする際に、これらのパッケージをインストールします。ランタイムパッケージは固定の場所にインストールされるため、インテル® oneAPI ツールで開発されたすべてのアプリケーションで使用できます。

利点は、各ライブラリーの 1 つのコピーをすべてのアプリケーションで共有することで、パフォーマンスが向上することです。また、アプリケーションの更新から独立して、ランタイムパッケージの更新によりライブラリーの問題を解決することができます。欠点は、ランタイムパッケージはプライベート・モデルのパッケージよりもサイズが大きくなることです。また、テストしたランタイムライブラリーのバージョンとエンドユーザーのバージョンが同じではない場合があります。

環境、要件、ユーザーのニーズに応じて最適なモデルを選択してください。

インテルは、新しいバージョンのコンパイラー・サポート・ライブラリーが古いバージョンのコンパイラー・オブジェクトでも動作することを保証していますが、新しいバージョンのオブジェクトには新しいバージョンのコンパイラー・サポート・ライブラリーが必要です。新しいコンパイラー・サポート・ライブラリーが古いコンパイラーで動作しない互換性の問題が発生した場合、十分な警告が提供され、デプロイされたアプリケーションが動作し続けるようにライブラリーのバージョンが変更されます。

追加のステップ

どちらのモデルでも、通常は setvars/vars スクリプトやモジュールファイルで処理される特定の環境変数を手動で設定する必要があります。

例えば、インテル® MPI ライブラリーでは、インストール時に次の環境変数を設定する必要があります。

Linux*
I_MPI_ROOT=installPath FI_PROVIDER_PATH=installPath/intel64/libfabric:/usr/lib64/libfabric
Windows*
I_MPI_ROOT=installPath

インテル® oneAPI 製品のマイナーリリースの互換性

インテル® oneAPI 製品の各マイナーバージョンは、同じリリース (例えば 2021) のほかのマイナーバージョンと互換性があります。API や ABI に大きな変更があった場合は、メジャーバージョンが上がります。例えば、バージョン 2021.1 のインテル® oneAPI 製品でアプリケーションをテストした場合、すべての 2021.x バージョンで動作します。しかし、バージョン 2022.x や 19.x での動作は保証されません。