とりあえず今わかることを書いていきます.

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

PEACHを使う場合

今わかっていることは以下の2つ

  • ノードに2台のGPUを積んでないとセットアップがうまくいかないということ
  • 桃2がどうも調子が悪くPCI空間にちゃんとメモリがマッピングされないこと

セットアップの手順

  • 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について

  • 現在不具合の理由を調査中

APIの使い方

  • そのうち書く

MPIの使い方(関連)

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の使い方

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の使い方

下のPEACH2のAPIについても参照してね nvccとmpiccの両方でtcaのライブラリとインクルードをすればいける

PEACH2のAPIについて

おそらくリンクがないのでここにはっておきます 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
Last-modified: 2019-08-29 (木) 00:03:48