HPCプログラミング

HPC(High Performance Computing)の勉強。何も知らなかった状態よりは少しは理解できた。概念が分かっても実際の問題でどこまで使えるのやら。いろいろと工夫してプログラムを書いても、コンパイラが勝手に余計なことをしてしまうという心配も。コンパイラの最適化、というのが何をしているのかも学ばねば。

  • メモリ階層→有効に働かせるアルゴリズムがブロック化
  • ブロック化アルゴリズム→計算順序の改変
  • メモリアクセスが高速化の障害→キャッシュの導入
  • キャッシュは、プログラムでは制御しないところがバッファと異なる
  • キャッシュにデータが無ければキャッシュミス→レイテンシが生じる
  • ブロック化→キャッシュに存在するデータをなるべく使うため。データ移動を最小化
  • ブロック化アルゴリズム→行列要素を適当なサイズの正方小行列に書き直すことで得られる
  • プロセッサの演算・移動性能比→乗加算を計算する速度と、8バイトをロードする速度の比
  • 計算密度の定義→浮動小数点演算回数と、記憶域オペランドをアクセスする回数の比(この比が大きくなれば高速!)
  • レジスタブロック化とキャッシュブロック化
  • シンタックスシュガー→プログラマに分かりやすくするために導入された機能のこと

教科書

HPCプログラミング (IT Text)
HPCプログラミング (IT Text)
オーム社 2009-08
売り上げランキング : 358889


Amazonで詳しく見る
by G-Tools