大計の大判プリンターでのPower Point File の出力.これで紙を張り合わせるのに疲れなくてすむし,貧乏くさくなくていい!大計ありがとう!だけどUSBハブは真っ当なのに変えて欲しい.北大大計センターの名が....
やりたいこと | そのためにすべきこと |
現在使用しているファイル容量を知るには | du -k コマンドでcurrent directory以下のファイル容量を1024k byte=1MB単位のブロック数で表示.つまり,これがファイル容量(MB)と思えばよいのだろう. |
スーパーコンピューターのデバックオプションは | -debug f90 -debug test.f のように使えばよい.詳しくは,HI-UX/MPP for SR8000, 最適化 FORTRAN90 使用の手引の「2.4.5 デバッグ用情報出力オプション 」を参照のこと.北大大計センターのUIDを持っていれば,webでも見れる. |
wine上のデバックオプションは | +check=all f90 +check=all test.f のように使えばよい. |
コンパイルでinvalid delimeterとか言われて全ての行にエラーが出ていたら | パソコンで作成したファイルをバイナリーでFTP転送すると改行のコードが合わないために,こういうエラーになることがある.アスキーで転送し直すとよい. |
jobを投入するには | qsub -q job-class, job-classは大容量メモリー(13GB)がp, q, r, 小容量メモリー(6.5GB)がa, b, c.時間は1,6,24時間. |
jobの状態を知るには | qstat で自分のjob,qstat -aで他人も含めて全員のjob |
SR8000で出力されるデータ形式は | big_endian! 最近のコンパイラーでは,big か little endian を使い分けられるcompile option が用意されているが,そういった気の利いたものはなさそう. |
プログラムを速くするには(1,do loopの中) | ループの中では, if 文,sin, cosなどの組み込み関数,subroutine call, 割り算,は可能なかぎりなしで済ませる.sin, cosは多くの場合,あらかじめ値を計算して配列に入れておけばよい.割り算は逆数をあらかじめ計算しておき,掛け算に変更できることが多い. |
プログラムを速くするには(2, ベクトル化) | SR8000は一応ベクトル機なので,最内側ループのループ長が長い方が速い.最内側ループに長いdo loopを割り当てる,また多重ループを1重ループに変換する,などのテクニックが有効.ただし,下のキャッシュあふれとの関係で,かならずしもこういった戦法が通用しないかもしれない. |
プログラムを速くするには(3, キャッシュ) | SR8000のメモリーは高速にアクセスできるキャッシュ(128KB)と,低速にしかアクセスできない通常のメモリー(7GB for 1-3, 14GB for p-r)からなっている.なるべくキャッシュにある内容を繰り返して使う方が,計算が高速になる.このような場合は一般にタイト・ループの使用が勧められる.しかしこの戦法は,ベクトル化の最内側ループを長くするという戦法とは丁度逆になっていることに注意しよう.多分,キャッシュあふれよりもベクトル化を優先させる方が効率がいいと思うが,あまり自信はない. |
プログラムを速くするには(4, バンクメモリーの競合) | SR8000のメモリーアクセスは,仕組みはよくわからないけれど,128の倍数の番地に同時にアクセスがあると遅くなるようだ.これをバンク競合という.したがって,128要素を使うのでも,配列宣言を丁度128にしておくと,このバンク競合が起きる可能性がある.少々ずらしておくほうが(130とか)望ましい. |
課金状況を知るには | actdisp(課金番号毎の負担額を表示) actshow(登録番号毎の課金状況を表示) actlist(ジョブ毎の負担金額の明細を表示) (2002年3月から) |
ヒストリー機能などのシェルの機能を使うには | > tcsh > source .cshrc |
現在のシステム利用方法の概要を知るには | 大計センター2002年1月の速報を見る 主な点は,ディスクの1Unitが20GBになった. |
大計でプログラムの並列化を行なう方法は | 並列化には異なるノード間のデータの送受を明示的に指定する言語であるMPIやPVMを使う方法と,コンパイラーにお任せするParallel Fortran を使う方法の2通りがありどちらも大計で利用できる.我々の業界では,MPIかParallel Fortranが使われることが多い.MPIは苦労が多いが高速になる,Parallel Fortran はそれほどの苦労はないが性能はあまり出ない.目的によって使い分けるのが良いだろう. |
マニュアル一覧 | 多分この表の下のだけで十分だけれど. 一応... |
Fortran90 (言語 使用の手引) | 既に業界標準 まだ77使っている!? |
並列アプリケーションプログラマーズガイド | 並列プログラムで使えるものの全体像 |
MPI・PVM(使用の手引, プログラマーズリファレンス) | 気合を入れて並列化=高性能 |
Parallel FORTRAN(言語,使用の手引き) | 気合を入れずに並列化 |
MSL2(操作, 行列計算, 関数計算, 統計計算) | 1ノード用(多分)数値計算ライブラリ |
行列計算副プログラムライブラリ MATRIX/MPP | 並列用行列計算ライブラリ |
行列計算副プログラムライブラリ-疎行列解法 MATRIX/MPP/SSS | 疎行列は専用ライブラリで性能アップ 単一でも複数ノードでも(多分) |