*第1回 [#hfe74dc7]
**概要 [#jbc6cec3]
内容は参考文献参照のこと
-Cell B.E. とは
-MPI と SIMD 演算 + SPE
-N体問題課題説明
-次回は1/11(木)

**課題 [#iefa0d86]
-N体問題課題説明
--問題の概要は[[こんな:http://www.gsic.titech.ac.jp/supercon/supercon2001/honsen.html]]感じ
--シリアルプログラムを与えるので、MPI化、SIMD+SPE化してください

***MPI化 [#pfee2257]
-参考文献参照
-各プロセスにすべての点データを持たせて、forループを適当に分割してやる方針
-もっと最適化できるけど、ソレは最終回のお楽しみ?
-大まかには以下の流れになる
+MPI_Init: 初期化
+MPI_Comm_rank : ランクの取得
+MPI_Comm_size : 参加しているプロセス数の取得
+加速度計算
+MPI 通信関数によるデータ同期
+MPI_Finalize : 終了処理
-通信関数のヒントとして
- MPI_Send, MPI_Recv, MPI_Bcast, MPI_Gather, MPI_Gatherv, MPI_Allgater, MPI_Allgatherv
-あたりを使ってみたらいいんじゃない?

***SIMD+SPE化 [#qadf88ff]
-参考文献参照
-データを6つのSPEに配分してSIMD(Single Instruction Multiple Data)演算させる
-PPEのSIMDをやらないように注意
-まず、SPE1個で動かすことを考える→6個に拡張
-大まかには以下の流れになる
-spe_context_create : SPE に行わせる仕事の情報を作成
-spe_image_open : SPE に行わせるプログラムファイルを開く
-spe_program_load : SPE に行わせるプログラムの読み込み
-spe_context_run : SPE プログラム実行開始
-SPE がデータをメインメモリから読み込む
-SPE がプログラムを実行する
-spe_context_destroy : SPE プログラム終了後、仕事情報を破棄する

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS