Высокопроизводительные вычисления с Ruby? - PullRequest
3 голосов
/ 19 июля 2011

Мои коллеги обычно используют C или Fortran для высокопроизводительных вычислений (математика для больших массивов данных). Интересно, есть ли возможность для кода Ruby быть скомпилированным / преобразованным и приблизиться к оптимизированному коду C с точки зрения производительности?

Существует ряд проектов для компиляции Ruby в байт-код (Rubinius, JRuby, IronRuby, YARV ?, Cardinal) и в собственный код (MacRuby, ..?). Каковы их шансы приблизиться к производительности C?

Существует также почти 2 года неактивного проекта по преобразованию кода Ruby в код C: ruby2c .


Похожие вопросы:

Ответы [ 3 ]

4 голосов
/ 19 июля 2011

Самый простой способ достичь уровня производительности C для численных расчетов - это использовать специализированные библиотеки, такие как Ruby / GSL , которые уже являются высоко оптимизированным скомпилированным C-кодом. Окончательная производительность будет зависеть от того, сколько времени ваш код проведет в библиотеке.

4 голосов
/ 19 июля 2011

Есть одна опция, которую вы не включили: Расширить Ruby в C довольно просто, поэтому, если у вас есть ограниченный набор операций, которые должны быть быстрыми, вы можете написать расширение C, а затем использовать его из Ruby.

http://people.apache.org/~rooneg/talks/ruby-extensions/ruby-extensions.html

3 голосов
/ 19 июля 2011

Как уже упоминалось, вы захотите использовать высокопроизводительные библиотеки с оболочкой ruby.Не сбрасывайте со счетов JRuby, используя библиотеки Java для научных вычислений.

...