[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:1129

From: SASADA Koichi <ko1 atdot.net>
Date: Tue, 20 Nov 2007 20:05:42 +0900
Subject: [yarv-dev:1129] Re: 考えている案

 ささだです.

Takeshi Horinouchi wrote:
> 浮動小数点がらみで特に時間がかかるのは、ループを沢山まわす場合が
> 大いではないでしょうか。素人のコメント恐縮ですが、比較的
> 「やりやすい」(注※)ループならコンパイルして速く回すというのも
> ありかと思うのですが。

 勿論,正攻法だと思います.


> Google に「yarv C コンパイラ」と入れたら
> http://www.atdot.net/~ko1/w3ml/w3ml.cgi/yarv-dev/msg/85
> が出てきました。すみません、現在既に Ruby は JIT 入りでしょうか。
> それなら、浮動小数点ループ向け JIT 高速化とか...

 残念ながら,ありません.


> (注※) 例えば Numeric など限られたクラスのオブジェクトしか含まれ
>      ない場合とか。私の場合、ループに NArray も混ぜたいですが...。
>      言いたい放題ついで書くと、NArray も ruby 1.9 に取り込まれる
>      と嬉しかったりします。うまく遅延処理を入れるなどして、より
>      速くなって欲しかったりして...。

 この「限られたクラスのオブジェクトしか」という言葉がくせ者でして,
Ruby を一般的に考えるとこれが「不可能」なんです.

 たとえば

  def foo n
    sqrt(n) * sqrt(n)
  end

なんてのは,どう考えても

foo(double n){
  return sqrt(n) * sqrt(n);
}

に展開できそうなもんですが,

・n が double かどうかわからない
 文字列かもしんない
・sqrt が Math.sqrt かどうかわからない
 例えば,set_trace_func して,その中で再定義とか
(普通しないけど)
・Float#* が再定義されていないかどうかわからない

という問題があって,なかなかうまくいきません.

 で,現実的には,「ここは浮動小数点しかこないよ」と教えてあげたり,
「メソッドは再定義しないよ」と教えてあげたりしてあげるのがいいのか
な,と.

 つまり,Ruby っぽい文法の浮動小数点に特化したような言語を作って,
それを何らかの言語(Cとか)に翻訳してあげる,それと Ruby をつなぐ,
みたいな話になるかと思います.現実的には,これで問題ないことも多いと
思います.


 個人的には,性能に問題が出る機能を一切除いた Ruby ってのはどういう
ものかに興味があったりします.



 ちなみに,NArray 同梱には私も賛成なんですが,

・欲しいと声を上げる人
・メンテナンスを継続して行うことが出来る人
・ドキュメントをRubyリファレンスマニュアルに追加出来る人

がいれば,実現可能かと思います.

-- 
// SASADA Koichi at atdot dot net

--
ML: yarv-dev quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

      1122 2007-11-20 19:08 [ko1 atdot.net       ] 考えている案                            
      1123 2007-11-20 19:25 ┣[horinout rish.kyoto-]                                       
      1124 2007-11-20 19:33 ┃┣[ko1 atdot.net       ]                                     
      1127 2007-11-20 19:52 ┃┣[horinout rish.kyoto-]                                     
->    1129 2007-11-20 20:05 ┃┃┗[ko1 atdot.net       ]                                   
      1130 2007-11-20 20:21 ┃┃ ┗[horinout rish.kyoto-]                                 
      1131 2007-11-20 20:24 ┃┃  ┗[ko1 atdot.net       ]                               
      1132 2007-11-20 20:32 ┃┗[2008 shudo.net      ]                                     
      1133 2007-11-20 20:53 ┃ ┗[horinout rish.kyoto-]                                   
      1137 2007-11-20 21:15 ┃  ┗[2008 shudo.net      ]                                 
      1125 2007-11-20 19:39 ┣[m-72 tf6.so-net.ne.j]                                       
      1126 2007-11-20 19:46 ┃┗[ko1 atdot.net       ]                                     
      1128 2007-11-20 19:58 ┃ ┣[m-72 tf6.so-net.ne.j]                                   
      1135 2007-11-20 20:59 ┃ ┗[m-72 tf6.so-net.ne.j]                                   
      1145 2007-11-21 19:44 ┃  ┗[ko1 atdot.net       ]                                 
      1146 2007-11-21 20:34 ┃   ┗[m-72 tf6.so-net.ne.j]                               
      1134 2007-11-20 20:54 ┣[2008 shudo.net      ]                                       
      1144 2007-11-21 08:39 ┃┗[ko1 atdot.net       ]                                     
      1140 2007-11-21 03:52 ┣[t_nissie yahoo.co.jp] 富豪的 VALUE 型( Re: 考えている案)  
      1141 2007-11-21 04:57 ┃┗[ko1 atdot.net       ]                                     
      1142 2007-11-21 05:29 ┃ ┗[t_nissie yahoo.co.jp]                                   
      1143 2007-11-21 06:02 ┃  ┗[ko1 atdot.net       ]                                 
      1147 2007-11-24 12:56 ┗[m-72 tf6.so-net.ne.j]                                       
      1148 2007-11-24 13:10  ┣[ko1 atdot.net       ]                                     
      1152 2007-11-25 08:51  ┃┗[m-72 tf6.so-net.ne.j]                                   
      1149 2007-11-24 13:18  ┣[ko1 atdot.net       ]                                     
      1150 2007-11-24 13:21  ┗[ko1 atdot.net       ]                                     
      1151 2007-11-24 13:39   ┗[m-72 tf6.so-net.ne.j]