PDF de programación - Programming with Big Data in R: computación paralela con datos distribuidos

Imágen de pdf Programming with Big Data in R: computación paralela con datos distribuidos

Programming with Big Data in R: computación paralela con datos distribuidosgráfica de visualizaciones

Publicado el 23 de Febrero del 2019
550 visualizaciones desde el 23 de Febrero del 2019
749,9 KB
25 paginas
Creado hace 9a (15/06/2014)
Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Programming with Big Data in R: computación

paralela con datos distribuidos

Carlos Pérez-González - Área de Estadística e Investigación

Operativa (Universidad de La Laguna)

Jornadas ”Desmitificando BigData” - ETSII, Junio, 2014

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Sobre esta presentación

Download
La presentación es una versión simplificada de la que se encuentra
disponible en el proyecto pdbR:

https://github.com/wrathematics/pbd-tutorial/blob/

master/pbdr/useR/pbdr.pdf?raw=true

Speaking Serial R with a Parallel Accent
Los ejemplos presentados se pueden ver con más detalle en el
manual pbdDEMO titulado Speaking Serial R with a Parallel
Accent

http://goo.gl/HZkRt

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

La instalación de pbdR

Instrucciones
Las instrucciones para configurar un entorno pbdR están
disponibles en:

http://r-pbd.org/install.html

Aquí se explica como instalar R, MPI, y pbdR.

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Contenidos

1 Introducción

2 La librería pbdR

3 Ejemplos de operaciones

4 Simulación

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Breve introducción del paralelismo computacional

Paralelismo

Programación en serie o secuencial

Programación en paralelo

hacer sandwich serial.sh

mpirun -np 2 hacer sandwich parallel.sh

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Trabajo Trabajo Retornar Tarea hacer_sandwich (serial) Trabajo Trabajo Combinar Tarea hacer_sandwich (parallel) Tarea hacer_sandwich (parallel) Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Breve introducción del paralelismo computacional

Sistema distribuido

En el sistema de memoria compartida
se trata de saber qué tareas pueden
ser paralelizadas (OpenMP,
multihilo). Ver paquete multicore de
R.

En el sistema distribuido el enfoque
consiste en saber como asignar los
datos a los nodos y cómo funciona la
comunicación entre ellos (MPI,
Hadoop). Utilizamos paquete
pbdMPI de R.

R proporciona una interfaz a las
librerías de cálculo algebraico
BLAS/LAPACK en un entorno HPC
(computación de altas prestaciones),

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Interconnection NetworkPROC+ cachePROC+ cachePROC+ cachePROC+ cacheMemMemMemMemDistributed MemoryMemoryCORE+ cacheCORE+ cacheCORE+ cacheCORE+ cacheNetworkShared Memory Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Características

Programando con BigData en R (pbdR)

Es un conjunto de paquetes de R
(libre).

Permite enlazar el código compilado
de alto rendimiento con la alta
productividad de scripts en R

Proporciona una solución analítica con
big-data.

Los métodos tiene una sintaxis muy
similar a la de R.

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Características

El paradigma pbdR
Los programas pbdR son programa R

La diferencia es que:

Se ejecutan en proceso de lotes o batch mode (la ejecución es
no-interactiva).

La codificación en paralelo utiliza el estilo Un
progama/Múltiples datos (Single Program/Multiple Data ,
SPMD).

Se centra en la paralelización de los datos (distribución de
datos en los nodos).

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Características

Ejecución en lotes

Ejecutar un programa secuencial R en batch:

1 Rscript m y _ s e r i a l _ s c r i p t . r

o, también,

1 R CMD BATCH m y _ s e r i a l _ s c r i p t . r

Ejecutar un programa paralelo en R (con MPI) en batch:

1 mpirun - np 2 Rscript m y _ p a r a l l e l _ s c r i p t . r

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Características

Características de Single Program/Multiple Data (SPMD)

Sólo se escribe un programa, pero se ejecuta en lotes en todos
los procesadores.

Los diferentes procesadores son autónomos; no hay manager.

Es un modelo de programación bastante extendido para
grandes máquinas.

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Gestionar el canal de comunicación

Interfaz de paso de mensajes (Message Passing Interface, MPI)

La librería MPI representa el estándar utilizado en las
comunicaciones (de datos e instrucciones) entre distintos
nodos/computadores.

Implementaciones: OpenMPI, MPICH2, ....

Permite el paralelismo (a través de las comunicaciones) en
sistemas distribuidos.

Comunicador : Es el canal que permite gestionar las
comunicaciones entre procesadores.

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Gestionar el canal de comunicación

Operaciones MPI (1 de 2)

Crear un comunicador: Crear y cerrar canales de
comunicación.
init() — inicializa el comunicador
finalize() — cierra el comunicador

Rango de canal: Se puede determinar la posición o rango de
un procesador en el canal.
comm.rank() — “¿Qué procesador soy?”
comm.size() — “¿Cuántos procesadores habemos en el
canal?”

Visualización: Ver el output en diferentes posiciones del
canal.
comm.print(x)
comm.cat(x)

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Gestionar el canal de comunicación

Operaciones MPI (2 de 2)

Reducción o reducer: Por ejemplo, cada procesador tiene un
número x; los reunimos todos y aplicamos una operación
aritmética (suma, resta, max, min, ...).
reduce(x, op=’sum’) — reduce a un procesador
allreduce(x, op=’sum’) — reduce en todos los
procesadores

Recoger o gather: Por ejemplo, cada procesador tiene un
número; creamos un objeto (array) en algún procesador que
los contenga a todos.
gather(x) — recoger en uno
allgather(x) — recoger en todos

Transmitir o broadcast: Por ejemplo, un procesador tiene un
número x y queremos enviarlo a los demás.
bcast(x)

Barrera: Esta es una instrucción que actúa a modo de
“computation wall” de forma que ningún procesador puede
continuar hasta que todos los demás lo puedan hacer.
barrier()

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Recolección (gather) y reducción (reduce)

Ejemplo sencillo 1

Gather: test gather parallel.r

l i b r a r y ( pbdMPI , q u i e t l y=TRUE)
i n i t ( )

1
2
3 comm . s e t . s e e d ( d i f f =TRUE)
4
5 n <− s a m p l e ( 1 : 1 0 0 ,
6
7 comm . p r i n t ( n ,
8
9

a l l . r a n k =T)

g t <− g a t h e r ( n ,
10 comm . p r i n t ( gt ,
11
12

f i n a l i z e ( )

a l l . r a n k =T)

mpirun -np 2 Rscript test gather parallel.r:

s i z e =10) # s i m u l a r una m u e s t r a en c ad a nodo

# p r i n t

l a m u e s t r a de c a da nodo

r a n k . d e s t =1) # r e c o g e r

t o d a s

l a s m u e s t r a s en e l nodo 1

[ 1 ] ”# s i m u l a r una m u e s t r a en ca d a nodo ”

[ 1 ] 28 52 18 77 83 13 65 43 71 36

3 59 42 50 58 34 57
l a s m u e s t r a s de t o d o s

l o s n o d o s ”

1
2 COMM. RANK = 0
3
4 COMM. RANK = 1
[ 1 ] 60 72 38
5
6
[ 1 ] ”# r e u n i r
7 COMM. RANK = 0
8 NULL
9 COMM. RANK = 1

10

[ 1 ] 28 52 18 77 83 13 65 43 71 36 60 72 38

3 59 42 50 58 34 57

http://r-pbd.org/tutorialCarlos Pérez-González - Área de Estadística e Investigación Operativa (Universidad de La Laguna)

pbdR - Programming with Big Data in R

Introducción

La librería pbdR

Ejemplos de operaciones

Simulación

Recolección (gather) y reducción (reduce)

Ejemplo sencillo 2

Reducción: test reduce parallel.r

l i b r a r y ( pbdMPI , q u i e t l y=TRUE)
i n i t ( )

1
2
3 comm . s e t . s e e d ( d i f f =TRUE)
4
5 n <− s a m p l e ( 1 : 1 0 0 ,
6
7 comm . p r i n t ( n ,
# p r i n t
8
9 sm <− a l l r e d u c e ( n , op=”sum” ) # sumar
10 comm . p r i n t ( sm ,
11
12

a l l . r a n k =T)

a l l . r a n k =T)

f i n a l i z e ( )

s i z e =10) # s i m u l a r una m u e s t r a en c ad a nodo

l a m u e s t r a de c a da nodo

l o s

e l e m e n t o s c o r r e s p . de
  • Links de descarga
http://lwp-l.com/pdf15333

Comentarios de: Programming with Big Data in R: computación paralela con datos distribuidos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad