1 :
名無しさん@1周年:
3 :
名無しさん@1周年:02/01/09 18:15
MPIってインストールとか利用は簡単なのかな
4 :
名無しさん@1周年:02/01/09 18:21
環境を作るのは簡単だけど
プログラムをMPIで並列化するのがねぇ
5 :
名無しさん@1周年:02/01/10 12:57
SCore使ってる人いる?
6 :
名無しさん@1周年:02/01/15 12:51
8 :
名無しさん@1周年:02/01/18 02:19
>>6買ったよ。4Gは積まなかったけど。
クラスタノードには最適。
9 :
名無しさん@1周年:02/01/18 02:21
>>6Xeon に HyperThreadingて入ってるんでしょうか?
10 :
名無しさん@1周年:02/01/19 01:10
11 :
名無しさん@1周年:02/01/19 02:10
MPIってマルチプロセッサ用のライブラリですか?
それともクラスタシステム用?
素人でスマソ
12 :
名無しさん@1周年:02/01/19 02:58
主としてはクラスタ。
だけどマルチでも動く。
Linuxの2.2カーネル上でMPICHとDualCPUで試したことがあるが、ベンチで1.5倍程度。
2.4カーネルはSMP周りがよくなってるから結果は変わってくるかも。
マルチプロセスならOpenMPでしょ。
15 :
名無しさん@1周年:02/01/20 17:58
>>5SCoreはRH7.2に対応してないからなぁ
Pのスレッドは?
17 :
名無しさん@1周年:02/01/24 04:34
>>12 1.5倍って何と比較して?
singleで動かすのと比較してならば、それは並列アルゴリズムの問題だから回答が意味不明。
それにcodingにもよるが、MPIなら動かす場合はメモリ領域は共有していないだろから、SMP周りがどうこうというのは、あまり本質的ではないような。
MultiProcessorならthreadの方が楽だと思う。
ちなみに、SCoreでクラスタでメモリ共有してOpenMP使っている方っています?
18 :
名無しさん@1周年:02/01/25 10:33
LinuxJapanでSCoreが取り上げられているね。
まだ内容は読んでいないけれど。
20 :
名無しさん@1周年:02/01/30 18:33
>>18 なかなか興味深い記事だった。
NICの多重化してみようかな
21 :
名無しさん@1周年:02/02/01 01:26
とりあえずマンデルブローまでは動きました。
でもプログラムの書き方が分かりません(厨)
22 :
名無しさん@1周年:02/02/01 12:27
>>22 ありがとうございます!!!!
早速本屋に注文しましたです。
24 :
名無しさん@1周年:02/10/14 14:49
MPIまたはopenMPで書かれたプログラミングソースが公開
されているサイトというのはあるのでしょうか?
もしご存知であれば、ご教授おねがいします(ぺこり)。
25 :
名無しさん@1周年:02/10/14 15:27
26 :
名無しさん@1周年:02/10/15 22:40
27 :
名無しさん@1周年:02/10/16 18:57
24です。
微分方程式、連立方程式などを解く数値計算プログラミング
がほしいです。
同時に、どんな目的でもかまわないんで、MPIプログラミング
ソースがほしいです(ぺこり)。
28 :
名無しさん@1周年:02/10/18 23:15
29 :
名無しさん@1周年:02/10/20 02:37
24です。
PCクラスタ超入門!
忘れていました、それ。膨大なページを印刷してあったのに見てませんでした。今はπの勉強しています。
他になにか、ありませんかね?
わがままでごめんなさい(ぺこり)。
31 :
名無しさん@1周年:02/10/20 04:12
>>30さん
24です。
びっくりしました。本当にありがとうございます。
勉強させて貰います。特に、波動方程式はビッグなプレゼントでした。
ところで、LU分解や連立方程式をガウスで解くことは
並列では無理なのでしょうか?
というのは、上の二つはともに逐次実行のアルゴリズムですよね?
他に連立方程式を解くアルゴリズムはあるのでしょうか?
32 :
名無しさん@1周年:02/12/22 23:44
日本語でPETScのサンプルプログラミングのコーディングを
説明しているサイトありますか?
若しくは、PETScのサンプルプログラミングについて
ご存知の方、よろしくお願いします。
(^^)
34 :
名無しさん@3周年:03/03/01 23:42
(^^)
(^^)
∧_∧
( ^^ )< ぬるぽ(^^)
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
∧_∧
( ^^ )< ぬるぽ(^^)
∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
(⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
45 :
名無しさん@3周年:04/01/07 23:03
46 :
名無しさん@3周年:04/01/31 01:12
並列計算をしようとする人は、デュカス作曲の魔法つかいの弟子という作品
できればそれの映像化としてのウオルトディズニー映画ファンタジアのなかで
の同じ音楽のエピソードを見て考えるとよい。よくわかっていない未熟者が
プロセスを大量に発生させて、停めようとしてもプロセスが増殖して停められ
ないで資源を浪費して溢れさせるが、ウィザードのコマンド一発で停めることが
できた。かたちだけ真似しても根本の理解ができていないと並列処理は
いたずらにガラクタを吐き出す速度が増すだけで、かえって問題の解決から
ほどとおくなる場合があるという教訓だ。
47 :
名無しさん@3周年:04/04/16 03:29
01/11/13(ka)
お題:カッターナイフ
タイトル:カッターナイフ
ああ、何から話せばいいのかわかんないんだけどさあ・・・。
ねえ、君、知ってる?君が今、使った、そのカッターナイフね、古くなった刃
先をバキボキ折っていくでしょう?「折る刃」式カッターナイフっていうんだけ
ど、まあ、今はそのカッターが常識だけどさ。昔はね、そんなカッター無か
ったわけよ。昭和30年代頃の話だったけなあ・・・。印刷製版の職人はカミ
ソリみたいのを使って紙を切ってたんだけど、刃先の寿命は短くて長持ち
しなくて困ってたらしいんだわ。んで、とある大阪商人が一生懸命考えた結
果「ああ、そうだ!刃先を少しずつ折れるようにしたら、安くて、しかも、い
つでも刃先がキレイだ」って思いつくのね。それでまあ、試行錯誤して、そ
のカッターの原型は、今や世界標準規格なんだけど・・・。ああ、退屈そうだ
ね。そんな目で見ないでくれよ。はぁー。ええっとね、何がいいたかったかっ
ていうと、その「バキボキ折っていく」というアイデアはね、いつ閃いたかとい
うと、「その大阪商人が小さい頃、進駐軍からもらった板チョコ」を思い出し
て、そこから直感、イメージが膨らんだってさ。ねえ、どう、この話面白くな
い?板チョコとカッターナイフにそんな繋がりがあるなんて。
いやあ、考えてみれば、カッターも板チョコもバキポキ折れるよねえ・・・。
「へえ」とか「ふーん」とか思わない?思わない?え?「進駐軍って何?」っ
て、あー、そうかあ、分かんないのかあ。はははー。うーん、まあ、進駐軍と
かはどうでもいいんだけど、いや、多分、来年高校行ったら習うと思うんだ
けどさ、まあ、要するにさあ、僕のいいたいことは、そうやって、手首にカッ
ター当てる時にね、ふとね、この話を思い出して欲しいんだよね、んで、板
チョコのあの甘い甘い味覚とかをね、思い出して欲しいんだよ。どうしても。
そしたら、君も少しは、元気にならない?ならないかあ。
板チョコは嫌いかあ・・・ふーん。そっかあ、こりゃ参ったなあ。
じゃあ、別の話をするよ、あー、そうだなあ、ええっとねえ・・・。
>>47 Javaってバイナリの実行ファイルできないんでしょう?
それって並列処理の意味あるんですかぁー? にゃんにゃん
+ /\___/ヽ
+ + /'''''' '''''':::::::\
. |(●), 、(●)、.:| +
+ + + | ,,ノ(、_, )ヽ、,, .::::|
+ . | `-=ニ=- ' .:::::::| +
,,―‐. -= r-、 \ `ニニ´ .:::::/ +,、
,―-、 .| ./''i、│ r-,,,,,,,,,,,,,,,,,,,,,,,,―ー. ─=≡ ゙l, `"゙゙゙゙゙ ̄^ \ /
/ \ ヽ,゙'゙_,/ .゙l、 `i、 ─=≡\ _,,―ー'''/ .,r'"
.,,,、.,,i´ .,/^'i、 `'i、`` `--‐'''''''''''''''"'''''''''''゙ ─=≡`゛ .丿 .,/
{ "" ,/` ヽ、 `'i、 -=≡ 丿 .,/` +
.ヽ、 丿 \ .\ ─=≡,/′ ' ̄ ̄\
゙'ー'" ゙'i、 'i、.r-、 __,,,,,,,,--、 ─=≡ / ., ミ──/ /
ヽ .]゙l `゙゙゙゙"゙゙゙゙ ̄ ̄ ─=≡ ,/ .,,/ / / +
+ + ゙ヽ_/ .ヽ_.,,,,--―――――ー-ノ─=≡/ / / /
─=≡/ / (_,-、 ̄つ
+ / /  ̄
+ + ( / +
) / +
し'
にゃんにゃんまねしないでよー にゃんにゃん
53 :
名無しさん@5周年:2006/01/24(火) 02:25:40
意味もなくアゲ
54 :
名無しさん@5周年:2006/02/20(月) 16:55:42
プログラム初心者レベルの者です。
mpiってどうやって使ったらいいんですか?
いろいろ探し回ったんですけど、結局どうやって組んでいいのか分からないんです。
普通にコンパイルして、ビルドしてしてはだめなんですか?
mpiを使うのにどこにプログラムファイルを置いたらいいのでしょうか?
OSはwindows2000でcompaq visual fortranを使っています。
いろいろ聞いてすいません。
MPIは並列プロセス間でメッセージを送り合うための、
ただのインターフェースなのはわかってるね?
つまりコンパイル方法や実行方法は、MPIライブラリの
実装依存てことだ。
ただ、たいていのMPI環境では
mpif77でMPIプログラムのコンパイル->mpirunで実行だ。
MPI環境を作っていないならmpich2のドキュメントでも読むべし。
56 :
名無しさん@5周年:2006/02/21(火) 17:59:44
>>47 レスありがとう。
何とか自分なりに理解して、
適当なサンプルプログラムをダウンロードしてやってみたらやっと動きました!
メニュー->コンパイル->ビルド->実行しかやったことがない人間には難しいですね。
おかげでいろいろ知識が増えました。
これで何とかなりそうです。ありがとうございました。
57 :
54:2006/02/26(日) 05:16:31
すいません。つっかかってしまいました。
MPICHのマニュアルに載ってるサンプル(4人で円周率の計算をする)を
mpirun -np 4 cpiで実行しようとしたら、
Failed to launch the root process:
(実行ファイル名)
LaunchProcess failed, LogonUser failed, ログオン失敗: ユーザー名を認識できないか
、またはパスワードが間違っています。
と出されてしまいました。どうやったら動くようになるんでしょうか?
MPICH Configurationでホストを追加すると、自分だけ追加した場合でも
そうなってしまいます。
58 :
名無しさん@5周年:2006/02/26(日) 09:12:12
59 :
名無しさん@5周年:2006/03/09(木) 11:16:26
>>57 それだけじゃよくわからんけど、MPICHの設定というよりネットワーク関連の設定の問題っぽい。
nisとかrshとかsshとか、その辺の設定洗い出してみれ。
60 :
名無しさん@5周年:2006/04/11(火) 10:24:26
intel Fortran compiler (Fortran90) を使ってMPIプログラムをしたい。
さらにできれば、OpenMP+MPIによるプログラムがしたい。
マルチコアのCPU内部でOpenMPを使い、複数のCPUのクラスタPCの部分を
MPIにしたいのだ。何か良いポインターはありますか?
OPEN MP と MPI はどっちがいいですか?
MPIはかなりプログラムがめんどうそうなんですが、、、
62 :
名無しさん@5周年:2006/10/03(火) 03:03:09
63 :
名無しさん@5周年:2007/05/09(水) 23:06:52
MPIで並列プログラミングをする際に、同じデータを異なるノードを参照するときにsend、receive文を使わずに直接参照することは可能ですか?
64 :
名無しさん@5周年:2007/05/10(木) 11:15:42
> 同じデータを異なるノードを参照するときに
kwsk
65 :
原巨人人気&プロ野球人気両方とも人気上昇中:2007/05/10(木) 11:41:46
ちんぷんかんぷんで分かりましェ〜〜ん
66 :
名無しさん@5周年:2007/06/13(水) 22:42:03
67 :
名無しさん@5周年:2007/06/15(金) 15:28:05
知らんがな
68 :
名無しさん@5周年:2008/06/10(火) 22:13:51
!$omp parallel do
70 :
名無しさん@5周年:2008/06/22(日) 07:29:30
Javaで、OpenMPとかMPIによる並列化は出来ますか?
71 :
名無しさん@5周年:2008/07/14(月) 12:19:13
領域分割法って最近metisをよく見かけるけど、これが事実上の標準なの?
もっと良いやつってないの?
72 :
名無しさん@5周年:2008/07/18(金) 00:04:51
mpirun -np 4 a.out
などで実行中に、mpirunのプロセスを kill すると、4つの a.out のプロセス
は全部残るんですが、自動で消すことは可能でしょうか?
PBSなどのジョブスケジューラーでバッチ的に mpirun を実行していると、
qdel した際に、mpirun のみ kill されてしまって、スレーブのプロセス
(a.out 4つ)は残るので、すごく不便だな〜と思っております。
よろしくお願いします。
73 :
名無しさん@5周年:2008/07/18(金) 06:31:43
killall ってコマンドないかね?
Group ID で kill できなかったっけ?
75 :
名無しさん@5周年:2008/10/25(土) 20:19:34
これからの並列化はやっぱりGPUコンピューティングだと思う。
できれば、Fortran90とかでOpenMPやMPIでプログラムできるコンパイラとか、
それを更に超えたもっと自然に並列処理の記述の出来るコンパイラ言語が
欲しい。
76 :
名無しさん@5周年:2008/11/07(金) 01:56:39
intelのC++コンパイラで、ホットスポット探すために、プロファイル情報を
付けるにはどうするの?-prof-gen はPGOのためのオプションだよね?
いや、ホットスポットを特定してから、OpenMPLMPI並列化ようか思ってね。
77 :
Open▽FOAMer ◆.d9vXE/mFI :2008/11/24(月) 23:28:50
MPI+OpenMPのハイブリッドの実装って面倒だし、
ハードウェア依存だから中々手が付けられないけど、
それに見合う程効率が上がるのかね?ご意見求む。
>> 76
ホットスポットを見つけてから並列化するのは良いけど、そのやり方で速度があがるのはせいぜいOpenMPで4〜8Threads程度までだと思うよ。
それ以上で並列化効率を求めるなら、ホットスポットだけでなく、プログラム中の並列化可能な部分はすべて並列化しないといけないし、さらには並列化できない部分をいかに隠蔽するかが高速化の鍵となるよ。
MPIでの並列化であれば、計算量の並列化以上にデータの流れをどう整理して通信量を減らすかが鍵だね
79 :
名無しさん@5周年:2008/11/29(土) 08:03:09
天に召されました
81 :
76:2008/12/03(水) 23:54:02
>>78 ありがとうございます。
T2Kスパコンなので、OpenMPで16Threads並列にしたいのです。
並列化可能な部分に全てOpenMPディレクティブを挿入するのは、結構面倒そう
ですが、ソース(OpenFOAM)をしっかり見てみます。
全部MPIでいいじゃまいか
>> 81
えーっと、なんでT2Kでintelコンパイラなの?
Opteronならpgiやpathscaleなど他のコンパイラを利用すべきだと思うけど...
もちろん結果的にintelコンパイラが一番速いということは十分にあると思うけど
intelコンパイラは癖がありすぎるから 特にOpteronの場合は最初は避けたほう
が無難だと思うけど...
それとも用意されているコンパイラがIntelコンパイラだけなの?
84 :
76:2008/12/05(金) 00:40:30
>>83 東大T2Kなので、Hitachi、Intel、GCCが用意されていたと思う。
GCCは最初から避けて、HitachiとIntelで試したけど、Hitachi
ではコンパイルできなかったので、Intelでコンパイルしただけ。
>>83 Intelコンパイラってそんな癖あるかな
個人的にはPGIのほうが嫌い
情報が少ないpathscaleはもっと嫌い
>>85 最近のバージョンでは癖の強さは薄らいできたけど、以前はむちゃくちゃひどかった。最近のバージョンでも特にOpteronの場合には極端に遅くなる事があると思うけど...
あと、シリアルでの最適化に引きずられすぎて、並列化の効果が解りにくいんだよね。だから、並列化をする際には別のコンパイラを使用して、出来上がったらIntelコンパイラに持っていくなどした方が最終的な速度が向上することがあるよ。
>>81 OpenFOAMってMPI化されてるよね?
それなら、MPI化されているプログラムのホットスポットだけにOpenMPでディレクティブを挿入して、1nodeあたり4process,1processあたり4thredsで流すのが楽で効果もそれなりにあるのではないかな?
(OpenFOAMをほとんど知らないから、まちがっているかもしれんけど)
あとはmpiがどこまでの機能を持っていいて、それを活かせるか?ということと、場合によってはnumactlの使い方次第でしょう。
88 :
76:2008/12/06(土) 14:29:44
>>87 並列計算に詳しい感じだね。T2Kの中の人かなw?
まあ、その通りだと思う。
だから
>>76で ホットスポットをIntelコンパイラで見るけるにはどうすれば
良いか聞いたわけ。
自分の場合OpenFOAMで非圧縮性の流体計算をしているので、ホットスポットは
圧力のポアソン方程式を解くICCGやAMG等の対称行列用線型ソルバとなり、こ
れが通常90%以上の計算時間を占める。
あとは、移流拡散用のBiCG等の非対称行列用線型ソルバもOpenMP化すれば、概ね
ハイブリッド化は終了するだろうと思っている。
しかし問題は、OpenFOAMのソースがC++的にエレガントすぎて、Traditional
なコード比べて、おいそれと手を入れにくいのことかな。
>> 88
残念ながらT2Kの中の人ではないが...
えーっと、 既にMPI化されているプログラムなら、ホットスポットは自明だと思うのだけど?
つまり、MPI化されている部分がホットスポット
それともOpenFOAMって、MPI化されて居るにもかかわらずホットスポットが見つからないくらいにややこしいの?
>>86 Intelコンパイラって昔は意図的にAMDCPUの最適化レベル落としてたって噂だけど、最近はさすがにないらしい。
俺も体験したことないし・・・
ぶっちゃけどれ使っても1割も差出ないような。
91 :
名無しさん@5周年:2008/12/10(水) 20:17:25
Core2なら-xTオプションと-fastオプションが使えるのに、
Opteronだと-axTしか使えず-fastも使えない。
そのため最高の性能は出ない。また、当然ながらOpteron用の
プリフェッチ命令は出ないらしい。
92 :
76:2008/12/11(木) 00:16:27
>>89 OpenFOAMは格子データに領域分割並列化の情報が組み込まれていて、
領域間境界面で発生するMPI通信は、それに伴ない勝手に行なわれる。
だから、普通のコードで見られるように、ホットスポットになる線型ソルバー
にMPIのコマンドなんか全く書いておらず、Pstreamという領域間通信のライブ
ラリに書いてあるだけ。
しかし、OpenMP化するのは当然、線型ソルバー等のホットスポットだから、
全く別々に実装しなくてはならない。
93 :
76:2008/12/11(木) 00:18:57
東大版T2KにPGIコンパイラが入ったみたいだけど、Intelコンパイラより
早いかな? Opteronでお勧めの最適化オプション教えて!
なんでPGIなんだろ
Pathscaleのほうが早くなかったっけ?
>>92 ごめん、よくわからないや
通常 ホットスポットの外側(のループ)で並列化してあれば、内側はいじる必要はないんだよね。だから、外側の部分で並列化してあるのであれば、その部分をOpenMP化すれば良いのでは?
もちろん 書いてある内容を読む限りでは ディレクティブ挿入では難しそうだから、OpenMPIの APIを用いて手動でゴリゴリと並列化しないといけないかもしれないけど...(おそらくPstreamライブラリをゴリゴリといじる事になるのでしょう)
結構 誤解されているのだけど、MPIとOpenMPのハイブリッド並列では必ずしも、外側のループをMPIで並列化、そしてその内側をOpenMPで並列化とする必要はないのですよ。
別に、外側のループをMPIで並列化し、さらにOpenMPで並列化しても良いのですよ。その方が並列化効率が良い場合も結構あるしね。
96 :
76:2008/12/12(金) 00:56:43
>>95 自分はOpenMPをやったことがないから誤解しているかもしれないけど、流体計
算のような疎行列系の計算では、プロセッサ毎に分割領域を割りあてて、それ
らの間はMPI通信を行ない、線型ソルバ等ののループをOpenMPでスレッド並列
化して、プロセッサ内のコア毎にスレッドを割り充てるのじゃないの?
T2Kはquad coreのプロセッサが4基載っているから、OpenMPで4スレッド並列と
MPIで4プロセッサ×ノード数の分割領域間通信をする、4×4のハイブリッドが
効率なのではないかと思っていた。
>>95のは分割領域が、ピュアMPIのように全コア数分あるのだけど、それら間
の通信をMPIとOpenMPがでネストして受け持つということだよね?
OMPディレクティブを使わなければ、そういうこともできるのか。
前から思ってたんだけど、OpenMP+MPIハイブリッドが良いってのは結構な話だけどさ、
その辺システム側がもうちょっとお膳立てしてくれてもいいと思うんだよね・・・
HPFみたいなレベルまでは望まんけど、もうちょっとユーザの苦労を軽減してくれよと
まぁできたらとっくにやってるだろうし、難しいんだろうけどな
98 :
名無しさん@5周年:2008/12/12(金) 05:26:49
そうそう。その二つの組み合わせがこれからいい、とは良く聞くけど・・・。
マルチコア内(か同一ボード内:まあ共有メモリな区割り内)はOpenMP、ボード間通信はMPI
みたいなかんじなこと。
自分はいま使える機械が共有メモリなのでOpenMPだけで書いてるので
64並列くらいまでなら良いパフォーマンスが出るけどそれ以上の並列や
多次元分割になるとやはりMPIがいいとおもって勉強中。でもどうもぐだぐだなんだよね。
流体計算やってるけど、正直冗長な計算がえんえん続くだけで
基本的にはお隣りの島(?)のデータしかいらないからMPIって
ちょっと持て余すくらい多機能で使いにくい。
OpenMPは共有メモリを想定しているらしいけど文法的にはべつに分散・共有の区別しなくて
いい(というか出来ないか)ので、OpenMPベースでMPIでやる程度の
ちょっとクレバーな通信を勝手に埋め込んでくれると助かるんだけどな。
たぶんシステム作る人たちは流体計算以外の、通信が予測できない任意のPE間で実行されることを
想定しているだろうから、ものすごく汎用性のあるものを作ろうとするんだろうけど
(ビジネスとしては正しいと思うよ)。ちと身勝手だが、もっと簡単なのでも、
わ〜いわ〜い、と喜んでありがたがって使う人間は結構多いと思うんだけどなあ。
99 :
98:2008/12/12(金) 05:29:15
でもAMRみたいに動的に隣接関係が変わる場合はやっぱりユーザーがあれこれ指図しないと
いけないからMPI無しというわけにはいかないかな。
>> 96
確かにそんな方法が一般的...
でも実際に並列化してみると、その方法では並列化効率が上がらない事が多いのですよ。
市販の解析アプリなんかでも、同じような方法で並列化していて、並列化効率が低いのも多いしね
あと、MPIプログラムをさらにOpenMPで並列化しハイブリットとする事の最大のメリットはMPI通信量の低減なんだよね。だから領域分割の粒度が十分に細かいのであれば、MPI分割したのをさらにOpenMPで分割したほうが良いのですよ。
T2Kの場合はハード的な計算ノード間の通信性能が異常に高いから4x4のハイブリッドで良いのだけど、そうでないならノード内はすべてOpenMPの方が良いだろうね。
もっとも私は(東大の)T2Kを触った事がなく、システムとして計算ノード間の通信性能がどれだけ高いのかが解らないので、間違っているかも...
t2kのノード間通信ってそんな早いの?
普通にinfiniでつないでるだけじゃないのか
>> 101
東大のT2KはInfiniBandじゃないよ、Myrinetですよ。
Myrinetを1nodeあたり4枚 積んでいるからハード的には非常に速いよ。
筑波大や京大のT2KはInfiniBandだけど、1nodeあたり 4枚積んでいる
のは同じだと思うよ。
問題はこの4枚のMyrinetやInfiniBandをそれぞれのシステムはキチンと
活かせているかという事なのだけど、見た事がないからわからないんだ
よね
103 :
76:2008/12/15(月) 01:35:39
104 :
76:2008/12/15(月) 01:38:25
すげーかぶった。つーか、筑波や京大はInfiniだったんだ。
ネットワークカードも共通仕様にすればテストが容易なのにね。
Myrinetって懐かしい気がするんですが、まだ現役だった?
>> 105
現役も現役、多分実効性能では、いまだにinfiniBandよりも速いと思うよ
残念ながら日本では10G Etherの普及が遅れているので今のところはイマイチ
だけど、10G Etherが普及すればMyrinetも一気に普及する可能性があるよ
というか、Myrinetより安価な10G EtherのNICってどれだけあったっけ?
>>106 MyrinetってEthernet上での実装なんだ?どうりで安いわけだ
>> 107
そうMyri-10Gからは10G Etherと物理層互換なんだよね
だからMyrinetのNICと10GEtherのSWでネットワークが組めるのが最大の利点
そして、この組み合わせでもMyrinetのMXプロトコルが利用できるからとてもおいしいのですよ
でも残念ながら日本では安価な10G EtherのSWがほとんどないからこの利点が活かせないんだよね
東大のT2KくらいになるとMyricomの大規模SWが利用できるから問題にはならないのだけど、小規模だと
適当なSWがないから、InfiniBandを避けてMyrinetを選択するメリットが少ないよね
109 :
名無しさん@5周年:2008/12/16(火) 01:17:00
こういう資料はありがてえ
サンクス
111 :
名無しさん@5周年:2008/12/18(木) 08:22:42
同じくサンクス。
最勾配法あたりをちょっと調べたかったのでダブルで参考になりそう。
intel fortran/C
の
parallelオプションてどうなの?
自動並列なんでしょ
gcc4.3から同様の機能が使えるんだっけ
hosyu
保守
保守
>>112 使えないことはないけど、ほとんどの自動並列化はOpenMP指示子を埋め込んで
OpenMPっぽく動作するようにするだけだし。OpenMP自体はMPIよっか簡単なので
(その分、CPU数が増えるととたんに並列能率は落ちるけど)、自分でOpenMP埋め込んだ方が
なにかと便利な事が多い。
117 :
名無しさん@5周年:2009/03/09(月) 17:13:10
最近のIntel・AMDのスパコンはマルチコアのマルチCPUの複数ノードって構成だけど
そういう場合はノード内はOpenMP、ノード間はMPIというように、
両者を組み合わせるのがいいの?それとも全部MPIでやったほうがいいの?
118 :
名無しさん@5周年:2009/03/10(火) 06:43:05
ハイブリッド(OpenMP+MPI; キメラとも・・)はあんまり良い評判は聞かないね。
理想的にはうまくいくはずだけど、あるシステムで良好なコードを別なシステムに持っていくと
手直しが必要立ったり・・・。
一つの共有メモリ内で使う(せいぜい16並列)のであればOpenMPが楽でいいけど、
大がかりな計算だと最初からMPIで書いた方が幸せかも。
・・・とOpenMPで書いちゃって、さてどうしたものかとMPI使っている周りの人々に
聞いて回ったワシの印象。MPIって多次元の並列がし易いから、
その点原則最外ループしか並列処理しないOpenMPよりは将来的には便利だと思うな。
大昔どっかで書いたけど、OpenMPはオートマチック車、MPIはマニュアル車な印象。
やっぱそうか・・・
でも、これからコア数はもっと増えるだろうし、全部MPIでやるとすると
分割数がとんでもないことになりそうだなぁ
1回のジョブで出てくるファイル数が4桁とかなったらやってられんw
>>117 日立SR8000なんかはモロそれだったな。
ノード内はopenMPか自動での並列、ノード間はMPI。
Cで作ってたらなかなか自動並列してくれない。
疑似ベクトルだっけか>SR8000
122 :
名無しさん@5周年:2009/03/11(水) 00:49:16
キャッシュ先読みと、並列部分でCPUを一斉に起動するのが速い機構がSR8000のウリ。
PCベースではこの辺がネックになって実際の効率は落ちるだろうな。
メニーコアも結局はメモリ帯域の奪い合いで効率落ちそうだし。
>> 118
MPIが多次元の並列がしやすい?どう考えても OpenMP の方が多次元の並列化は容易でしょう?
(というより、慣れていない人がMPIで多次元の並列化をやると確実にはまると思うけど...)
もちろん、OpenMPが原則 外側のループのみの並列化というのは間違っていないけど
やろうと思えば、OpenMPでも外側と内側で並列化が出来るし、その時の難易度はMPIの方が遥かに高いでしょう
あと、ハイブリッドで組むのであれば、OpenMPで並列化したコードをさらにMPIで並列化するよりも、
MPIで並列化してからOpenMPで並列化した方が容易でしょうね。
>>123 どうせノード内よりノード間の通信がボトルネックになることを考えると
めんどくさいし全部MPIでいいんじゃないかと思ってしまうのだが・・・
>MPIで並列化してからOpenMPで並列化した方が容易でしょうね。
普通そうじゃない?
というか、分散メモリ型だとノード間にOpenMPは使えないよね
cluster-openmpつかえばいい
126 :
名無しさん@5周年:2009/03/11(水) 09:27:24
>>123 OpenMPで多次元(2次元=田の字みたく切ること、と理解したがいいのか?)分割は
コーディングが面倒臭いから正直お薦めしないね。
構造格子みたいに状況(隣接関係)が簡単な時はMPIの方が圧倒的に簡単で楽だよ。
ってOpenMPで多次元分割は正直アホくさいくらいパフォーマンスが上がらないよ、
と経験から言っておく。まあシステムに依存する部分もあるけどな。
>>124 は分かってそうだけど、
OpenMPは並列部分に入ったときのペナルティがきついから、やりかたに注意。
1〜100番地を1〜50、51〜100をMPIで島ごとにわけて
島内で50個の番地をOpenMPで並列するとかならOK。
外側のループをMPI,内側のLoopをOpenMPで並列するやり方だと、だいぶ遅くなっちゃう。
>>125 くわしく!
127 :
名無しさん@5周年:2009/03/11(水) 09:30:42
>>119 > 1回のジョブで出てくるファイル数が4桁とかなったらやってられん
カルシウムとれw
そんなもんだよ。
128 :
名無しさん@5周年:2009/03/11(水) 10:22:05
>>123 わらた
3つのうちの上2つ:上から目線な口調でこりゃまたひどく間抜けな勘違いを平然と・・
3つ目:ものすごく当たり前な事を・・・
こんな閑散としたところで釣りか?
>>127 そんなもんっておま・・・
まあそれくらいになったら、システム側も何かしら実装して対処してくれるはず
ユーザに4桁5桁のファイルを扱わせるなんて非現実的だよ
>>128 >3つのうちの上2つ:上から目線な口調でこりゃまたひどく間抜けな勘違いを平然と・・
ごめん頭が悪いからよくわからないや
なにがひどく間抜けな間違いか教えてくれないかな?
>> 124
それは間違っていないと思うし、ほとんどの場合はそれで良いと思う。
でも全部MPIにしてしまうと、下手をするとノード間の通信量が増えてしまわない?
>> 126
OpenMPの場合には小さくはメモリとキャッシュのバランス。
大きくはファーストタッチの問題などシステムに依存する部分が
あるのは同意なんだけど、どんなものを想定している?
133 :
112:2009/03/16(月) 23:52:02
>>116 thx!
今回してる計算が終わったらOpenMP化してみる
134 :
名無しさん@5周年:2009/03/19(木) 05:42:59
>>131 ESみたいにOpenMPだけで数百個のコアが同じメモリを共有できて
それぞれをMPIでつなぐ場合にはそうだよね。でもそうそうESクラスを使える人ばかりではないし。
たぶん全部MPIにしちゃえ!という意見は、同一のコードが大小いろいろなシステムでそこそこの速度で
最小限の変更or変更無しで動くことを好む人の意見で、大部分の人にとってはこちらのほうがいいし、
MPIだけで書いちゃったほうが都合のいいことが多いとおもう。
まあ、OpenMP指示子はただのコメント扱いにもできるから混ぜて書いても害はないと思うけど。
ifort(on Altix)をメインに使った経験ではハイブリッドにするとunrollその他の最適化を控えめに
する傾向がある(気がする)ので、MPI+OpenMPの良し悪しよりもこちらの方が効いてくることも。
NECのやつを使ったことないけど、そのへんはどうなのかな?
ESはノード内はOpenMPを使わなくても、自動並列してくれるけど
おお、ES様だ
その自動並列って他のシステムでたとえると
1)ベクトル化を頑張る
2)OpenMPを適当に埋め込む
3)その他
のどれに近いの?
普通に1)じゃないかな?多分・・・
誰か詳しい人の降臨望むw
インテルは2)だよ
1)は自動ベクトル化
つーか最近はいまいちプログラミングモデルの発展がなくない?
コアが増えますプログラミング大変になります、って言ってるのに、
それをサポートする技術ってあんまり出てきてないような
HPFとかあるよな
どうなってんだあれ
HPFってあれ普通の(?)fortranの90あたりと互換あるの?
なければ使う人あまりいないんじゃね?
ESというかSX使ってる人来ないかなぁ
>>134 ES、ESIIともにノード内は8CPU。メモリも16GB、128GB
Altixの1ノードCPU:128、メモリ:512GB仕様とは違う。
ベクトル化可能な場合、自動並列が有効になることが多いので、
ベクトル化率が高いコードは自動並列が結構つかえる。
しかしESではマルチノードジョブ(10ノード・80CPU以上)が前提。
一方、同じコードをintel fortranで自動並列をかけてもほとんど効率がでない。
そこらへんはベクトル機開発で培ったノウハウの差がでるのだと思う。
同じスカラーでも富士通のfortranはやはりベクトルコードでは自動並列が結構使える。
お、ES人だw
AltixっというかOpenMPは32CPU以上だとあんまり御利益無かった経験があるから
SX使ったことないけど、143の話はなんかしっくり来るな。
・・・自分も134みたいに1ノードが512CPUという話を聞いたけど
どっかから出たデマだったんかな。それに
ノード内のCPU一個一個にMPIかOpenMPで指図しないといけない物と思ってた。
ノードを一つのCPUと思ってCPU間通信をMPIで書いておけば、
ノード内は自動並列処理が良い実行イメージを作ってくれる、
という理解で良いのかな?
Intel のはベクトル化するまえのtempな変数使いまくりの段階では良いのでは
という印象をもっているので、Intelはインディ、SXはF1なイメージを
勝手に描いてみる。
富士通のFortranは良いよね。最適化(-Rfast)かけてただけで
かなり良好な実行バイナリを掃いてくれる。かなり最適化かけても
なぜか違反処理の発生した場所をソースの行で教えてくれるのもいい。
>>144 >ノードを一つのCPUと思ってCPU間通信をMPIで書いておけば、
>ノード内は自動並列処理が良い実行イメージを作ってくれる、
>という理解で良いのかな?
yes
そういや富士通って最近どんなスパコン出してるっけ?
vpp5000の頃はお世話になったが
ESに限らず共有メモリ型のマルチノードシステムでは、
普通はMPIに自動並列(or OpenMP)がぶら下がることになる。
例えばNノード(1ノード8CPU)を使用する場合、
Nx1x8 => ノード内全自動並列
Nx2x4 => ノード内2MPIに各4自動並列
Nx8x1 => 全部MPI、といった感じ。
ところで、altixのノード内の共有メモリは擬似的な共有メモリで、
プログラムの方で意識する必要はないけれど、内部では各分割メモリが
ハブ?でつながっているだけと聞いたことがある。
そのため、ノード内でも領域分割をしたMPIコードの方が効率がでる
場合が多いと聞いたように思う。
>内部では各分割メモリがハブ?でつながっているだけと聞いたことがある。
yes
>ノード内でも領域分割をしたMPIコードの方が効率がでる
へぇ・・・言われてみれば確かにそうかも
というかAltixもまだしぶとく生きてるのかね?
ほほう。
6年くらい前にAltix箪笥を見たことあるけど背面部分に金属メッシュで包まれた太いケーブルが
うねうねつながってた。ある程度高速でメモリ内容のやりとりをしようと思えば
ああいう太さになったんだろな。
SUNがIBMに買収されるかも、なる記事をみたけどSparcの系譜は
富士通経由でこの先生きのこるのかな?
>>143 ESだったかどこかのSXでは診断ソフトでベクトル化率90%くらいの点数をもらうコードを
作らないと、計算を走らせてくれないと聞いた。
そこの変更部分で人間への負荷が大きいようなら、いやだな。
>>143,144
512という数字はNASAかどっかのAltixがが島一つでその数だった気がする。
最近1ノードitanium2を1024個で運用始めたのしないのと聞いたけど
実際にあったとしてパフォーマンスはどんなもんなんだろうか
>>149 ESはベクトル化率95%以上が必要。ただベクトル機のユーザにとってはこれは
そんなに難しい値じゃないと思う。それにfortranで書いていたら、コンパイラが
かなり頑張ってベクトル化してくれる。
一昔前のベクトル機、例えばVPP5000なんてクロックは300MHzしかなかったから、
ベクトル機のユーザはベクトルチューニングはかなり行ってるからね。
>>145 富士通の最新のスパコンはSPARC64VIIのFX1。JAXAのレポートで単一CPUでFX1が
VPP5000を上回ったて報告してたw。
>>150 1ノードあたりのCPU・メモリが大きい場合、メモリバンド幅が重要なコードでは
性能が出にくいと思う。
富士通頑張ってるなぁ
ブラックな印象がぬぐえないけど、日本企業独特の不器用さも表れてて、どうも憎めない会社だw
153 :
名無しさん@5周年:2009/05/14(木) 10:07:09
SPARCの系譜なのかわからないけど、新しいのが富士通から出たね。
日電がスパコン事業から撤退だか縮小するとの事なので、
富士通にゃがむばってもらいたいな。
154 :
112:2009/05/28(木) 01:21:20
intel fortranのバージョン11使ってみたけど凄い
parallelオプションの自動並列が劇的に改善されてる
4コアx2CPU積んだ計算機で試したら
常時700〜790%だよ...
man見たんだけど、-parallelのマルチスレッドってOpenMPとは別の技術でのマルチスレッド?
自動でOpenMP化してくれる、ってのとは違うんだよね?
intelじゃないどこかの自動並列化は
OpenMPのdirectiveがついた状態の中間ファイルを吐いてくれるけどね。
intelはどうしてるんだろう?
作り手の手間を考えると既に作ってある openmp 解釈ソフトに
おんぶさせた方が楽と思うけど。
>>156 やっぱそうだよね
ちょっと調べてみよっかな
>>154 分割対象のループの要素を8の倍数にすると800に近づく・・・と思うw
first touchのポリシーがあるシステム(?)だと配列に適当な初期値を放りこむループを
作っとくとほんのりと速くなることもあるみたい。
ifort11 はなかなかみたいだね。自分のところは9のまんまだけど、近所の研究室では大評判だ。
>>157 報告よろぴく
ifort11@corei7、糞速いっす
10.1からオプションとか大きく変わっちまったけど、許そうw
160 :
112:2009/05/29(金) 23:27:59
>>158 101x501x101なので8の倍数ではないです
手軽すぎて笑うしかない
8x13=104
101/104=0.971
いいんじゃない?
162 :
161:2009/05/30(土) 03:01:01
配列のサイズを8だか16の倍数にすると
並列化の能率以外の何かで良くない、というお話も聞いたことがあるな。
メモリのアドレス走査に余計な手間がかかるとか、なんとか・・・・わすれた。
バンクコンフリクト?
ベクトル計算機ではよく聞く話だけど、スカラも同じかしら?
スカラだとキャッシュラインがらみじゃね?
165 :
名無しさん@5周年:2009/10/02(金) 19:19:39
今、GPUの競争が凄いんですけど。
競争がコンパイラまで進んだら使ってみよう、という人は多いと思うよ。
興味はあるが人柱は御免
せいぜい競争してくれ
GPUって倍精度もいけるの?
PCのグラボにのってるようなGPUは単精度ばっかだと思ってたけど
所詮ゲーム用途だしそれで十分なんだろう
最近は倍精度も出てるんだろうか?
CUDA関連の資料見ると倍精度でも
そこそこの速度が出てるみたい
でもこの辺の演算性能はグラボとメインの間の
メモリアクセスで決まるんじゃね?
171 :
名無しさん@5周年:2009/10/15(木) 05:10:08
ふむふむ
・・・と知ったかぶるのはやめよう。GPUの事を知らないけどメリットはなんだろう?
冗長単純な演算がアホみたいに速い、たぶん行列演算みたいなのが得意、
データ転送がアホみたいに速い、
データの読出し書込みを同時にできる、
とかかな?最後のはGPU自体の機能ではないしあってもシミュでは使いにくい機能な気もするが。
5年後くらいには商業ベースで出てくるのだろうか?
詳しい人、プリーズ。
172 :
名無しさん@5周年:2009/10/24(土) 04:38:05
core2 のをWinで使ってるけど、タスクマネージャ見ると
非並列の処理も2つのコアをそれぞれ50%くらい使っているような表示になるのが不思議だ。
合計で100%なのでこれはタスクマネージャかOSの問題だろうけど。
2並列すると200%になるから一応並列処理もできてるっぽい。
かなり並列化・特定の演算に特化させたFPGAに
シミュレートさせてみたいなとか思ってるんだけど、
最近のCPUやGPUの存在の前では何の意味も無いかな?
FPGAの規模にも寄るんだろうけど……。
>最近のCPUやGPUの存在の前では何の意味も無いかな?
開発のスピードが桁違いだからねぇ
コストも含めると、専用機の開発って今後は割に合わなくなってくると思う
175 :
名無しさん@5周年:2009/12/27(日) 14:26:16
177 :
名無しさん@5周年:2009/12/27(日) 22:12:19
今に、並列計算機のハードの値段のほとんどは
インターコネクトだということになるだろう。
そうでなければむしろ変だ。
178 :
omanko:2010/01/04(月) 12:23:05
179 :
名無しさん@5周年:2010/02/09(火) 21:45:37
日本はNvidiaのようなGPUは独自では作れないんだろうね。
新しいものを作ることはできなくて、既に情報がよく
公開されたものの真似物は作れても。
単なる画像表示用のGPUならDirectXをサポートするハードと
それとWindowsを繋ぐデバイスドライバだけ書けば、
それ以外の互換性は要求されないからCPUなどと違って
NvidiaとかATIがインテルとは無関係に存在できたのだから、
日本のNECとか日立とか富士通、東芝、ルネサス、エルピーダ
とかでも出来たんだろうに。
180 :
名無しさん@5周年:2010/02/10(水) 06:23:08
GPUで計算・・・。
181 :
名無しさん@5周年:2010/08/08(日) 12:18:02
182 :
名無しさん@5周年:2010/08/20(金) 00:34:01
参加した計算スキーム研究会に、業界標準の検証問題を
GPGPU つかって解いてみました、という博士課程の学生さんの発表があった。
Linux 機一個でXenon100個分のご利益があってまだ伸びそう、とか
並列化は今後の課題とかなんとか・・。業界最前線の状態は
しらないけどそう遠くないうちに一般化しそうな雰囲気。
やはり既存コードから移行するのは相当のInvestment(手間・時間) が
いるみたいだね。お年寄wはかなり躊躇してる・・だから、
いまから始める学生さんや時間的にまだ余裕のある若手さんが
始めるには良い時期になってきたのかも。
まだ様子見だなGPGPUは
184 :
名無しさん@5周年:2010/08/20(金) 20:19:37
分散化が難しいCAEが多いから
まだまだ無理だろ。
185 :
名無しさん@5周年:2010/08/20(金) 20:20:58
ポスト用のチップは
所詮ポスト用にしか向かないと思う。
186 :
名無しさん@5周年:2010/08/24(火) 20:02:25
俺みたいなのでも並列プログラム書き始めているからねえ
特定分野では、そろそろ普通になってきそうな予感。
でも、GPUはOpenMPと違ってなかなか敷居が高い。
187 :
名無しさん@5周年:2010/08/25(水) 11:13:25
誰か行ってこい
189 :
名無しさん@5周年: