第1回 †
概要 †
内容は N体パッケージ参照のこと
課題 †
MPI+SIMD+SPE化 †
- N体パッケージ内に MPI 化、SIMD+SPE 化したものを追加しておいた
- プログラムを理解して、それらを融合する
- 大まかには以下の流れになる
- MPI_Init : MPI 初期化
- 問題の読み込み
- MPI_Comm_rank : ランクの取得
- MPI_Comm_size : 参加しているプロセス数の取得
- 各ランクが受け持つ点の範囲算出
- ランクに従属する各SPEが受け持つ点の範囲を計算
- spe_context_create : SPE に行わせる仕事の情報を作成
- spe_image_open : SPE に行わせるプログラムファイルを開く
- spe_program_load : SPE に行わせるプログラムの読み込み
- SPE用のスレッドを作成する * SPE個数分
- spe_context_run : SPE プログラム実行開始 * SPE個数分
- SPE がデータをメインメモリから読み込む
- SPE がプログラムを実行し、結果をメインメモリへ書き込む
- MPI通信関数による同期
- 規定ステップ回ループ、終了後spe_context_destroy で仕事情報を破棄、およびMPI_Finalize