第2回 数値計算ライブラリの使い方
実施日:1996年6月20日
目次
- 情報センターで使える数値計算ライブラリ
- 情報センターで使える数値計算ライブラリの機能
- どのライブラリを使ったらいいか?
- プログラム中でライブラリを呼ぶ!
- コンパイルの仕方、ジョブの投入のしかた
- CPU時間の計測
- 情報センターで使える数値計算ライブラリ
カッコ内は開発提供元、[] 内は今後の説明に使う略称
- Cray Soft LibSci 1.0 (Cray Research) [LibSci]
- IMSL Fortran90 MP Library 1.0 (Visual Numerics) [IMSL F90]
- IMSL Fortran77 MP Library 3.0 (Visual Numerics)
●f77でコンパイルしたもの [新 IMSL F77]
●f90でコンパイルしたもの [旧 IMSL F77]
- IMSL Fortran77 Library 2.0 (Visual Numerics) [kamo族 IMSL]
⇒
- 情報センターで使える数値計算ライブラリの機能
- LibSci
スカラ、ベクトル、行列などに対する浮動小数点演算、整数、論理データに対する演算を行うルーチンを集めたもの。並列プログラミングの最適化がなされているので、ルーチンを呼ぶだけでCS6400の並列化機構を効率よく利用することができる。Fortranからの呼び出しを前提に設計されているが、Cからも呼び出すことができる。
▼線形代数計算(BLAS)
▼連立1次方程式、行列固有値問題などの数値計算(LAPACK)
▼FFT、信号処理
▼乱数
- 旧 IMSL F77
線形代数計算 FFT 乱数
(IMSL独自のBLAS, 線形計算)
微分方程式、補間・近似、非線形方程式(常、偏)、特殊関数
- 新 IMSL F77
旧 IMSL F77+160個のdouble complex使用のライブラリ
- IMSL F90
f90で最初からかかれたもの。
線形代数計算 FFT 乱数、積分、微分方程式
(Deffiend Operation)

⇒
- どのライブラリを使ったらいいか?

⇒
- プログラム中でライブラリを呼ぶ!
LibSci DGEMMをcf90から使った例
LibSciとCとのリンク例
IMSL F77(DMRRR)をcf90またはf77から使った例
IMSL F77(DQ2ROG)とCとのリンク例
IMSL F90 Deffiend Operationの例
IMSL F90 lin_sol_genの使用例
⇒
- コンパイルの仕方、ジョブの投入のしかた
- LibSci
LibsciをリンクするにはfortranまたはCのコマンド行に
-lSci -lthread
を加える。
- 旧 IMSL F77、新 IMSL F77
▼f90の場合
f90 file.f $LINK_F90
▼f77の場合
f77 file.f $LINK_F90 -L/opt/craysoft/f90e/lib -lf90 -lthread
- IMSL F90
▼f90の場合
f90 file.f $INTF1 $INTF2 $INTF3 $INTF4 $LINK_F90
⇒
- CPU時間の計測
● F90の場合のプログラム例を示します。
program f90
dimension dum(2)
:
ops=2.*n**3
t1=etime(dum)
call sub(a,b,c,n)
t2=etime(dum)
flops=ops/(t2-t1)
write(*,*) t2-t1,'sec ',flops*1.e-6,'Mflops'
:
function etime()
etime=timef()*0.001
return
end
● 計測例1:
行列の積 ABを計算する。
n=32〜1024(2)
NCPUS=1,2,3,6の各場合
Mflops=2*n**3/(t2-t1)*0.001
▽ IMSL90 (IMSL社製Fortran90対応) ライブラリなし、
ここではmatmulを使う。
▽ IMSL90 (IMSL社製Fortran90対応F0).x.
▽ IMSL77 (IMSL社製Fortran77対応) DMRRR
▽ LibSci(Cray社製) DGEMM
● 計測例2:
連立方程式 Ax=Bを計算する。
n=32〜1024(2)
NCPUS=1,2,3,6の各場合
Mflops=2*n**3/(t2-t1)*0.001
▽ IMSL90 (IMSL社製Fortran90対応) lin_sol_gen
▽ IMSL90 (IMSL社製Fortran90対応F0).ix.
▽ IMSL77 (IMSL社製Fortran77対応) DLSORG
▽ LibSci(Cray社製) DGETRF, DGETRS
⇒
講習会内容一覧に戻る