本ページでは、SQUIDのベクトルノード群でご利用いただけるライブラリについて記載します。
NEC Numeric Library Collection (NEC NLC)
HDF5
NetCDF
Parallel netcdf
NEC Numeric Library Collection (NEC NLC)
-
NEC NLCはベクトル計算環境のSX-Aurora TSUBASAシステム用に最適化された数値演算ライブラリです。NEC SX-ACEシステムで提供していたASL、MathKeisanを包含し、BLAS、LAPACK、ScaLAPACK等をはじめとした多様なライブラリの利用が可能です。
本システムでは、BaseVECモジュールの環境内に次の2つのモジュールが整備されています。
・necnlcモジュール(32bit整数版)
・necnlc-mpiモジュール(32bit整数+分散メモリ並列)
以下に本システムでのライブラリのリンク例を記載します。
分散メモリ並列なし
# ASLネイティブインターフェース 32bit整数版ライブラリを静的リンク
$ module load BaseVEC
$ module load necnlc/2.3.0
$ nfort -c sample.f # コンパイル
$ nfort -lasl_sequential -static sample.o # リンク
分散メモリ並列あり
# ScaLAPACK 分散メモリ並列版ライブラリを静的リンク
$ module load BaseVEC
$ module load necnlc-mpi/2.3.0
$ mpinfort -c sample.f # コンパイル
$ mpinfort -lscalapack -llapack -lblas_sequential \ # リンク
-static sample.o
※ -static オプションを付与せず動的リンクとすることも可能です。
NEC NLCの詳細な利用方法は、公式のオンラインドキュメントをご参照ください。
NEC Numeric Library Collection 2.3.0 ユーザーズガイド
HDF5
-
HDF5は、大量データを階層的に構造化して格納することが可能なファイルを生成するためのライブラリです。計算環境毎に整備されています。このライブラリを利用するためには、コンパイル時に-lhdf5 のオプションを付与します。以下はライブラリのリンク例です。
$ module load BaseVEC
$ module load hdf5
$ ncc -o h5-sample h5-sample.c -lhdf5 -ldl
NetCDF
-
NetCDFは、科学的な多次元データを格納する目的で、共通データ形式として広く使われているバイナリファイルフォーマットが利用できるライブラリです。本システムでは、計算環境毎に、C言語/C++言語/FORTRAN言語のそれぞれから利用できるように整備されています。ライブラリを利用するためには、コンパイル時に-lnetcdf等 のオプションを付与します。以下はライブラリのリンク例です。
C言語
$ module load BaseVEC
$ module load netcdf-c
$ ncc -o ncdf-sample ncdf-sample.c -ldl -lnetcdf -lhdf5_hl -lhdf5 -lszf
C++言語
$ module load BaseVEC
$ module load netcdf-cxx
$ nc++ -o ncdf-sample ncdf-sample.cpp \
-lnetcdf_c++4 -lnetcdf -lhdf5 -lhdf5_hl -ldl -lsz
FORTRAN言語
$ module load BaseVEC
$ module load netcdf-fortran
$ nfort -o ncdf-sample ncdf-sample.f90 -lnetcdff -lnetcdf -lhdf5 -lhdf5_hl -ldl -lsz
PnetCDF
-
PnetCDFは、NetCDF形式のファイルに対して、並列プログラムから同時アクセスを行うためのライブラリです。本システムでは、計算環境毎に、C言語/C++言語/FORTRAN言語のそれぞれから利用できるように整備されています。ライブラリを利用するためには、コンパイル時に-lpnetcdf等 のオプションを付与します。以下はライブラリのリンク例です。
C言語
$ module load BaseVEC
$ module load pnetcdf-c
$ mpincc -o pncdf-sample pncdf-sample.c -lpnetcdf -lmpi
C++言語
$ module load BaseVEC
$ module load pnetcdf-cxx
$ mpinc++ -o pncdf-sample pncdf-sample.cpp -lpnetcdf -lmpi -lmpi
FORTRAN言語
$ module load BaseVEC
$ module load netcdf-fortran
$ mpinfort -o pncdf-sample pncdf-sample.f90 -lpnetcdf -lmpi