バージョン | システムA | システムB | システムC | システムG | クラウド | 備考 |
---|---|---|---|---|---|---|
2022.1.2 | + | + | + | - | + | Intel oneAPI 2022 |
バージョン | moduleファイル名 |
---|---|
2022.1.2 (default) | intel/2022 |
システムにログインした時点で、Intelコンパイラがデフォルトで設定されています。
$ module list
Currently Loaded Modulefiles:
x) SysB/2022 x) PrgEnvIntel/2022 x) intel/2022
ログイン時に自動で環境設定を行いたい場合は、ログインシェルの起動ファイルに必要なmoduleコマンドを記述してください。詳細は環境設定をご覧ください。 moduleコマンドの詳細はModulesをご覧ください。
コンパイラ | コマンド | 実行形式 |
---|---|---|
Intel Fortran コンパイラ クラシック | ifort | ifort [オプション] ファイル名 |
Intel Fortran コンパイラ | ifx | ifx [オプション] ファイル名 |
オプション名 | 説明 |
---|---|
-o FILENAME | オブジェクトファイルの名前を指定します。 |
-mcmodel=medium | 2Gbyteを超えてメモリを利用できるようになります。 |
-shared-intel | インテルが提供するライブラリをすべて動的にリンクします。 |
-fpic | 位置に依存しないコードを生成します。 |
-qopenmp | OpenMP指示子を有効にしてコンパイルします。 指定した GPU へのオフロードを有効にするには、-fopenmp-targets (*1) を併せて使用します。 |
-parallel (*2) | 自動並列化を行います。 |
-O0/-O1/-O2/-O3 | 最適化のレベルを指定します(デフォルトは-O2)。 |
-fast | プログラムの実行速度が最大になるように最適化します。-fast オプションにより、次のオプションが付与されます。-ipo, -O3, -no-prec-div,-static, -fp-model fast=2, and -xHost |
-ip (*2) | 単一ファイル内で、手続き間の処理を最適化します。 |
-ipo | 複数ファイル間で、手続き間の処理を最適化します。 |
-qopt-report | 実施したすべての最適化についての情報を表示します。(*2) 実施した最適化についての情報をYAMLで出力します。(*1) |
-qopt-report-file=KEYWORD | 実施した最適化についての情報を、ファイル(filename) / 標準エラー出力(stderr) / 標準出力(stdout)に出力します。このオプションを使用する場合、オプション -qopt-report を指定する必要はありません。 |
-free/-nofixed | プログラムが自由形式で記述されていることを明示します。 |
-nofree/-fixed | プログラムが固定形式で記述されていることを明示します。 |
-warn all | すべての警告メッセージを表示します。declarations,alignments等を指定することも可能です。 |
-check all | すべての実行時診断機能を有効にします。bounds,uninit等を指定することも可能です。 |
(*1) ifx でのみ使用可
(*2) ifort でのみ使用可
$ ifort test.f90 # ifortの例
$ ifx test.f90 # ifxの例
$ ifort -parallel test.f90
$ tssrun -A p=1:t=4:c=4 ./a.out # 並列数4を指定して実行
※ifxでは使用不可
OpenMPは、プログラムの並列化のためのオープン規格です。 ソースコードに#pragma ompで始まる指示を書き込み、所定のオプションをつけてコンパイルするだけで、コンパイラに自動で並列化を行わせることができます。
OpenMPへの指示を書き込んだソースコードをコンパイルするには、-qopenmpオプションをつけます。
$ icx -qopenmp test.c
コンパイルしたプログラムを実行する際、-Aオプションでtとcに並列数を指定すると、その並列数でプログラムが実行されます。
$ tssrun -A p=1:t=8:c=8 ./a.out # 並列数8を指定して実行
Intel Fortran コンパイラは、プログラムの誤りや通知すべき情報があるときに、以下に示す形式でメッセージを出力します。
ファイル名(行番号): XXX #YYY: メッセージ本文
ソースコードの該当行の内容
--------------^
出力例
sample.f90(26): error #5560: Subscript #2 of the array C has value 20 which is greater than the upper bound of 2
print *, c(1,1),",", c(1,20)
-----------------------^
compilation aborted for sample.f90 (code 1)