コンテンツにスキップ

コンパイル

コンパイル

コンパイラの種類と環境設定

環境設定

使用したいコンパイラの種類およびバージョンはmoduleコマンドで設定します。
以下にコンパイラごとに読み込むモジュールファイルを示します。

コンパイラ バージョン moduleファイル名 備考
gcc 11.4.1 デフォルト(読み込みなし)
gcc 8.5.0 gcc/850 ワーク、計算のみ
gcc 12.3.0 gcc/1230 ワーク、計算のみ
Intel Compiler(64bit) 2024 intel/2024 ワーク、計算のみ
PGI(nvhpc) Compiler(64bit) 24.1 nvhpc/24.1 ワーク、計算のみ

コマンドと起動例

以下に、ソースプログラムごとの代表的なコンパイラ起動コマンドを示します。

コンパイラタイプ プログラム種類 コンパイラ起動コマンド
実行例
デバッガ
gcc version 11.4.1
gcc version 8.5.0
gcc version 12.3.0
C 64bit gcc gdb
gcc -o hello hello.c
C 32bit gcc
gcc -m32 -o hello hello.c
C++ 64bit g++
g++ -o hello hello.cpp
C++ 32bit g++
g++ -m32 -o hello hello.cpp
Fortran 64bit gfortran・・・・version8.5.0以外
gfortran -o hello hello.f
Fortran 32bit gfortran・・・・version8.5.0以外
gfortran -m32 -o hello hello.f
Fortran90 64bit gfortran・・・・version8.5.0以外
gfortran -o hello hello.f90
Fortran90 32bit gfortran・・・・version8.5.0以外
gfortran -m32 -o hello hello.f90
PGI(nvhpc)24.1
マニュアルはこちら
C64bit/32bit pgcc cuda-gdb
pgcc -o hello hello.c
C++ 64bit/32bit pgc++
pgc++ -o hello hello.cpp
Fortran 64bit/32bit pgf77
pgf77 -o hello hello.f
Fortran90 64bit/32bit pgf90
pgf90 -o hello hello.f90
Intel oneAP
マニュアルはこちら
C 64bit/32bit icx gdb-oneapi
icx -o hello hello.c
C++ 64bit/32bit icpx
icpx -o hello hello.cpp
Fortran 64bit/32bit
Fortran90 64bit/32bit
ifx
ifx -o hello hello.f

MPI 環境のコンパイルについては「MPI コンパイル」、OpenMP を使用したコンパイルについては「OpenMP コンパイル」を参照してください。


ライブラリ

MKLライブラリ

ワークサーバ、計算サーバで、MKL(Intel Math Kernel Library)ライブラリを利用することができます。 詳しくは、マニュアルを参照してください。

環境設定

moduleコマンドで環境設定が必要です。

  • Intelコンパイラ環境を使用する場合
$> module load intel/2024

使用例

MKLをリンクする際のコンパイラオプションについてはIntel Math Kernel Library Link Line Advisorを参照してください。

  • Intelコンパイラ [C]/[C++]/[Fortran]
$> module load intel/2024 
$> icx|icpx|ifx -o example example.[c|f] -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread -lm -ldl 

fftw3ライブラリ

fftw3ライブラリは、次のディレクトリにインストールされています。

ディレクトリ 種類 バージョン 備考
/usr/lib64 fftw3 without MPI 3.3.8 システムデフォルト
/opt/intel/oneapi/mkl fftw3 MKL版

使用例


MPI コンパイル

実行環境

MPI コンパイルは、ワークサーバ、計算サーバで実行できます。
MPI環境として、IntelMPIおよびOpenMPIが利用可能です。

環境設定

OpenMPIは、/etc/profile.dにて初期設定を行っています。デフォルトで使用できます。

設定可能なmoduleファイルを以下に示します。

MPI moduleファイル名
Intel MPI intel/2024
OpenMPI(4.1.5a1) OS標準

コンパイル実行例

IntelMPI

$> module load intel/2024 
$> mpiicx -o intelmpi_64 intelmpi_64.c

OpenMPI

$> mpicc -o openmpi_64 openmpi_64.c↓

ScaLAPACK

MPI環境で ScaLAPACK が利用可能です。 以下に、ScaLAPACK(/BLACS) をリンクする実行例を示します。

IntelMPI

[C]/[Fortran]

$> module load intel/2024 
 $> mpiicx|mpiifx -o intelmpi_sltest intelmpi_sltest.[c|f] -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64
 -lmkl_core -lmkl_sequential -lpthread -lm -ldl 

OpenMP プログラムのコンパイル

実行環境

OpenMP を使用したプログラムのコンパイルは、ワークサーバで実行できます。

環境設定

コンパイルを行う前にmoduleコマンドで環境変数設定を行う必要があります。

コンパイル実行例

gcc

以下に、gccを使ったコンパイルの例を示す。

$> gcc -fopenmp -o openmp_64.gcc openmp_64.c ↓

Intel コンパイラ

以下に、Intelコンパイラを使ったコンパイルの例を示す。

$> module load intel/2024 
$> icx -qopenmp -o openmp_64.icc openmp_64.c 

PGI(nvhpc) コンパイラ

以下に、PGIコンパイラを使ったコンパイルの例を示す。

$> module load nvhpc/24.1 
$> pgcc -mp -o openmp_64.pgi openmp_64.c