2. ESPACIO DE DISEÑO.
CLASIFICACION Y ESTRUCTURA
GENERAL
Para facilitar el estudio de un sistema
complejo se recurre a dividirlo en partes mas
o menos independientes o a estudiarlos
desde diferentes niveles de complejidad
-Para analizar el comportamiento de un sistema
dado como para afrontar el diseño de un
sistema nuevo
3. 4 facetas
Estudio del nodo de computo
Estudio del sistema de memoria
Estudio del sistema red de comunicación
Estudio del sistema de Entrada/Salida
Estas facetas estan relacionadas y solapadas entre
si, el grado de solapamiento depende de la
implementacion concreta
Las facetas son los suficientemente complejas
como para dividir su analisis
6. 7.3.1 CLASIFICACION
Los sistemas con paralelismo de alto nivel se
han clasificado, en funcion de la organización
de su espacio de direcciones:
-sistemas con memoria compartida
-sistemas con memoria distribuida
7. CLASIFICACION
1-sistemas con memoria compartida (SM)
- Multiprocesadores
-Comparten el mismo espacio de direcciones.
-El programador no necesita conocer donde
esta almacenados los datos
8. 2- Sistemas con memoria distribuida (DM)
-Multicomputadores.
-Cada procesador tiene su propio espacio de
direcciones particulares.
-El programador necesita conocer donde estan
almacenados los datos
9.
10.
11.
12. MULTICOMPUTADOR
Cada procesador tiene su propio espacio de
direcciones, por tanto en su estructura fisica,
cerca de cada procesador hay un modulo de
memoria local
Dispositivos de entrada/salida distribuidos
13. MULTICOMPUTADOR
Cada procesador tiene su propio modulo de
memoria local al que puede acceder
directamente (transferencia de datos
compartidos entre nodos de la red)
El tamaño del mensaje a transferir depende
del programador
14. MULTIPROCESADOR
Todos lo procesadores comparten el mismo
espacio de direcciones
El tamaño de las transferencias con memoria
dependen de hardware, sera menor que el de la
transferencia entre nodos en un multicomputador
15. MULTIPROCESADOR
Multiprocesadores(SMP)
Dispositvos de E/S centralizadas
El tiempo de acceso de los procesadores a
memoria, sera igual sea cual sea la posicion
de memoria a la que acceden (estructura
simetrica)
El acceso de los procesadores a memoria se
realiza a traves de la red de interconexion
16. Dado que los procesadores en un sistema con
paralelismo de alto nivel van a cooperar en la
ejecución de una aplicación, necesitan
Comunicarse
Sincronizarse
Comparando el comportamiento de
multicomputadores y multiprocesadores con
una estructura fisica, en diversas facetas
17. Comparando multicomputadores y
multiprocesadores con una estructura fisica,
en diversas facetas
Latencia de acceso a memoria y escalabilidad
Mecanismos de comunicación
Mecanismos de sincronización
Herramientas para desarrollo de aplicaciones
Programación
18. LATENCIA EN EL ACCESO A MEMORIA
Tiempo de acceso a memoria es mayor en los
multiprocesadores que en los
multicomputadores debido a:
-No localización de los módulos de memoria
-Necesidad de acceder a memoria atraves de la
red de interconexión
-Conflictos en la red entre accesos de diferentes
procesadores
19. MECANISMO DE COMUNICACION
-Multiprocesador
Pueden cooperar en la ejecucion de una aplicación
La comunicación se realiza implicitamente con instrucción
LOAD y STORE
Mas eficiente
-Multicomputador
No pueden acceder al modulo de memoria local de otro
procesador mediante un acceso a memoria LOAD o STORE
(implementacion software)
Copiar datos entre modulos de memoria diferentes atraves de
la red de interconexion
Para copiar datos utiliza 2 funciones, una que permite enviar
(SEND), y otra que permita recibir (recieve)
22. MECANISMOS DE SINCRONIZACION
-Multicomputador
Aprovecha los mecanismos de comunicación para
implementar sincronización. Con una función de
recepción bloqueante, deja al proceso que la
ejecuta detenido hasta que se reciba el dato
-Multiprocesadores
Utiliza implementación software (cerrojos,
semáforos, regiones cíclicas, monitores)
Proporcionan soporte hardware para incrementar
las prestaciones en la implementación de
primitivas software de sincronización
24. HERRAMIENTAS DE PROGRAMACION
-Multicomputador
Antes de ejecutar una aplicación en un
multicomputador hay que ubicar en la memoria local
de cada procesador el código que va a ejecutar y los
datos que este código utiliza
(distribuir la carga de trabajo ente los procesadores)
-Multiprocesadores
No es necesaria la distribución
Para obtener buenas prestaciones la distribucion debe
ser equilibrada con el fin de conseguir que los
diferentes procesadores acaben a la vez
25. PROGRAMACION
-Multiprocesador
Programación mas sencilla ya que no debe pensar en
copiar datos entre nodos, ni tampoco en la
asignación de trabajo a los procesadores
En caso en los que los esquemas de comunicación son
complejos o varían dinámicamente
La sincronización puede provocar error
-Multicomputador
Utilizando modo SPMD para programar- La
distribución de código consiste en llevar el mismo
programa a todos los nodos de procesamiento; abría
que equilibrar únicamente los datos
26. Sean utilizado varios caminos para incrementar la escalabilidad de
multiprocesadores
1 -Incorporando caches en el sistema de memoria, de modo que cada
procesador disponga de una cache local debido a la localidad de
instrucciones y datos
2 -Utilizando redes con menor latencia y mayor ancho de banda.utilización de múltiples buses, una red dinámica multietapa o una red
de barras cruzadas(mejor prestación)
P proporciona menor probabilidad de colisión en acceso a memoria
3 -distribuyendo físicamente los módulos de memoria principal entre los
procesadores.- pierde la propiedad de simetría
Así cada procesador dispone de un conjunto de direcciones a las que
podrá acceder con menor latencia(multicomputador)
27. A raíz de la aparición de multiprocesadores
con memoria físicamente distribuida, los
multiprocesadores se empezaron a clasificar:
Multiprocesadores con acceso a memoria
uniforme (UMA)
Multiprocesadores con acceso a memoria no
uniforme (NUMA)
28. ARQUITECTURA UMA, NUMA
-Arquitectura UMA
Tiempo de acceso de los procesadores a una
posición de memoria es igual cual esa el
procesador
Tiempo de acceso a una posición de memoria
cache es la misma
-Arquitectura NUMA
Tiempo de acceso a una posición de memoria
depende del procesador
Para que sea escalable se debe reducir la latencia
media
29. ARQUITECTURA NUMA
Los multiprocesadores con acceso a memoria
se han clasificado a su vez en 3 grupos
1-NCC-NUMA.- Arquitecturas con acceso a
memoria no uniforme sin coherencia de
cache entre nodos
No incorpora hardware para evitar problemas
por incoherencias entre caches de distintos
nodos
30. ARQUITECTURA NUMA
2 CC-UMA.- Arquitectura con acceso a
memoria no uniforme y con cache coherente
Tiene hardware para mantener coherencia
entre caches de distintos nodos, que se
encarga de las transferencias de datos
compartidos entre nodos
31. ARQUITECTURA NUMA
3 COMA.- Arquitectura con acceso a memoria
solo cache
La memoria local de los procesadores se
gestiona como cache
El sistema de mantenimiento de coherencia se
encarga de llevar dinámicamente el codigo y
los datos a los nodos donde se necesitan+
Permite replicación y migración
32. COMPUTADORES PARALELOS
Veamos algunos de estas denominaciones
habituales
1.- MPP (massively parallel processors)
Computadores con mas de 100 procesadores
Se encuentran dentro de los multiprocesadores de
memoria compartida y multicomputadores
- Linea SX de NEC
- X1 de Cray
- Linea Origin y Altix de SGI
- T3E de cray
34. COMPUTADORES PARALELOS
2 – Cluster
Computador paralelo constituido por un
conjunto de computadores completos (PC,
estaciones de trabajo, servidores) conectados
a una red comercial LAN
Los nodos de computo de un cluster se emplean
tambien individualmente como
computadores en un amplio mercado
36. COMPUTADORES PARALELOS
3 Cluster Beowulf
Son cluster con sistema operativo libre, u con
componentes hardware(nodo,red) y software
con una amplia difusion, con lo que se
consigue una mejor relacion
prestacion/precio
37. COMPUTADORES PARALELOS
4 Constelaciones
En la lista TOP500 se utiliza constelacion para
denominar a los cluster de nodos con
procesamiento siemtrico SMP en los que el
numero de nodos es menor que el numero de
procesadores dentro de un nodo.
Define TOP500 Cluster sistemas con redes
disponibles comercialmente.
La distincion de constelacion dentro de los cluster
pretende destacar diferencias en la
programacion con otros cluster
38. COMPUTADORES PARALELOS
5.- Red de computadores
Conjunto de computadores conectados
mediante tecnologia de red LAN, cada uno
con su teclado, pantalla y con acceso al
exterior.
En este caso, el trafico de la red no solo se debe
a las aplicaciones paralelas que puedan estar
ejecutando los computadores, sino tambien a
trafico externo
39. COMPUTADORES PARALELOS
6.- Grid
Colección de recursos autonomos
geograficamente distribuidos conectados
mediante infraestructura de
telecomunicaciones que conforman un
sistema de altas prestaciones virtuales.
40.
41. 7.3.2 CONVERGENCIA
Podemos afirmar que la diferencia entre
multiprocesadores y multicomputadores esta en
el estilo de programacion para el que esta mas
orientado su hardware: paso de mensajes en
multicomputadores y variables compartidas en
multiprocesadores
En un multiprocesador cualquier procesador
puede acceder a cualquier modulo de memoria
La comunicación esta integrada en el sistema de
memoria, gestionandose principalmente por
parte de controladores hardware dedicados
42. CONVERGENCIA
En un multicomputador los accesos a
modulos de memoria remotos se hacen con
la cooperacion, en algun momento, de algun
procesador del nodo
La comunicación esta integrada en la
estructura de entrada/salida, gestionandose
principalmente por software
43. CONVERGENCIA
Mutiprocesadores con memoria distribuida se
caracterizan por tener hardware para
implementar eficientemente el estilo de
programacion basado en variables
compartidas, como hardware para
implementar primitivas de sincronizacion ya
acceso a memoria remota