私の同僚は、通常、高性能計算(大規模データの数学)にCまたはFortranを使用しています。 Rubyコードがコンパイル/変換され、パフォーマンス面で最適化されたCコードに近づく可能性はありますか?Rubyでの高性能計算?
Rubyをバイトコード(Rubinius、JRuby、IronRuby、YARV?、Cardinal)とネイティブコード(MacRuby、..?)にコンパイルするプロジェクトはたくさんあります。 Cのパフォーマンスに近づくチャンスは何ですか?
Rubyコードをruby2cに変換するための非アクティブなプロジェクトとして、ほぼ2年間もあります。
関連した質問:それはCでのRubyを拡張するために、むしろ簡単です、あなたが持っているので、もし:
- Is it possible to compile Ruby to byte code as with Python?
- Can Ruby, PHP, or Perl create a pre-compiled file for the code like Python?
なぜこれをやりたいですか?私は間違ってはいけません - 私はルビーが大好きですが、あなたのドライバーが何であるか知ることは良いことです。 実験を試したことがありますか、ルビーが遅くなると想定していますか?データの性質や計算結果によっては、パフォーマンスの差がそれほど大きくないか、または膨大なものになる可能性があります。あなたが試みるまであなたは決して知らない。 – Rob
私たちのコードは非常に複雑なので、CではなくRubyに書くことができれば素晴らしいでしょう。しかし、現在のRubyの実装は、[いくつかのベンチマーク](http://shootout.alioth .debian.org/u64q/benchmark.php?test = all&lang = yarv&lang2 = gcc)。また、クラスター上でコードを実行する必要があります。ここで計算に数日かかることがあります(C)。 RubyコードをCよりわずか2〜3倍遅いバイトコードにコンパイルできれば、それはおそらく大丈夫でしょう。 Factor of 100は計算には遅すぎます。 – Andrei