MatsuLab. Lecture Note/sougouenshu2008

第1ラウンド解説

日程

基本木曜日。月曜も15:00以降なら研究室にいるので、質問があったら来てください。

第1回目

10/9

課題
渡したMPI仕様書を読んで、どういった通信関数があるか調べて簡単にまとめてくること。 主に一対一通信、集団通信の2グループに分かれるが、それぞれに多くの通信関数が提供されているので、関数の特徴をまとめてくること

ヒント
一対一通信

集団通信

XXv、XXwは無視してよい

第2回目

10/23

前回の課題の確認

MPIを使った並列プログラミング

基本

MPIアプリケーションと、サーバ・クライアント型アプリケーションの違い

MPIプログラムのサンプル: mpi_pi.c
このファイルはモンテカルロ法を用いてPIを計算する、本当に初歩的なMPIプログラム。 MPI関数もMPI_BcastとMPI_Reduceしか用いていず、1関数での通信量も高々4バイト。

mpi_pi.cのコンパイル&実行方法

$ mpicc -c mpi_pi.c
$ mpicc -o mpi_pi mpi_pi.o -lm
$
$ mpirun -np 2 -machinefile machines ./mpi_pi  <- 実行

課題
PrestoIII上のtakizawaのホームディレクトリから今回の演習用プログラムをコピーする。

$ cp -r ~takizawa/sougouenshu/n01 .
$ cp ~takizawa/sougouenshu/machines n01

その1 mpi_pi.cにおいて、定数N_POINTSや実行するプロセス数をさまざまに変化させて、実行時間を確認すること。特に、N_POINTSを比較的大きい値に固定したときに、プロセス数を変化させた場合の実行時間を比較すること。

その2 以下の指示に従い「行列とベクトル積を行なうプログラム」を実装し、実行すること。 シングルプロセッサ用プログラムを用意してあるので、それを参考にして良い。

シングルプロセッサ用プログラムのコンパイル&実行方法

$ gcc -c vector.c    <- vector.oが既に生成されていれば実行しなくても良い
$ gcc -c mul_matrix.c
$ gcc -o mul_matrix mul_matrix.o vector.o
$ ./mul_matrix    <- 実行

MPIプログラム(例 mpi_mm.c)のコンパイル方法

$ gcc -c vector.c    <- vector.oが既に生成されていれば実行しなくても良い
$ mpicc -c mpi_mm.c
$ mpicc -o mpi_mm mpi_mm.o vector.o
$ mpirun -np 4 -machinefile machines ./mpi_mm   <- 実行

課題の進め方

  1. 演習室MACでプログラムを編集
  2. scpコマンドでプログラムをPrestoIIIクラスタに転送(リモートコピー)
  3. sshコマンドでPrestoIIIにログイン
  4. PrestoIII上でプログラムをコンパイル&実行

松岡研PCクラスタPrestoIIIの使い方

作業には基本的にターミナルを使用する

PrestoIII上のデータのバックアップ方法

PrestoIIIへのアクセス権は今期いっぱいしか与えられないので、第1ラウンドが終わった後、忘れないうちに以下の手続きに従い各自のデータをバックアップすること。

  1. nimbus.m.gsic.titech.ac.jpにログイン
    $ ssh USER@nimbus.m.gsic.titech.ac.jp
  2. 総合演習用データのアーカイブ(1つのファイルにまとめること)
    $ tar zcf sougouenshu.tar.gz sougouenshu
    • このコマンドを実行することにより sougouenshu ディレクトリ以下の全部のファイルを sougouenshu.tar.gz と言う名前の1つのファイルにまとめる
  3. lsコマンドを実行し、sougouenshu.tar.gzが存在することを確認
  4. nimbus.m.gsic.titech.ac.jpからログアウト
  5. MACマシン上でscpを実行し、nimbusからアーカイブファイルをダウンロード
    $ scp USER@nimbus.m.gsic.titech.ac.jp:sougouenshu.tar.gz .
    • MACマシンからのプログラムファイル転送とは実行方法が違うので注意
    • 最後の「.」を忘れない
  6. ダウンロードできたかどうか、lsで確認
  7. アーカイブファイルを展開
    $ tar zxf sougouenshu.tar.gz
    • カレントディレクトリにsougouenshuと言う名のディレクトリが出来るはず

参考文献

  1. MPIドキュメント集
    • 初回配布資料は、この文献の前半部分(140ページまで)
  2. TSUBAMEの構成
  3. MPIによる並列プログラミングの基礎(PDF)
    • 同志社大の先生が書かれた、非常に詳しい日本語資料
  4. スパコンコンテスト2001
    • 優勝チームのプログラムも掲載されているので、必要なら参考にして良い
  5. N体問題オンラインデモ
  6. N体問題重力ゲーム
  7. 粒子登録法

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