Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Programacin
Paralela
INTEGRANTES:
Mondoedo Torres, Valerie
Perez Soto, Juan
Vasquez Alvarez, Esteban
Vasquez Silva, Jonnel
INTRODUCCION
PROGRAMACION SECUENCIAL
PROGRAMACION PARALELA
PROGRAMACION SECUENCIAL
PROGRAMACION PARALELA
SPMD
MPMD
MPMD
SPMD
MAESTRO-ESCLAVO
MEMORIA COMPARTIDA
PASO DE MENSAJES
PROCESOS
FINITOS
COMUNICA
CIN ENTRE
PROCESAD
ORES
PROGRAMA
PARALELO
DISTRIBUIR
CARGA
LOCALIZAR
PARALELIS
MO
BIBLIOTECA DE FUNCIONES
El nivel de abstraccin ms bajo, se escribe con lenguaje secuencial.
PARALELIZACION AUTOMATICA
Permiten ahorrar trabajo al programador en el proceso de
paralelizacin incrementando el nivel de abstraccin.
COMPILADORES PARALELOS
Buscan automticamente el paralelismo implcito en un
programa secuencial y lo hacen explicito, evitando la
intervencin del programador.
COMPILADORES PARALELOS
Buscan automticamente el paralelismo implcito en un programa
secuencial y lo hacen explicito, evitando la intervencin del
programador.
Alternativas de
Programacin
Paralela
PROGRAMACIN HBRIDA
Es un tipo de programacin donde se pueden mezclar dos tipos de lenguaje de programacin. Sirve
cuando el cdigo del ensamblador dificulta la estructura del programa, entonces lo que hace es
aprovechar las ventajas del lenguaje ensamblador, y de alto nivel para escribir programas mas rpidos
y eficientes.
PROGRAMACIN HBRIDA
VENTAJAS:
- Se realiza en menor tiempo el desarrollo del cdigo.
- Puede interactuar mas con el usuario.
- Mejora la escalabilidad, hacer mejoras sin afectar el rendimiento.
PROBLEMAS TPICOS
SISTEMAS PARALELOS
SISTEMAS MULTINUCLEO
Podemos disponer de varios
procesadores en un chip. Esta
posibilidad se ha universalizado
recientemente.
MONOPROCESADORES
SISTEMAS MULTINCLEO
Sistema universal de Cmputo
SUPERCOMPUTACIN
Referirse a la resolucin en los sistemas computacionales
ms potentes (supercomputadores) de los problemas que
demandan de ms computacin (meteorologa, estudio
del genoma, simulacin de molculas...)
Se puede considerar la
supercomputador actual.
red
como
el
mayor
COMPUTACIN DISTRIBUIDA
CLOUD COMPUTING
VARIANTES DE LA P. PARALELA
Homogneos
Para nosotros ser programacin paralela la que se hace
usando varios procesadores para acelerar la resolucin
de los problemas con que trabajemos. Trabajamos con
algoritmos paralelos, donde se especifica la forma en que
los distintos elementos de proceso comparten los datos, y
cmo colaboran en la resolucin de los problemas. En
general consideraremos que los procesadores son todos
del mismo tipo, con lo que tendremos sistemas paralelos
homogneos
VARIANTES DE LA P. PARALELA
Heterogneos
En los sistemas heterogneos los componentes bsicos
pueden tener distinta velocidad, capacidades de memoria
diferentes, o incluso la representacin de los datos ser
distinta. Los mismos programas de paso de mensajes
utilizados en otros sistemas se pueden utilizar aqu, pero
las prestaciones vendrn marcadas por la velocidad del
procesador ms lento.
HYPER THREADING
Esta tecnologa consiste en
simular
dos
procesadores
lgicos dentro de un nico
procesador fsico. El resultado es
una mejora en el rendimiento del
procesador, puesto que al simular
dos procesadores se pueden
aprovechar mejor las unidades de
clculo mantenindolas ocupadas
durante un porcentaje mayor de
tiempo. Esto conlleva una mejora
en la velocidad de las aplicaciones
que
segn
Intel
es
aproximadamente de un 30%
ESTILO DE PROGRAMACIN
PARALELA
Paso de mensajes
Variables compartidas
Paralelismo de datos
Paso de mensajes
Multicomputadores
Variables compartidas
Multiprocesadores
Paralelismo de datos
Procesadores Matriciales
PASOS DE MENSAJES
En este estilo se define un conjunto de procesos con su propio espacio
de memoria, pero que pueden comunicarse con otros procesos
mediante el envo y la recepcin de mensajes a travs de la red de
interconexin.
El paradigma asume que cualquier proceso puede enviar un mensaje a
cualquier otro.
La implementacin de esta metodologa se suele realizar utilizando
libreras aadidas a los lenguajes de programacin estndar,
fundamentalmente C y Fortran.
a. HERRAMIENTAS DE SOFTWARE
DE PASOS DE MENSAJE
Para redactar cdigo paralelo basado en paso de mensajes, se dispone de
diversas herramientas software:
Como los lenguajes de programacin antes mencionados, as
como Ada u Occam.
Bibliotecas de funciones que actan de interfaz al sistema de
comunicaciones.
MPI (Message Passing Interface - Interfaz de Paso de
Mensajes).
PVM (Parallel Virtual Machine - Mquina Virtual Paralela).
VARIABLES COMPARTIDAS
Los programas paralelos ejecutados en sistemas de
variables compartidas se descomponen en varios procesos
(tareas) que comparten los datos asociados a una porcin de
su espacio de direcciones.
Cada proceso puede llevar a cabo la ejecucin de un
subconjunto de iteraciones de un lazo comn, o bien, de
forma ms general, cada proceso puede obtener sus tareas
de una cola compartida.
a. HERRAMIENTAS DE SOFTWARE
DE VARIABLES COMPARTIDAS
Hay diversas herramientas software para redactar cdigo paralelo basado
en variables compartidas:
Ada 95 (tipos protegidos) y Java
O bibliotecas de funciones, como Pthread (POSIX-Thread) u
OpenMP
Y alternativas que usan lenguaje secuencial ms directivas dl
compilador, como OpenMP.
POSIX-Pthread es un estndar, introducido en 1996 por el comit
de estndares del IEEE, basado en funciones. OpenMP es una
biblioteca de funciones, directivas y variables, desarrollado por
un grupo representativo de vendedores de hardware y software
[OpenMP Home].
PARALELISMO DE DATOS
Es un paradigma de programacin claramente heredado de las
mquinas SPMD y se utiliza principalmente para simplificar la
programacin de sistemas de memoria distribuida.
a. HERRAMIENTA DE SOFTWARE
DE PARALELISMO DE DATOS
Los lenguajes con paralelismo de datos, como C* (C start),
aparecieron ligados a procesadores matriciales. Estas mquinas son
arquitecturas SPMD. Desde su aparicin en 1960 los procesadores
matriciales se han encontrado dentro de la gama de los
supercomputadores, pero en 1997 dejaron de aparecer en la lista
TOP500.
ESTRUCTURA DE
PROGRAMACIN PARALELA
Maestro
MAESTRO ESCLAVO
Esclavo
Esclavo
Esclavo
E/S
E/S
Red de Interconexin
E/S
E/S
Descomposicin de datos
Esta alternativa es muy utilizada para obtener tareas paralelas en
problemas en los que se opera con grandes estructuras de datos. La
estructura de datos de entrada o la estructura de datos de salida o
ambas, se dividen en partes. A partir de esta divisin se derivan las
tareas paralelas.
DESCOMPOSICIN DE DATOS
E/S
P1
P2
P3
E/S
P4
Red de Interconexin
E/S
E/S
DIVIDE Y VENCERAS
P1
P0
Malla
2x2
P2
P3
E/S
E/S
+
Red de Interconexin
+
E/S
E/S
Programadores
Comprender dnde radican las claves del rendimiento para obtener el
mejor posible en un sistema dado.
Arquitectos
Comprender las cargas, las interacciones, y la importancia de los
grados de libertad.
Importancia de la programacin
Diseamos mquinas para que ejecuten programas. As pues, stos:
Ayudan a tomar decisiones en el diseo hardware;
Ayudan a evaluar los cambios en los sistemas.
PROCESO(THREAD)
Entidad abstracta que ejecuta las tareas que le son asignadas.
Un programa paralelo est constituido por muchos procesos cooperando.
Hay una comunicacin y sincronizacin en los procesos para la ejecucin de las tareas.
PROCESADOR:
Elemento fsico en el que se ejecutan los procesos.
Los procesos constituyen la mquina virtual para el programador.
Descomposicin
Divisin del programa en tareas que sern distribuidas entre los
procesos.
Las tareas pueden estar dispuestas para ejecucin
dinmicamente.
El nmero de tareas disponibles puede variar con el tiempo.
Identificar la concurrencia y decidir a qu nivel se va a explotar.
ASIGNACIN
o Mecanismo especfico para dividir el trabajo entre procesos.
Junto con la descomposicin recibe el nombre de particin.
Objetivos:
o equilibrar la carga;
o minimizar comunicacin y coste de la gestin de la asignacin.
o Aproximarse a las estructuras suele ser buena idea.
o Objetivos
primitivas.
La arquitectura debe proporcionar las primitivas adecuadas de
manera eficiente.
EVALUACIN
o Despus de escribir el cdigo ya tenemos un programa
paralelo.
o Dos aspectos del mapeado:
Qu procesos se ejecutarn en el mismo procesador.
Qu procesos se ejecutan en un procesador determinado.
El mapeado se realiza en una topologa determinada.