したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

並列計算スレッド

1村瀬:2009/02/16(月) 18:27:47
並列計算に関する事は茲に書いて下さい。

スーパーコンピュータの利用や、並列計算に適したデータの管理の仕方などから、
実際に何を計算してみたいか、その他何でも書き込み下さい。

2村瀬:2009/02/16(月) 18:53:27
取り敢えず、今日、情報基盤センターに訪問に伺って、
スーパーコンピュータの使用に相談してきた結果を報告します。
茫としていて書き逃した事も沢山ある様な気がしますが、その辺りは金澤君・澤田君に補足をお願いします。

五人もの先生に御時間を割いて頂き、好い加減な考えで伺った事大変恐縮だった事はさておき。。。

■今後の予定に関して

遅くても次の様な日程で進めていかなければ五月祭の出し物に出来ません。
実際には、色々試行錯誤などもしたいので、もっと早くにプログラムを完成させてしまいたい所です。

[3 月末迄]
 並列でなくても動くプログラムを組む。
 並列化する以前に (並列計算でなくても) 実際に動くプログラムを作成しなければ、
 相談に乗る事も難しい様な雰囲気でした。

 マルチプロセッサ (or マルチコア) のパソコンを持っていれば
 それを利用して並列化の練習も多少可能だそうです。

[4/20 頃迄]
 並列化の方法を学んで、並列でなかったプログラムを並列に書き換える。

 並列化自体のインターフェイス (MPI) はそれ程難しくないので、
 一ヶ月もあれば習得できるそうです。
 (それよりか、並列にし易い様に上手にデータを分離する方法などの方が気になる所ですが…)

[4/20 頃以降]
 スーパーコンピュータに実際に計算を行わせる。
 可視かなどの処理をして五月祭の展示の準備を行う。

# 続く…

3村瀬:2009/02/16(月) 19:31:09
■スーパーコンピュータを利用するコースについて

どれを選択しても、今の段階ならばそれに合わせて勉強すれば問題ないそうです。

・SR 何とかのコース
 此方の方が速く計算が出来るそうです。(プロセッサ間のメモリの転送能力などの関係でしょうか?)
 特に流体の計算には此方の方が向いているという話も伺いました。
 然し人気がある為なかなか時間を取れない様な感じの事も仰っていました。

・HA 何とかのコース
 こちらは若干遅い物の、利用者が少なくて空いているそうです。
 パーソナルコースかグループコースかによっても好き具合が異なる様な事も匂わせていらっしゃいましたが…

 (当初、SR と HA で特性が良く分からなかった為に、此方を志望してしまいました…
 mmx 命令を使いたいと思った時に、IA32 ベースの命令セットの CPU である此方の方が慣れていていいかな
 等と思った為です。実際には assembly まで使わないと思います。
 低階層のアルゴリズムはスパコン附属のライブラリを使用すればよいと思いますので。)

・計算機関連の授業「スパコンプラグラミング 1-I @ 工学部」

 相談頂いた片桐先生が来学期に開講されるようです。
 これを受講すれば四月か五月に HA の方 (と仰っていた気がする) を無料で利用させて頂けるそうです。
 毎週火曜一限 or 二限の様です。

 2007 年度夏学期の授業 [pdf]http://www.cc.u-tokyo.ac.jp/publication/news/VOL10/No2/200803katagiri.pdf
 2008 年度夏学期の授業 http://www.itc.u-tokyo.ac.jp/announce/2008/RecSuperC/RSC08_1.html
 2008 年度冬学期の授業 http://www.itc.u-tokyo.ac.jp/announce/2008/RecSuperC/RSC08_2.html

 二限にならない事を祈りましょう (四年の二限は、物理学科の一般相対論があります。)
 一限になったら内容すかすか (というと先生には悪いけれど) のラムダ計算 (計算数学I) なんか取らずに、絶対に此方を選択すべきです!

・中島先生の計算機
 所謂スパコンではないですが、相談頂いた中島先生が個人で御持ちの計算機も御厚意で貸して頂けるかも知れません。
 メモリは 8G 積んでいるそうです。他の詳しい事は聞き逃しました…

# 未だ続く

4村瀬:2009/02/16(月) 19:46:50
■予算に関して

予算に関しては、授業で受講する・先生に貸して頂く・etc 等の手管を使って色々削減する事が出来るようです。

・授業「工学部 スパコンプログラミング1-I」
 四月頃にアカウントを頂けます。勿論無料です (というか授業料として既に東大に払っています)。
 (先程書いたので詳細は省略)

・ポスターの印刷代
 展示用ポスターなどの為にも予算は削られていきます…
 其処で割安で A1 紙に印刷する方法を紹介頂きました。

 赤門の直ぐ近くに最近出来た建物「福武ホール http://fukutake.iii.u-tokyo.ac.jp/」で「ECCS・生協・プリントカード・\1000」だそうです。
 ECCS とかプリントカードとか聞いたことがあるような気がするけれど分かっていない単語が並んでいたので、
 僕は余り理解していませんが、其処にいる人に聞けば分かるでしょう。

 (でも、「昨年度は物理学科の実験室にある印刷機で無料で印刷した」という噂もあるので、
 これは元から無料の為気にしなくても良いかも知れません…。)

・その他融通
 その他色々融通して頂けそうな感じもしています。
 立派なプログラムを期限内に書く事が出来ればという話ですが。

 逆に完成度が高くないプログラムの場合には、×と言われてしまうので
 頑張って立派なアルゴリズム & 立派なプログラムを目指しましょう。

# 未だ続くよ

5村瀬:2009/02/16(月) 20:57:58
■学習の方法について

何はともあれ (並列でなくても) プログラムを書く事と感じました。

・メモリの大きさ
 2GB 程メモリがあるのならば 100 万点 (100*100*100) の有限要素程度ならば時間を掛ければ可能だそうです。
 別に、2GB 無かったからと言ってシミュレーションできないわけではなくて、分割を減らせばよいだけの話ですが。

・流体 (粘性) をやるなら
 先ずは、二次元の円柱などから練習する事を言われました。
 また、非圧縮よりは、余り体積変化のない流体を計算した方が発散しない? 様な事を言われました。
 (まあ、非圧縮は、或る点での影響が無限の速さで伝播する事になるので、如何にも発散しそうです。)

・可視化
 これは一々作る必要はなくて、既存の可視化ソフトを使う事を薦められました。

 特に紹介頂いたのは MicroAVS と言う物です。
  MicroAVS は AVS (Advanced Visualization System?) のパソコン版で、Win 用バイナリもあるそうです。
  学校の WIndows 端末で利用できるそうです。

  自分のパソコンで使用したい場合は↓から評価版を入手できます。
  http://www.kgt.co.jp/feature/microavs/
  但し、評価版は 30 日しか使用できない様です…。

 他にも検索すれば Freeware で沢山あるとの事でした。

 # 僕たちとしては、可視化まで含めてプログラミングを
 # 勉強しようと言うつもりでした。
 # (OpenMP や DirectX でも使ってパソコンに表示させて、
 # libffmpeg でも使って動画ファイルにして、ネット上に公開したりして)
 # 然し言われてみれば、
 # 物理系のプログラムは物理の勉強になっても、
 # 可視化のプログラムは物理の勉強には為らないなという気もします。

・マルチコア
 マルチコアの石をパソコンに載せている人は、それで OpenMP の練習も出来ます。

・OpenMP 参考
 OpenMP 公式サイト [英語]
  http://openmp.org/wp/
  仕様 Specification [英語] http://www.openmp.org/mp-documents/spec30.pdf
  仕様 [日本語] http://www.openmp.org/mp-documents/OpenMP30spec-ja.pdf
  
  先生は、OpenMP の資料は英語しかないと仰っていましたが…、
  丁度一ヶ月前に日本語に訳された物が公開されたようです。
  何れにせよ 300 頁以上在るので通読する気は起きませんが。
  唯の参照用として使うのが御薦めです。

 Microsoft の Reference
  http://msdn.microsoft.com/ja-jp/library/3bf9kcty.aspx

  頁数的には此方の方が纏まっていると言えましょう。自動翻訳じみた日本語で読みにくいかも知れませんが。

# 未だ続く…

6村瀬:2009/02/16(月) 20:58:45
■参考書など

並列化の勉強も必要ですが、それ以前に並列化に向いたアルゴリズムの勉強も必要です。

# というか、実際「並列の勉強」とは並列化の API を知る事ではなく、
# 並列に適したアルゴリズムを勉強するという事です。

その為の書籍を一部紹介して頂きました。

・培風館 計算力学と CAE シリーズ 3 「差分法」高橋・棚町
 [Amazon] http://www.amazon.co.jp/%E5%B7%AE%E5%88%86%E6%B3%95-%E8%A8%88%E7%AE%97%E5%8A%9B%E5%AD%A6%E3%81%A8CAE%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E9%AB%98%E6%A9%8B-%E4%BA%AE%E4%B8%80/dp/4563033782

・丸善「並列計算法入門」樫山・西村・牛島
 [丸善] http://pub.maruzen.co.jp/shop/4621072587.html
 [Amazon] http://www.amazon.co.jp/%E4%B8%A6%E5%88%97%E8%A8%88%E7%AE%97%E6%B3%95%E5%85%A5%E9%96%80-%E8%A8%88%E7%AE%97%E5%8A%9B%E5%AD%A6%E3%83%AC%E3%82%AF%E3%83%81%E3%83%A3%E3%83%BC%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%A8%AB%E5%B1%B1-%E5%92%8C%E7%94%B7/dp/4621072587

・GeoFEM「並列有限要素解析I」奥田・中島
 [GeoFEM] http://geofem.tokyo.rist.or.jp/books/index.html
 [Amazon] http://www.amazon.co.jp/%E4%B8%A6%E5%88%97%E6%9C%89%E9%99%90%E8%A6%81%E7%B4%A0%E8%A7%A3%E6%9E%90%E3%80%881%E3%80%89%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0-%E5%A5%A5%E7%94%B0-%E6%B4%8B%E5%8F%B8/dp/4563067385

 畏れ多くも中島先生にこの本を一冊戴いてしまいました。
 これは中島先生の執筆された本です。

 中身をちょっと開いてみた所 GeoFEM というライブラリを使用したサンプルが色々載っています。
 GeoFEM というのは地球シミュレータ用に full scratch で書かれたライブラリ? の様です。
 GeoFEM → http://geofem.tokyo.rist.or.jp/

・(MPI 等について)
 MPI は OpenMP を始めとする、並列化の指定を行う為の interface です。
 MPI 自体は唯の interface なので何も複雑な事はなく、
 インターネットで「ググれば」直ぐに充分な情報が得られるので、態々買う程の物でもないそうです。
 (先生でもぐぐるとか仰るんですね…)

 また、学校の総合図書館にもありますし、
 リファレンス (確認用) として使いたいのなら買って手許に置いても良いとの事です。

# 多分次で終わり…

7村瀬:2009/02/16(月) 20:59:40
■最後に註記

1.流体以外のテーマ
 スーパーコンピュータの利用は、流体だけではなく色々なモデルに対して実施してみたいと考えています。
 何かやりたい事がある人は、早めに考えておいて下さい。(出来るだけ三月中にテーマを決定できると良い。)

 また、流体のシミュレーションに関しても早く詳細 (使用する手法・系の詳細・初期条件) を決定しなければ為りません。
 変化球班と協力して設計する物に関しては変化球班と早く詳細を競技しなければ為りませんし、
 計算機班固有の流体系をシミュレートしても良いでしょう。

2.Linux
 後、計算機基盤センターの人は Linux 前提な顔をしていました。
 # 何しろ、「此方でも実際に C++ でプログラムを書いて練習している」と申しましたら、
 # Linux でやっていると思ってくれた様な感じです。
 # 先生方は Linux 以外でプログラムを書く事は頭の中にないのでしょう。

 Linux を早く扱える様にならないと行けません……。
 # 二年生に詳しい人いないかなあ。。

3.スパコン以外
 スパコンについて長々と記述致しましたが、別にスパコン以外を諦めたわけではありません。
 OpenMP の技術はマルチコアのパソコンでもその儘使用できますし、
 並列化に適したアルゴリズムを使用すれば、複数台のパソコンを繋いで計算する事も出来ます。
 或いは、GPGPU の案もあります。

 取り敢えず、並列計算で使用できる環境を挙げておきますと
 ・マルチコアのパソコン
 ・スパコン
 ・複数台のパソコンを繋ぐ
 ・ネットワーク越しに繋ぐ
  ※これは並列計算と言うよりは、異なる初期条件で各々計算するという形になると思います。
 ・GPGPU の利用

 # 順番は、教えてくれる先達の存在も勘案に入れて、簡単そう (主観) な物から並んでいます

8村瀬:2009/02/16(月) 21:18:18
[追記]
 中島先生の論文 (流体の衝撃波を扱う有限要素法の手法?) も頂きました。
 AIAA-95-0670 "Hybrid Adaptation Method and Directional Viscous Multigrid with Prismatic-Tetrahedral Meshes"
 V. Parthasarathy, Y. Kallinderis and K. Nakajima
 興味があって御覧になりたい方は、村瀬か金澤君・澤田君の何れかに言って下さい。

9村瀬:2009/03/11(水) 23:18:58
何となくライフゲームの並列化
/* #pragma omp for default(none),shared(i,n)
の一行を付け加えただけだけれど */

実行形式 (要 SSE, .NET Framework 3.5)
http://myoga.web.fc2.com/mayfes/cpp/life_omp.lzh
ソース (要 VC 2008)
http://myoga.web.fc2.com/mayfes/cpp/life_omp_src.lzh

Phenom II X4 (3GHz×4) で走らせてた所、
ちゃんと並列化されていました (速いなあ)


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板