*第1回 [#xc039171] **概要 [#te6fa89a] 内容は N体パッケージ参照のこと -前回の課題の解説 -次回は1/17(木) **課題 [#hc8c8d5b] ***MPI+SIMD+SPE化 [#d03a44dc] -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 ++規定ステップ回ループ、終了後spe_context_destroy で仕事情報を破棄 ++ランク0 のみで結果データの出力 ++各ランクでMPI_Finalize