Rubyは気象モデルで使えるHPCを実現できるか

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

コメント