インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

マルチスレッド・プログラムのコンパイルとリンク

マルチスレッド・アプリケーションをビルドする場合は、Fortran ランタイム・ライブラリーのスレッドセーフなバージョンとリンクし、スレッドセーフ機能を有効にします。これは、threads および reentrancy:threaded コンパイラー・オプションによって指定されます。Windows* では、後述のとおり、Visual Studio* 統合開発環境 (IDE) を使用することもできます。

また、正しいライブラリー・ファイルとリンクする必要があります。OpenMP* や Co-Array など、一部のライブラリーは常に動的にリンクされます。

Linux* および macOS*

静的にリンクされたマルチスレッド・プログラムを作成するには、libifcoremt.a スタティック・ライブラリーとリンクします。

共有ライブラリーを使用するには、アプリケーションを libifcoremd.so (Linux*) または libifcoremd.dylib (macOS*) とリンクします。

コマンドラインからマルチスレッド・プログラムをコンパイルおよびリンクする方法:

  1. IA32ROOT 環境変数に、ライブラリー・ファイルを含むディレクトリーが指定されていることを確認します。

  2. -threads オプションを使用して、プログラムのコンパイルとリンクを行います。次に例を示します。

    ifort -threads mythread.f90 

    確実にスレッドセーフ/再入可能なランタイム・ライブラリーがリンクされ、正しく初期化されるように、リンク段階およびメインルーチンのコンパイルで threads オプションを使用すべきです。

Windows*

静的にリンクされたマルチスレッド・プログラムを作成するには、再入可能な LIBIFCOREMT.LIB サポート・ライブラリーとリンクします。

共有ライブラリーを使用するには、アプリケーションを LIBIFCOREMD.LIB インポート・ライブラリーとリンクすることで参照される再入可能な LIBIFCOREMD.DLL 共有ライブラリーを使用します。

LIBIFCOREMT.LIB を使用してビルドされたプログラムが呼び出すダイナミック・リンク・ライブラリーは、Fortran ランタイム・ライブラリーのコードやデータを共有しません。DLL を呼び出す場合、LIBIFCOREMD.LIB をリンクする必要があります。

追加情報:

Visual Studio* を使用してマルチスレッド・プログラムをコンパイルおよびリンクする方法:

  1. [ファイル] > [新規作成] > [プロジェクト] をクリックして新規プロジェクトを作成します。

  2. 左のペインから [Intel® Visual Fortran Projects (インテル® Visual Fortran プロジェクト)] をクリックして、インテル® Fortran プロジェクトの種類を表示します。

  3. ソースコードを含むファイルをプロジェクトに追加します。

    [プロジェクト] メニューから [プロパティ] を選択します。プロジェクトの [プロパティ ページ] ダイアログボックスが表示されます。

  4. [Fortran] フォルダーから [Libraries (ライブラリー)] カテゴリーを選択し、[Runtime Library (ランタイム・ライブラリー)][Multithreaded (マルチスレッド)] または [Multithread DLL (マルチスレッド DLL)] (または相当するデバッグバージョン) に設定します。

  5. [ビルド] メニューから [ソリューションのビルド] を選択して、実行ファイルを作成します。

コマンドラインからマルチスレッド・プログラムをコンパイルおよびリンクする方法:

  1. LIB 環境変数に、ライブラリー・ファイルを含むディレクトリーが指定されていることを確認します。

  2. -threads オプションを使用して、プログラムのコンパイルとリンクを行います。次に例を示します。

    ifort /threads mythread.f90

    確実にスレッドセーフ/再入可能なランタイム・ライブラリーがリンクされ、正しく初期化されるように、リンク段階およびメインルーチンのコンパイルで threads オプションを使用すべきです。