Rubyは気象モデルで使えるHPCを実現できるか
フロンティアは組み込みとHPCだという。HPCの話あるのかな / 「キャズムを超えたRubyはなくならない」---軽量版を開発中のまつもとゆきひろ氏 - ニュース:ITpro http://t.co/VF3yKFy
2011-09-09 10:30:44ソレは我々自身への問い RT @e_toyoda: フロンティアは組み込みとHPCだという。HPCの話あるのかな / 「キャズムを超えたRubyはなくならない」---軽量版を開発中のまつもとゆきひろ氏 - ニュース:ITpro http://t.co/D47vhcw
2011-09-09 12:47:37そうです。ものすごいチャンスが転がってきたということです。 RT: @m7621: ソレは我々自身への問い RT @e_toyoda: フロンティアは組み込みとHPCだという。HPCの話あるのかな http://t.co/VF3yKFy
2011-09-09 12:52:37たとえばNArrayありますね。あれ中をOMPしたらすぐノード内速くなりますね。分散メモリだったら分散NArray作ればいいですね。もう間違いなくすごい速く足し算とスカラ倍できますね。だけどそれじゃ数値予報はできませんね。なんでか。
2011-09-09 12:58:46GSMの計算時間の何割かがルジャンドル変換といわれます。それはNArrayじゃ書けないけれど、NArrayにfftwが付属するように誰かさんのガリガリチューニングのルジャンドルをつけたらいいですね。NArrayインNArrayアウトのメソッドが数個追加されるだけのことです。
2011-09-09 13:03:02|д゚)@seiya_ni RT @e_toyoda: GSMの計算時間の何割かがルジャンドル変換といわれます。それはNArrayじゃ書けないけれど、NArrayにfftwが付属するように誰かさんのガリガリチューニングのルジャ(cont) http://t.co/TIBFJ0M
2011-09-09 13:06:24残るは、ルジャンドル変換や配列演算式ほど定型化できないものですが、それを99%とかとことんやっつけないとアムダールの法則でコテンパンにやられるわけです。どうしたらいいか。
2011-09-09 13:08:00そこでクロージャを持つ言語の強みが出てきて、分散してるかもしれない配列オブジェクトに対してメソッドを投げて分散させる、その分散化を配列の任務ととらえることが考えられるわけですね。もちろんクロージャがスレッドセーフにならなきゃいけないし、
2011-09-09 13:11:57場合によったらJITでネーティブコードをコンパイルしないとダメかもしれない。でも、Rubyも今やバイトコードとか言ってるわけですから、そのくらいその筋の人ならすぐにできると思うんですよ。で、matz が興味をもってるなんてチャンスに乗らない手はないと。
2011-09-09 13:14:05ま、Array#map のダサい版で、C の関数をString で渡すと JIT コンパイルして要素のポインタ渡して呼び出すとかで速度測ってみたらいいかもしれない。ただ、数値予報モデルと言うのは、M1の学生がそうやって遊んでみるにはちょっとデカいんですよね。
2011-09-09 13:16:10@e_toyoda ちょっと話はそれますが、先日, HPC Ruby (生Ruby が C+gcc とほぼ変わらない速度がでている) の中村さんと話をしたところ、将来的にはJITコンパイルや並列化も考えているそうです。
2011-09-09 13:33:26@seiya_ni 並列化は将来ですか。うーむ。ググると静的解析でオブジェクトの型決定するとか、VALUE が64ビットになるからintの代わりにdoubleを即値で持つというのをやったみたいですが、まだ我々のリアル問題に効果が出るには、ちょっとフロンティアが広いですねえ。
2011-09-09 14:09:17@e_toyoda おっしゃるように、目的がはっきりしているので、汎用性を気にしなければ NArray 改造や並列化で速度を出すのはそう難しくなさそうですね。
2011-09-09 14:17:02問題全くないっす。 QT @e_toyoda: @e_toyoda @m7621 @seiya_ni @uwabami つぶやきを使わせていただきました。問題ありましたら対応しますのでご連絡ください。 http://t.co/D0Ie8S2
2011-09-10 01:43:23@yukihiro_matz @e_toyoda @m7621 @seiya_ni 楽しいネタは沢山有りそうな訳で。
2011-09-10 02:25:58