*とりあえず今わかることを書いていきます. [#a85370c0]

現在,ふんが研にはPEACH3が二台(桃1,桃2),そしてPEACH2が一台存在します.

**PEACHを使う場合 [#od690b17]
今わかっていることは以下の2つ
-ノードに2台のGPUを積んでないとセットアップがうまくいかないということ
-桃2がどうも調子が悪くPCI空間にちゃんとメモリがマッピングされないこと

***セットアップの手順 [#w4dbf58e]
-GPU2台とPEACHをノードにセット
-%%PEACH3なら/opt/tca/wakeup_GPU_PEACH.shを実行%%
-%%PEACH2なら/opt/tca/wakeup_GPU_PEACH2.shを実行%%

%%これで動くはず%%

10/15に塙先生にカーネルモジュールの修正をしてもらいました.
-%%PEACH3なら/opt/tca/wakeup_GPU_PEACH3.shを実行%%
-%%PEACH2はまだ試してないので不明%%

現在塙先生によりドライバの更新作業中
-wakeup_GPU_PEACH3.shは使えない模様


**桃2について [#sde28076]
-現在不具合の理由を調査中

**APIの使い方 [#x069bd14]
-そのうち書く

**MPIの使い方(関連) [#g30ab462]
PEACHを使うためにはMPIによる並列実行が出来る環境でなければならない.
そのためのTipsをとりあえず書いておく.

まずパスフレーズの入力なしでssh出来るようにしておく必要がある.
ふんが研では証明書による認証をしているのでこの証明書のパスを記録しておいてくれるエージェントを利用する.
 ssh-agent 
または 
 eval `ssh-agent`
としてssh-agentを起動する.
その後
 ssh-add
として,自分の証明書のパスを入力する.これはターミナル毎に行わなければならない.
行わなくてもいい方法があるらしいがうまく出来ない…

これで
 ssh (ホスト名)
とすればパス無しsshが出来るはずである.

コンパイルはgccなどの代わりにmpiccを利用する.
実行は
 mpirun --hostfile hostfile -np num ./a.out
とする.
hostfileは利用するホスト名をただただ列挙すれば良い.
numは利用するスレッド数を表す.

現状zeusとmetisの間ではEthernet経由でのマルチノード実行が可能になっている.
以前はファイアウォールを切れば利用できたが,普通にIPアドレス指定して通信許可するように書き換えればよかっただけだった.

**MPIとGPUの使い方 [#q29e6fa4]
MPIを使って更にGPUも使う方法を解説します.
方法は簡単です.
nvccでオブジェクトファイルを生成し,mpiccでリンクすればいいです.
nvccではmpi.hを明示的にインクルードするようにパスを記載しておきます.
 nvcc -c (プログラム名).cu -I(mpi.hのパス)
mpiccではCUDAのライブラリを明示的に指定します.
 mpicc -o (実行ファイル名) (オブジェクトファイル名) -L(cudaのライブラリパス) -lcudart -lstdc++
最後の-lstdc++はg++でコンパイルしたコードをgccでリンクするときに必要だそうです.
nvccでg++を呼び出してmpiccでgccを呼び出すのが原因だと思います.
根本的な解決はmpiccで呼ぶコンパイラをg++に変えれば良いのかな?

***MPIとGPUとTCAの使い方 [#l5033564]
下のPEACH2のAPIについても参照してね
nvccとmpiccの両方でtcaのライブラリとインクルードをすればいける

**PEACH2のAPIについて [#tec05d0c]
おそらくリンクがないのでここにはっておきます
http://am.ics.keio.ac.jp/proj/asap/wiki/index.php?cmd=read&page=PEACH2%20API%A4%CE%B2%F2%C0%E2%A1%CA%B2%BE%A1%CB&word=PEACH

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS