Программирование с большими данными в R
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигма | СПМД и МПМД |
---|---|
Разработано | Вэй-Чен Чен, Георгий Остроухов, Прагнешкумар Патель и Дрю Шмидт |
Разработчик | Основная команда pbdR |
Впервые появился | сентябрь 2012 г |
Предварительный выпуск | |
Дисциплина набора текста | Динамический |
ТЫ | Кросс-платформенный |
Лицензия | Генеральная общественная лицензия и Общественная лицензия Mozilla. |
Веб-сайт | www |
Под влиянием | |
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.
- PbdR, построенный на pbdMPI, использует параллелизм SPMD, при котором каждый процессор считается рабочим и владеет частями данных. Параллелизм SPMD, представленный в середине 1980-х годов, особенно эффективен в однородных вычислительных средах для больших данных, например, при выполнении разложения по сингулярным значениям на большой матрице или выполнении кластерного анализа на больших объемах данных высокой размерности. С другой стороны, нет никаких ограничений на использование параллелизма менеджер/работники в среде параллелизма SPMD .
- Рмпи [4] использует параллелизм менеджер/работники , при котором один главный процессор (менеджер) управляет всеми остальными процессорами (работниками). Параллелизм менеджер /работники, введенный примерно в начале 2000 года, особенно эффективен для больших задач в небольших кластерах , например, метод начальной загрузки и моделирование Монте-Карло в прикладной статистике, поскольку предположение iid обычно используется в большинстве статистических анализов . В частности, параллелизм извлечения задач обеспечивает лучшую производительность для Rmpi в гетерогенных вычислительных средах.
Идея параллелизма SPMD заключается в том, чтобы позволить каждому процессору выполнять одинаковый объем работы, но над разными частями большого набора данных. Например, современный графический процессор представляет собой большую коллекцию более медленных сопроцессоров, которые могут просто применять одни и те же вычисления к различным частям относительно небольших данных, но параллелизм SPMD в конечном итоге дает эффективный способ получения окончательных решений (т.е. время решения короче). [5]
Дизайн упаковки
[ редактировать ]Программирование с помощью pbdR требует использования различных пакетов, разработанных основной командой pbdR. Разработаны следующие пакеты.
Общий | ввод/вывод | Вычисление | Приложение | Профилирование | Клиент/Сервер |
---|---|---|---|---|---|
pbdDEMO | pbdNCDF4 | pbdDMAT | pmclust | пбдПРОФ | pbdZMQ |
pbdMPI | pbdADIOS | pbdBASE | pbdML | pbdPAPI | отдаленный |
pbdSLAP | hpcvis | pbdCS | |||
казам | пбдРПК |
Среди этих пакетов 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 и содержат виньетку, которая предлагает подробные объяснения демонстрационных версий и дает некоторую математическую или статистическую информацию.
Примеры
[ редактировать ]Пример 1
[ редактировать ]Привет, мир! Сохраните следующий код в файле с именем «demo.r».
### Initial MPI
library(pbdMPI, quiet = TRUE)
init()
comm.cat("Hello World!\n")
### Finish
finalize()
и используйте команду
mpiexec -np 2 Rscript demo.r
для выполнения кода, где Rscript является одной из исполняемых программ командной строки.
Пример 2
[ редактировать ]Следующий пример, модифицированный из 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 является одной из исполняемых программ командной строки.
Пример 3
[ редактировать ]Следующий пример, модифицированный из 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 является одной из исполняемых программ командной строки.
Дальнейшее чтение
[ редактировать ]- Раим, AM (2013). Введение в распределенные вычисления с помощью pbdR в Центре высокопроизводительных вычислений UMBC (PDF) (технический отчет). Центр высокопроизводительных вычислений UMBC, Университет Мэриленда, округ Балтимор. HPCF-2013-2. Архивировано из оригинала (PDF) 4 февраля 2014 г. Проверено 26 июня 2013 г.
- Бахманн М.Г., Дайас А.Д., Килмер С.С. и Сасс Дж. (2013). Блочное циклическое распределение данных в pbdR и его влияние на эффективность вычислений (PDF) (Технический отчет). Центр высокопроизводительных вычислений UMBC, Университет Мэриленда, округ Балтимор. HPCF-2013-11. Архивировано из оригинала (PDF) 4 февраля 2014 г. Проверено 1 февраля 2014 г.
{{cite tech report}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - Бэйли, У.Дж., Чамблесс, Калифорния, Чо, Б.М. и Смит, Дж.Д. (2013). Выявление нелинейных корреляций в многомерных данных с применением к моделированию молекулярной динамики белков (PDF) (Технический отчет). Центр высокопроизводительных вычислений UMBC, Университет Мэриленда, округ Балтимор. HPCF-2013-12. Архивировано из оригинала (PDF) 4 февраля 2014 г. Проверено 1 февраля 2014 г.
{{cite tech report}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - Дирк Эддельбюттель (13 ноября 2022 г.). «Высокопроизводительные и параллельные вычисления с R» .
- «R на 12 000 ядер» .
Эту статью прочитали 22 584 раза в 2012 г. с момента публикации 16 октября 2012 г. и она заняла 3-е место. [6] - Google Summer of Code — R 2013. «Инструменты профилирования для параллельных вычислений с R» . Архивировано из оригинала 29 июня 2013 г.
{{cite web}}
:|author=
имеет общее имя ( справка ) CS1 maint: числовые имена: список авторов ( ссылка ) - Вуш Ву (2014 г.) «Использование R и MPI в среде облачных вычислений» .
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - Вуш Ву (2013 г.) «Быстро создайте среду использования R и pbdMPI в . AWS »
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка )
Ссылки
[ редактировать ]- ^ Остроухов Г., Чен В.-К., Шмидт Д., Патель П. (2012). «Программирование с большими данными в R» .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Чен, В.-К. и Остроухов Г. (2011). «HPSC — Высокопроизводительные статистические вычисления для исследований с интенсивным использованием данных» . Архивировано из оригинала 19 июля 2013 г. Проверено 25 июня 2013 г.
- ^ «Базовые руководства по R для начала анализа данных» . 3 ноября 2022 г.
- ^ Jump up to: а б Ю, Х. (2002). «Rmpi: параллельные статистические вычисления в R» . Р Новости .
- ^ Майк Хьюстон. «Folding@Home — ГПГПУ» . Проверено 4 октября 2007 г.
- ^ «100 самых читаемых R-постов в 2012 году (статистика R-блогеров) — большие данные, визуализация, манипулирование данными и другие языки» .
Внешние ссылки
[ редактировать ]- Кроссплатформенное бесплатное программное обеспечение
- Программное обеспечение для интеллектуального анализа данных и машинного обучения
- Языки программирования, ориентированные на данные
- Бесплатное статистическое программное обеспечение
- Функциональные языки
- Программное обеспечение для численного анализа для Linux
- Программное обеспечение для численного анализа для macOS
- Программное обеспечение для численного анализа для Windows
- Параллельные вычисления