R 3.4 Обеспечивает Повышение Производительности


Был выпущен R 3.4.0 под кодовым названием “You Stupid Darkness”, основной выпуск языка R, используемого для науки о данных, анализа больших данных, прогнозного моделирования и визуализации. Он имеет длинный список новых функций и исправлений ошибок, и их общий эффект заключается в повышении производительности.

Язык программирования с открытым исходным кодом R был создан для статистического анализа и построения графиков. Он позволяет упорядочивать данные, определять сложные вычисления и отображать результаты визуально и пользуется популярностью у статистиков, которым необходимо анализировать данные. В конце 2014 года мы сообщили R возглавляет десятку лучших языков по рейтингу индекса TIOBE. В настоящее время он находится на 15-м месте, что отражает значительный уровень интереса.

В R 3.4.0 есть следующие основные улучшения производительности: 

JIT («just-in-time») компилятор байтового кода включен по умолчанию  Это означает, что функции будут скомпилированы при первом или втором использовании, а циклы верхнего уровня будут скомпилированы и затем запущены. На данный момент компилятор не будет компилировать код, содержащий явные вызовы browser(): это делается для поддержки одного шага из вызова browser (). 

Повышение производительности линейной алгебры R использует библиотеку BLAS для высокопроизводительных реализаций многих процедур линейной алгебры, таких как умножение матриц. Теперь он использует более быстрые процедуры для умножения матриц и векторов, а также немного быстрее для каждого вызова, сокращая время проверки того, содержат ли данные пропущенные значения (которые BLAS обычно не обрабатывает.

Улучшения для пакетов с скомпилированным кодом. Многие пакеты включают код , написанный на C, C++ или даже Fortran, который затем вызывается из функций R. R 3.4.0 включает в себя новую систему, которая позволяет разработчикам пакетов предоставлять скомпилированные функции другим пакетам или сохранять их в тайне.

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

Повышение производительности других функций. Сортировка векторов чисел происходит быстрее благодаря использованию алгоритма сортировки по радиусу по умолчанию. Таблицы с пропущенными значениями вычисляются быстрее. Длинные строки больше не вызывают замедления в функции str. Функция sapply работает быстрее при применении к массивам с именами измерений.

Улучшения, не связанные с производительностью, включают: 

Обновленная версия графической системы Tcl/Tk в R для Windows.

Более последовательная обработка пропущенных значений при построении таблиц.

Повышение точности для экстремальных значений в некоторых статистических функциях.

Лучшее обнаружение и предупреждение вероятных ошибок программиста, таких как сравнение вектора с массивом нулевой длины.


Добавить комментарий