Rllvm и пакеты компилятора: компиляция R - PullRequest
4 голосов
/ 15 апреля 2011

Это довольно общий вопрос о будущем R: есть надежда увидеть слияние compiler и Rllvm (от Omegahat) или другую схему JIT-компиляции для R (я знаю, что есть Ra, но не обновлено в последнее время)?

В моих тестах прирост скорости от compiler минимален для "сложных" функций ...

Ответы [ 2 ]

11 голосов
/ 15 апреля 2011

Важно не то, насколько сложна функция, а какие вычисления она выполняет.Компилятор будет иметь наибольшее значение для функций, в которых преобладают издержки интерпретатора, например, те, которые выполняют в основном простые операции со скалярными или другими небольшими данными.В подобных случаях я видел коэффициент 3 для искусственных примеров и немного лучше, чем коэффициент 2 для некоторого производственного кода.Функции, которые проводят большую часть своего времени в операциях, реализованных в собственном коде, таких как операции линейной алгебры, не принесут особой пользы.

Это всего лишь первая версия компилятора, которая со временем будет развиваться.LLVM - одно из нескольких возможных направлений, которые мы рассмотрим, но, вероятно, ненадолго.В любом случае, я ожидаю, что использование чего-то вроде LLVM обеспечит дальнейшие улучшения в тех случаях, когда текущий компилятор уже имеет значение, но не добавляет много в тех случаях, когда это не так.

4 голосов
/ 16 апреля 2011

(переход от комментария к ответу ...)

Это больше похоже на вопрос для списка рассылки разработчиков. Основываясь на моих общих впечатлениях, я бы сказал «вероятно, нет». Ваши сложные функции уже основаны на сильно векторизованных (и, следовательно, эффективных) функциях? Я думаю, что более многообещающим направлением для ситуаций, которые не так легко автоматически оптимизируются, является повышенная простота встраивания C ++ и т. Д. (Т. Е. Rcpp), если необходимо, inline

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...