ログイン・コンパイル
ログイン
接続ホスト名: lmpcc
% ssh lmpcc -l <UserID>
環境設定
ログイン時にはデフォルトの開発環境(Intel+ HPE-MPT)が設定されています. 利用するコンパイラの変更やライブラリのリンクは必要なモジュールをロードして行います.
1. ロードされているモジュールの一覧表示
% module list
2. 利用可能なモジュールの確認
% module avail
3.モジュールのロード/アンロード
% module load/unload <module name>
4.モジュールの入れ替え
% module swap <module name before> <module name after>
コンパイル
コンパイラ | Fortran | C | C++ | 実行コマンド例 |
---|---|---|---|---|
GCC | g77,gfortran | cc | g++ | |
Intel Compiler | ifort | icc | icpc | |
PGI Compiler | pgf90 | pgcc | pgCC |
シリアルプログラム:
% icc -O3 -o comp.exe comp.c
MPIプログラム:
% icc -O3 -o comp.exe comp.c -lmpi
OpenMPプログラム:
% icc -O3 -qopenmp -o comp.exe comp.c
MPI+OpenMPハイブリッド:
% icc -O3 -qopenmp -o comp.exe comp.c -lmpi
コンパイルオプション(intelコンパイラ)
-mcmodel
特定のメモリモデルでコード生成とデータ格納を行うようコンパイラに指示します
(デフォルト:small)
使用例)icc -O3 -mcmodel=medium -shared-intel -o sample.exe sample.c
特定のメモリーモデルでコード生成とデータ格納を行うようコンパイラーに指示します。コードサイズとパフォーマンスに影響します。
プログラムにあるグローバルとスタティック・データが合計で 2GBよりも少ない場合、-mcmodel=small で十分です。
2GB を超えるグローバルとスタティック・データには、-mcmodel=medium または -mcmodel=large が必要です。2GB を超えるメモリー割り当ては、-mcmodel のどの設定でも行うことができます。
引数 | |
---|---|
small | コードとデータをアドレス空間の最初の 2GB までに制限するようコンパイラーに指示します。コードとデータのすべてのアクセスは、命令ポインター(IP) 相対アドレス指定で行われます。 |
medium | コードを最初の 2GB までに制限するようコンパイラーに指示します。データは制限されません。 コードは IP 相対アドレス指定でアクセスできますが、データのアクセスは絶対アドレス指定を使用する必要があります。 |
large | コードもデータも制限されません。コードもデータもアクセスは絶対アドレス指定を使用しなければなりません。 |
注意)-mcmodel=medium または -mcmodel=large を指定すると、 オプション -shared-intel が設定されます。