Jump to content

Программирование с большими данными в R

БДРП
Парадигма СПМД и МПМД
Разработано Wei-Chen Chen, George Ostrouchov, Pragneshkumar Patel, and Drew Schmidt
Разработчик Основная команда pbdR
Впервые появился сентябрь 2012 г .; 11 лет назад ( 2012-09 )
Предварительный выпуск
Через GitHub в RBigData
Дисциплина набора текста Динамический
ТЫ Кросс-платформенный
Лицензия Генеральная общественная лицензия и Общественная лицензия Mozilla.
Веб-сайт www .r-pbd .org
Под влиянием
R , C , Фортран , MPI и ØMQ

Программирование с большими данными на R (pbdR) [1] представляет собой серию пакетов R и среду для статистических вычислений с большими данными с использованием высокопроизводительных статистических вычислений. [2] [3] PbdR использует тот же язык программирования, что и R, с классами и методами S3/S4 , который используется статистиками и сборщиками данных для разработки статистического программного обеспечения . Существенная разница между кодом pbdR и R заключается в том, что pbdR в основном ориентирован на системы с распределенной памятью , где данные распределяются по нескольким процессорам и анализируются в пакетном режиме , тогда как связь между процессорами основана на MPI , который легко использовать в больших высокопроизводительных вычислениях. (HPC) системы. Система R в основном фокусируется [ нужна ссылка ] на одиночных многоядерных машинах для анализа данных в интерактивном режиме, таком как графический интерфейс .

Двумя основными реализациями в R с использованием MPI являются Rmpi. [4] и pbdMPI из pbdR.

Идея параллелизма SPMD заключается в том, чтобы позволить каждому процессору выполнять одинаковый объем работы, но над разными частями большого набора данных. Например, современный графический процессор представляет собой большую коллекцию более медленных сопроцессоров, которые могут просто применять одни и те же вычисления к различным частям относительно небольших данных, но параллелизм SPMD в конечном итоге дает эффективный способ получения окончательных решений (т.е. время решения короче). [5]

Дизайн упаковки

[ редактировать ]

Программирование с помощью pbdR требует использования различных пакетов, разработанных основной командой pbdR. Разработаны следующие пакеты.

Общий ввод/вывод Вычисление Приложение Профилирование Клиент/Сервер
pbdDEMO pbdNCDF4 pbdDMAT pmclust пбдПРОФ pbdZMQ
pbdMPI pbdADIOS pbdBASE pbdML pbdPAPI отдаленный
pbdSLAP hpcvis pbdCS
Казам пбдРПК
Изображения описывают, как коррелируют различные пакеты pbdr.

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

  • pbdMPI — эффективный интерфейс для MPI OpenMPI или MPICH2 с акцентом на «Одна программа/множество данных» ( SPMD ). стиль параллельного программирования
  • pbdSLAP --- объединяет библиотеки масштабируемой плотной линейной алгебры с двойной точностью для R на основе ScaLAPACK версии 2.0.2, которая включает в себя несколько пакетов масштабируемой линейной алгебры (а именно BLACS , PBLAS и ScaLAPACK ).
  • pbdNCDF4 --- интерфейс для Parallel Unidata NetCDF 4. файлов данных формата
  • pbdBASE --- низкоуровневые ScaLAPACK. коды и оболочки
  • pbdDMAT --- распределенные матричные классы и вычислительные методы с упором на линейную алгебру и статистику.
  • pbdDEMO --- набор демонстраций и примеров пакетов, а также этот объединяющий эпизод.
  • pmclust --- параллельная кластеризация на основе моделей с использованием pbdR
  • pbdPROF --- пакет профилирования для кодов MPI и визуализации проанализированной статистики.
  • pbdZMQ --- интерфейс к ØMQ
  • удаленный --- клиент R с удаленными серверами R
  • pbdCS --- клиент pbdR с удаленными серверами pbdR.
  • pbdRPC --- удаленный вызов процедуры
  • kazaam --- очень высокие и тонкие распределенные матрицы
  • pbdML --- набор инструментов машинного обучения

Среди этих пакетов пакет pbdDEMO представляет собой набор из более чем 20 демонстрационных пакетов, которые предлагают примеры использования различных пакетов pbdR и содержат виньетку, которая предлагает подробные объяснения демонстрационных версий и дает некоторую математическую или статистическую информацию.

Привет, мир! Сохраните следующий код в файле с именем «demo.r».

 MPI ### Начальная библиотека  (  pbdMPI  ,   quiet   =   TRUE  )  init  ()  comm.cat  (  «Hello World!\n»  )  ### Завершить  финализацию  () 

и используйте команду

mpiexec   -np   2   Rscript   demo.r 

для выполнения кода, где Rscript является одной из исполняемых программ командной строки.

Следующий пример, модифицированный из pbdMPI, иллюстрирует базовый синтаксис языка pbdR.Поскольку pbdR разработан в SPMD , все сценарии R хранятся в файлах и выполняются из командной строки через mpiexec, mpirun и т. д. Сохраните следующий код в файле с именем «demo.r»

### Начальная  библиотека  MPI (  pbdMPI  ,   quiet   =   TRUE  )  init  ()  .comm.size   <-   comm.size  ()  .comm.rank   <-   comm.rank  ()  ### Установить вектор x на всех процессорах с разными значения  N   <-   5  x   <-   (  1  :  N  )   +   N   *   .comm.rank  ### Все уменьшают x, используя операцию суммирования  y   <-   allreduce  (  as.integer  (  x  ),   op   =   "sum"  )  comm.print  (  y  )  y   <-   allreduce  (  as.double  (  x  ),   op   =   "sum"  )  comm.print  (  y  )  ### Завершить  финализацию  () 

и используйте команду

mpiexec   -np   4   Rscript   demo.r 

для выполнения кода, где Rscript является одной из исполняемых программ командной строки.

Следующий пример, модифицированный из pbdDEMO, иллюстрирует базовое вычисление ddmatrix для pbdR, которое выполняет разложение по сингулярным значениям для заданной матрицы.Сохраните следующий код в файле с именем «demo.r».

# Инициализируем  библиотеку  сетки процессов (  pbdDMAT  ,   quiet  =  T  )  if  (  comm.size  ()   !=   2  )    comm.stop  (  «Для этой демонстрации требуется ровно 2 процессора».  )  init.grid  ()  # Настройка оставшегося  comm .set.seed  (  diff  =  TRUE  )  M   <-   N   <-   16  BL   <-   2   # блокировка --- передача одного значения BL предполагает блокировку BLxBL  dA   <-   ddmatrix  (  "rnorm"  ,   nrow  =  M  ,   ncol  =  N  ,   среднее значение  =  100  ,   sd  =  10  )  # LA SVD  svd1   <-   La.svd  (  dA  )  comm.print  (  svd1  $  d  )  # Завершить  финализацию  () 

и используйте команду

mpiexec   -np   2   Rscript   demo.r 

для выполнения кода, где Rscript является одной из исполняемых программ командной строки.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f90577afb51e2f24795954ea2ba6ab3d__1709127060
URL1:https://arc.ask3.ru/arc/aa/f9/3d/f90577afb51e2f24795954ea2ba6ab3d.html
Заголовок, (Title) документа по адресу, URL1:
Programming with Big Data in R - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)