Jump to content

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

БДРП
Парадигма СПМД и МПМД
Разработано Вэй-Чен Чен, Георгий Остроухов, Прагнешкумар Патель и Дрю Шмидт
Разработчик Основная команда 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».

### Initial MPI
library(pbdMPI, quiet = TRUE)
init()

comm.cat("Hello World!\n")

### Finish
finalize()

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

mpiexec -np 2 Rscript demo.r

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

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

### Initial MPI
library(pbdMPI, quiet = TRUE)
init()
.comm.size <- comm.size()
.comm.rank <- comm.rank()

### Set a vector x on all processors with different values
N <- 5
x <- (1:N) + N * .comm.rank

### All reduce x using summation operation
y <- allreduce(as.integer(x), op = "sum")
comm.print(y)
y <- allreduce(as.double(x), op = "sum")
comm.print(y)

### Finish
finalize()

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

mpiexec -np 4 Rscript demo.r

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

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

# Initialize process grid
library(pbdDMAT, quiet=T)
if(comm.size() != 2)
  comm.stop("Exactly 2 processors are required for this demo.")
init.grid()

# Setup for the remainder
comm.set.seed(diff=TRUE)
M <- N <- 16
BL <- 2 # blocking --- passing single value BL assumes BLxBL blocking
dA <- ddmatrix("rnorm", nrow=M, ncol=N, mean=100, sd=10)

# LA SVD
svd1 <- La.svd(dA)
comm.print(svd1$d)

# Finish
finalize()

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

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 дней с момента нарушения.)