Вы находитесь на странице: 1из 68

POLITECNICO

GRACOLOMBIANO
Ingeniera de Sistemas
Gestin Tecnolgica

UNAINTRODUCCIONALAPROGRAMACINPARALELA

Por: Alexis Rojas Cordero

Bogot, 2017

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA
CONTENIDO

2. TEMTICA
Por qu necesitamos el rendimiento cada vez mayor.?
1. INTRODUCCION Por qu estamos construyendo sistemas paralelos.
Por qu tenemos que escribir programas paralelos.
Cmo escribir programas paralelos?
Lo que vamos a hacer.
Concurrente, paralelo, distribuido!

3. CONCLUSIONES 4. BIBLIOGRAFIA

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

INTRODUCCIN

Con la llegada de los computadores multicore y las


tecnologas de Cloud Computing, la computacin en
paralelo ha tomado relevancia.

No es un rea especfica en el mundo de la


computacin, pero si es una de las mejores
alternativas para lograr eficiencia, mejor uso de los
recursos, ahorro de energa, bajar la temperatura,
aumentar la velocidad de frecuencia de reloj, etc.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

INTRODUCCIN

Anteriormente, para aumentar el rendimiento


de una aplicacin bastaba con moverla a una
mquina con un procesador ms rpido.

Sin embargo hoy en da esto ya no vale, pues


el rendimiento se obtiene a travs de
sacarle partido a ms ncleos y no
aumentando la velocidad.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

PORQUE NECESITAMOS MAYOR RENDIMIENTO?

A partir de 1986 - 2002, los


microprocesadores se aceleraron como un
cohete, lo que aument el rendimiento en un
promedio del 50% anual.

Despus del 2002, se redujo en


aproximadamente el rendimiento de los
procesadores en un 20% por ao.

Este cambio tan dramtico se asoci con el


diseo de los microprocesadores.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

PORQUE NECESITAMOS MAYOR RENDIMIENTO?

En lugar de disear y construir microprocesadores


ms rpidos, se decidi poner varios procesadores en
un solo circuito integrado.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

AHORA LE TOCA A LOS PROGRAMADORES

La adicin de ms procesadores no ayuda


mucho si los programadores no son
conscientes de ellos ...

... O no saben cmo usarlos.

Los programas en serie como aprendimos a


desarrollarlos, no se benefician de este
enfoque (en la mayora de los casos).

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

PORQUE NECESITAMOS INCREMENTAR EL RENDIMIENTO?

La potencia computacional va en aumento, pero


tambin lo son nuestros problemas y necesidades de
computacin.

Los problemas que nunca soamos resolver con la


programacin en serie, han sido resueltos por las
tecnologas paralelas, como la decodificacin del
genoma humano.

Los problemas ms complejos todava estn


esperando a ser resueltos.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

MODELAMIENTO DEL CLIMA

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

DESDOBLAMIENTO DE PROTEINAS

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

SECUENCIACION GENETICA Y DESARROLLO DE DROGAS

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

INVESTIGACIN ENERGTICA Y CONTAMINACIN

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

ANALISIS DE DATOS

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

POR QU ESTAMOS CONSTRUYENDO SISTEMAS PARALELOS?

Hasta ahora, los aumentos de rendimiento


han sido atribuidos a la densidad creciente
de la tecnologa de los transistores.

Pero existen y co-existen problemas


inherentes.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

CONCEPTOS FISICOS QUE AVALAN EL PARALELISMO


Transistores pequeos = procesadores ms
rpidos.

Los procesadores ms veloces = mayor


consumo de energa (generacin hasta 2002).

El aumento de consumo de energa =


aumento de calor.

El aumento de calor = procesadores no


fiables.
Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com
DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

SOLUCIN

Migracin del hardware de un solo ncleo


por hardware multi-ncleo.

core = central processing unit (CPU)

Introducing parallelism!!!

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

PORQUE NECESITAMOS ESCRIBIR PROGRAMAS PARALELOS?

La ejecucin de varias instancias de un


programa serial a menudo no es muy til.

Piense en ejecutar varias instancias de su


juego favorito.

Qu es lo que realmente queremos?. Que se


ejecute ms rpido.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

QUE NECESITAMOS HACER ENTONCES?

Volver a escribir los programas seriales para


que queden en paralelo.

Escribir programas de traduccin que


conviertan automticamente los programas
seriales en programas paralelos.
1. Esto es muy difcil de hacer.
2. El xito ha sido limitado.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

MAS PROBLEMAS

Algunos programas seriales pueden ser


reconocidos por algn conversor que los pase
a programacin paralela.

Sin embargo, es probable que el resultado


sea un programa muy ineficiente.

A veces la mejor solucin paralela es dar un


paso atrs y disear un algoritmo
completamente nuevo.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

EJEMPLO

Calcule los valores de n nmeros y smelos.

Solucin serial.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

EJEMPLO (continuacin)

Tenemos p ncleos, donde el numero p es mucho


menor que n. (50 cores para n=5000 millones)

Aproximadamente (n / p) valores

Cada ncleo utiliza sus propias variables


privadas y ejecuta este bloque de cdigo
independientemente de los otros ncleos.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

EJEMPLO (continuacin)

Despus cada ncleo finaliza la ejecucin del cdigo.

Su variable privada my_sum contiene la suma de los


valores calculados por sus llamadas a
Compute_next_value.

Ex, p = 8 ncleos, n = 24, entonces las llamadas a


Compute_next_value, regresa los siguientes valores:

1,4,3,9,2,8,5,1,1,5,2,7,2,5,0,4,1,8,6,5,1,2,3,9
Encuanto tiempo ?.En6veces menos que si fuera deunsolocore.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

EJEMPLO (continuacin)

Una vez que todos los ncleos


realizan sus clculos, su variable
my_sum privada retorna su suma
y se forma una suma global de los
resultados mediante el envo a un
lugar designado ncleo "maestro"
que acumula las sumitas en un
resultado final.
Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com
DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

EJEMPLO (continuacin)

Por cada
ncleo que no
sea yo

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

EJEMPLO (continuacin)

Core 0 1 2 3 4 5 6 7
my_sum 8 19 7 15 7 13 12 14

Global sum
8 + 19 + 7 + 15 + 7 + 13 + 12 + 14 = 95

Core 0 1 2 3 4 5 6 7
my_sum 95 19 7 15 7 13 12 14

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

COMO MEJORAMOS LOS ALGORITMOS?


- No obligando al ncleo principal para que
haga todo el trabajo.

- Comparta el trabajo entre los otros


ncleos.

- Empareje los ncleos de manera que


ncleo 0 recoja el resultado del core 1.

- El Core 2 aada su resultado con el


resultado ncleo 3 y as sucesivamnte.
Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com
DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

COMO MEJORAMOS LOS ALGORITMOS?


- Repita el proceso slo con los ncleos
uniformemente clasificados.

- El resultado del Core 0, se suma el resultado


acumulado en la base del Core 2.

- El Core 4 aade el resultado del ncleo 6, etc.

- Repita el proceso con los resultados de los


ncleos divisibles por 4 y as sucesivamente,
hasta que el ncleo 0 obtenga el resultado final.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

OBTENCIN DE LA SUMA GLOBAL CON MULTIPLES CORES

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

ANALISIS

- En el primer ejemplo (Programa en C),


el ncleo maestro recibe 7 resultados y
realiza 7 adiciones para la suma global.

- En el segundo ejemplo, el ncleo


maestro realiza 3 recibos y 3 adiciones.

- La mejora es ms que un factor de 2!

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

ANALISIS

- La diferencia es ms dramtica con un mayor


nmero de ncleos.

- Si tenemos 1000 ncleos:

- En el primer ejemplo se el ncleo maestro recibe


999 resultados y hace 999 adiciones.

- En el segundo ejemplo slo se requieren 10


recibos y 10 adiciones.

- Eso es una mejora de casi un factor de 100!

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

CMO ESCRIBIR PROGRAMAS PARALELOS?


Hay varias maneras, pero por ahora
trataremos solo dos formas, que deben
trabajar alrededor de los Cores del
hardware sobre el que se va a realizar el
trabajo.

La maneras son.

1. peticionando tareas.

2. peticionando datos.
Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com
DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

CMO ESCRIBIR PROGRAMAS PARALELOS?


1. Por paralelismo de tareas.

Divide la tarea en sub-tareas y as resolver


el problema con apoyo de los ncleos.

2. Por paralelismo de datos.

Particionando los datos para resolver el


problema con el apoyo de los ncleos. Cada
ncleo lleva a cabo operaciones similares
con su parte de datos.
Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com
DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

ASISTENTES CLASIFICADORES DEL PROFESOR P


Supongamos que el profesor p tiene que dictar una
ctedra literatura inglesa. Supongamos que
tambin tiene 100 estudiantes y llega la hora de
evaluar.
15questions
300exams

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

ASISTENTES DEL PROFESOR P (cores)


El profesor P cuenta adems con tres asistentes

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

SOLUCIN POR PARALELIZACIN DE DATOS

TA#1
TA#3
100exmenes

100exmenes

TA#2
100exmenes

Quien ser el Mster?

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

SOLUCIN POR PARALELIZACIN DE TAREAS

TA#1
TA#3

Preguntas del 11 15
Preguntasdel1 5

TA#2
Preguntas del 6 10

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

SOLUCIN POR PARALELIZACIN DE DATOS

Por paralelizacin de datos usamos mismo


programa en varios servidores con diferentes
bloques de datos

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

SOLUCIN POR PARALELIZACIN DE TAREAS

Partimos la tarea principal en sub-tareas con el


mismo programa que se ejecuta en varios cores.
(ejemplo generacin de nmeros primos)

Tareas
1) Recibe
2) suma

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

PORQUE NECESITAMOS MAYOR RENDIMIENTO?


Los ncleos en general tienen que coordinar su
trabajo.

Comunicacin - uno o ms ncleos de enviar a sus


sumas parciales actuales a otro ncleo.

Balanceo de carga - comparten el trabajo en partes


iguales entre los ncleos de modo que uno no est
muy recargado.

Sincronizacin - Cada ncleo funciona a su propio


ritmo. Asegrese de que un ncleo no tome grandes
ventas con respecto al resto de ncleos.
Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com
DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

QUE DEBEMOS HACER ENTONCES?

- Aprender a escribir programas que sean


explcitamente paralelos.

- Utilizar el lenguaje C, Fortran o Java.

- Usar las diferentes extensiones de los lenguajes:

1. Mensaje-Passing Interface (MPI)


2. Hilos POSIX (Pthreads)
3. OpenMP

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CENTRALES INFORMTICAS DE HOY

CERN
Centro
Europeo de
Investigacin
Nuclear

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CENTRALES INFORMTICAS DE HOY

Dr Mateo
Valero.

Director del
Barcelona
Supercomputer
Center
BSC

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CABELADO BAJO PISO FALSO BSC

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


HIGHT PERFORMAN COMPUTING

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


GRANJAS DE COMPUTADORES EN CLUSTER

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


GOOLGE COMPUTER CENTER

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


ESCALA FLYNN

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN SISD

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN SISD

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN SISD

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN - SIMD

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN - SIMD

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


GPUS

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


GPUS

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


ARQUITECTURA GPUS DE CRAY

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN - MISD

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN - MIMD

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN MEMORIAS FUERTE Y
DBILMENTE ACOPLADAS

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


CATEGORIZACION FLYNN

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


MIMD COM MEMORIA COMPARITDA

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


TERMINOLOGIA

Computacin concurrente Funciona con un


programa en el que mltiples tareas puede estar en
progreso en cualquier instante.

Computacin Paralela Funciona con un programa


en el que mltiples tareas cooperan estrechamente
para resolver un problema.

Computacin distribuida Es un programa que


tenga que cooperar con otros programas para
resolver un problema.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

TIPOS DE SISTEMAS PARALELOS


De memoria compartida.
Los ncleos pueden compartir el acceso a la memoria
del ordenador.

Coordinar los ncleos haciendo que examinen y


actualicen las ubicaciones de memoria compartida.

De memoria distribuida.
Cada ncleo tiene su propia memoria.
Los ncleos deben comunicar explcitamente mediante
el envo de mensajes a travs de una red.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


DOCTORADO EN INGENIERA
PROGRAMACIN PARALELA

TIPOS DE SISTEMAS PARALELOS

Sharedmemory Distributedmemory

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


PERSPECTIVASDELDESARROLLO,LATRANSFORMACIONYLAADAPTACION
DETECNOLOGAENLAUNIVRESIDADCOLOMBIANA

CONCLUSIONES
Las leyes de la fsica nos han llevado a las
puertas de la tecnologa multi-ncleo.

Programas seriales normalmente no se


benefician de los servidores mltiples ncleos.

La generacin automtica de programas


paralelos a partir de un programa en serie no
es el enfoque ms eficaz para conseguir un alto
rendimiento en computadoras multicore.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


PERSPECTIVASDELDESARROLLO,LATRANSFORMACIONYLAADAPTACION
DETECNOLOGAENLAUNIVRESIDADCOLOMBIANA

CONCLUSIONES (CONT)

Aprender a escribir programas paralelos


implica aprender a coordinar los ncleos.

Los programas paralelos suelen ser muy


complejos y por lo tanto, se requieren tcnicas
de sondeo y desarrollo de programas para
servidores multi-core.

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com


PERSPECTIVASDELDESARROLLO,LATRANSFORMACIONYLAADAPTACION
DETECNOLOGAENLAUNIVRESIDADCOLOMBIANA

4 BIBLIOGRAFIA

[1] Timtthy J Rolfe. A Specimen or parallel Programing, Parallal Sort


Implementation. ACM - Diciemre 2010. VOLUMEN 1. N. 4.

[2 ] Peter Pacheco. An Introduction to Parallel Programing. Universidad de


California. ISBN: 978-0-12-374260-5

Curso-P Paralela Alexis Rojas Cordero rojas.alexis.universidades@Gmail.com