2. Técnicas por Hardware
13 de mayo del 2014
Página 1
Índice
1. Escalabilidad………………………………………………..2
2. Elementos de procesamiento…………………………..3
3. Segmentación…………………………………………….…4
4. Multiprocesador…………………………………………...5
5. Sistemas distribuidos………………………………….…7
3. Técnicas por Hardware
13 de mayo del 2014
Página 2
Escalabilidad
El grado de escalabilidad de un sistema paralelo se determina por la
relación en que el problema debe incrementarse respecto del número de
procesadores (n), para mantener una eficiencia constante cuando el
numero de procesadores aumenta.
Por ejemplo, en un sistema paralelo altamente escalable el tamaño del
problema deberá crecer linealmente con respecto de n a fin de mantener
la eficiencia constante.
En un sistema poco escalable el tamaño del problema necesitara crecer
exponencialmente con respecto de n para mantener la eficiencia
constante.
En telecomunicaciones y en ingeniería informática, la escalabilidad es la
propiedad deseable de un sistema, una red o un proceso, que indica su
habilidad para reaccionar y adaptarse sin perder calidad, o bien manejar el
crecimiento continuo de trabajo de manera fluida, o bien para estar
preparado para hacerse más grande sin perder calidad en los servicios
ofrecidos.
En general, también se podría definir como la capacidad del sistema
informático de cambiar su tamaño o configuración para adaptarse a las
circunstancias cambiantes . Por ejemplo, una Universidad que establece
una red de usuarios por Internet para un edificio de docentes y no solamente
quiere que su sistema informático tenga capacidad para acoger a los
actuales clientes que son todos profesores, sino también a los clientes que
pueda tener en el futuro dado que hay profesores visitantes que requieren
de la red por algunas aplicaciones académicas, para esto es necesario
implementar soluciones que permitan el crecimiento de la red sin que la
posibilidad de su uso y reutilización disminuya o que pueda cambiar su
configuración si es necesario.
4. Técnicas por Hardware
13 de mayo del 2014
Página 3
Elementos de procesamiento (EP)
Un procesador matricial, es una computadora paralelo sincrónica con múltiples
unidades lógicas y aritméticas, también conocidas como elementos de procesamiento
(EP), que pueden operar en paralelo. Mediante replicación de EP es posible lograr el
llamado paralelismo espacial.
Cada uno de los EP opera sincrónicamente con los demás, llevando a cabo
la misma función en el mismo tiempo. Una estructura funcional típica de este tipo de
computadores se indica en la figura VII.5.
5. Técnicas por Hardware
13 de mayo del 2014
Página 4
La unidad de control se encarga de la elaboración de las instrucciones y del
envío de las órdenes a todos los EP, para ello tiene un procesador de control CP y una
memoria de control CM. Los elementos de procesamiento a su vez, además del
procesador poseen una memoria para los datos.
La malla de conexión inter-EP, es configurable por el control en forma tal
de disponer espacialmente los EP a fin de resolver un dado problema, además se
encarga del encaminamiento de los datos.
Segmentación.
La segmentación es una técnica de implementación que consiste en solapar
la ejecución de múltiples instrucciones en el tiempo. Eso significa que no se
requiere esperar hasta que la i-ésma instrucción concluya para comenzar a
ejecutar la i+1-ésima instrucción. Hoy en día, la segmentación es clave en la
implementación de CPUs rápidos. Cabe mencionar que la segmentación
también se emplea en la construcción de unidades aritméticas. La figura 2.1.
muestra la ejecución secuencial que conocemos del curso anterior versus la
ejecución solapada que permite la segmentación.
La segmentación es similar a una línea de producción en serie o cadena de
ensamblaje: la cadena se compone de una serie de fases o etapas
consecutivas de producción que son necesarias para completar el producto o
tarea. El producto se construye con diferentes piezas o partes que se
ensamblan en cada etapa de la cadena. Cada etapa cuenta con el
equipamiento requerido para completar la subtarea que le compete. En cada
etapa de la cadena se ensambla una parte o pieza y al final de la misma
tenemos el producto completo. La gran ventaja es que no se necesita esperar
a que un producto completo esté listo para comenzar a ensamblar el
siguiente, sino que apenas una etapa completa su parte del trabajo, la pasa
6. Técnicas por Hardware
13 de mayo del 2014
Página 5
a la siguiente y comienza a procesar su parte correspondiente del siguiente
trabajo.
Aplicación de la segmentación:
� A operadores aritméticos:
� ejecutan una o varias operaciones de la ALU.
� pueden ser lineales (sumas) o no lineales (división). En este caso
suelen ser cíclicos (bucles).
� los procesadores actuales incluyen varias ALUs segmentadas, y
cada una se puede ocupar de varias operaciones.
� A ejecución de instrucciones:
� suelen ser cauces lineales.
� alguna de sus fases puede a su vez sub-segmentarse (uso de una
ALU segmentada para la fase de ejecución).
7. Técnicas por Hardware
13 de mayo del 2014
Página 6
Multiprocesadores.
Se denomina multiprocesador a un computador que cuenta con dos o más
microprocesadores. Gracias a esto, el multiprocesador puede ejecutar
simultáneamente varios hilos pertenecientes a un mismo proceso o bien a
procesos diferentes.
Existen dos arquitecturas:
Los multiprocesadores tienen lugar en la clasificación de los procesadores
paralelos, los cuales se pueden clasificar de la siguiente manera:
Una secuencia de instrucciones, múltiples secuencias de datos (SIMD)
Múltiples secuencias de instrucciones, múltiples secuencias de datos
(MIMD)
SIMD (Single Instruction stream, Multiple Data stream)
NUMA: es un diseño de memoria
utilizado e n
m u l t i p r o c e s a d o r e s d o n d e
l a m e m o r i a s e a c c e d e en
posiciones relativas de otro
procesador o memoria compartida
entre procesadores.
SMP : Se trata deuntipodearquitectura de
ordenadoresenque dos o más
procesadores comparten una única
memoria central. se caracteriza por el
hecho de que varios microprocesadores
comparten el acceso a la memoria.
Todos los microprocesadores
compiten en igualdad de condiciones
por dicho acceso, de ahí la
denominación "simétrico".
8. Técnicas por Hardware
13 de mayo del 2014
Página 7
Estos sistemas tienen un único flujo de instrucciones que operan sobre
múltiples flujos de datos. Ejemplos de estos sistemas los tenemos en las
máquinas vectoriales con hardware escalar y vectorial.
El procesamiento es síncrono, la ejecución de las instrucciones sigue siendo
secuencial como en el caso anterior, todos los elementos realizan una misma
instrucción pero sobre una gran cantidad de datos. Por este motivo existirá
concurrencia de operación, es decir, esta clasificación es el origen de la
máquina paralela.
El funcionamiento de este tipo de sistemas es el siguiente. La Unidad de
Control manda una misma instrucción a todas las unidades de proceso
(ALUs). Las unidades de proceso operan sobre datos diferentes pero con la
misma instrucción recibida.
Existen dos alternativas distintas que aparecen después de realizarse esta
clasificación:
Arquitectura Vectorial con segmentación:
Una CPU única particionada en unidades funcionales independientes
trabajando sobre flujos de datos concretos
Arquitectura Matricial (matriz de procesadores):
Varias ALUs idénticas a las que el procesador de instrucciones asigna una
única instrucción pero trabajando sobre diferentes partes del programa.
Multiprocesador (MIMD con memoria compartida).
En un MIMD de memoria compartida, todos los procesadores pueden
acceder a la misma memoria, normalmente mediante un bus compartido de
alta velocidad. La comunicación entre los procesadores es fácil en principio.
Cualquier procesador puede dejar datos o mensajes en una posición
determinada y luego indicar a otro procesador la dirección en la que puede
encontrar los datos. Esto es típico del multiprocesamiento, algo distinto a lo
que es un multiprocesador.
Sistemas distribuidos.
Conjunto de procesadores conectados por una red:
– Sin memoria compartida
• Sistema débilmente acoplado
– No existe un reloj común
– Dispositivos de E/S asociados a cada procesador
– Fallos independientes de componentes del SD
– Carácter heterogéneo
9. Técnicas por Hardware
13 de mayo del 2014
Página 8
Ventajas de los Sistemas Distribuidos
• Economía: Buena relación rendimiento/coste
– Avances en tecnología de microprocesadores y redes de área local.
• Alto rendimiento: Procesamiento paralelo.
• Soporte de aplicaciones inherentemente distribuidas.
– Por ejemplo: empresa distribuida geográficamente
• Capacidad de crecimiento: Escalabilidad.
• Fiabilidad y disponibilidad: Tolerancia a fallos.
• Carácter abierto y heterogéneo:
– Estándares de interoperabilidad.
• Compartir recursos y datos
Objetivos de un Sistema Distribuido
• Transparencia
• Rendimiento
• Capacidad de crecimiento
• Carácter abierto
• Fiabilidad
Transparencia
Existen varios perfiles de transparencia:
– Acceso: Manera de acceder a recurso local igual que a remoto.
– Posición: Se accede a los recursos sin conocer su localización.
– Migración: Recursos pueden migrar sin afectar a los usuarios.
– Concurrencia: Acceso concurrente no afecta a los usuarios.
– Replicación: La existencia de réplicas no afecta a los usuarios.
– Fallos: La ocurrencia de fallos no afecta a los usuarios.
– Crecimiento: El crecimiento del sistema no afecta a los usuarios.
– Heterogeneidad:Carácter heterogéneo no afecta a los usuarios.
• No siempre se puede conseguir
• Ni siempre es buena:
Rendimiento
Rendimiento para un servicio multiusuario:
– Objetivo: Rendimiento no peor que un sistema centralizado
Rendimiento para la ejecución paralela de aplicaciones:
– Objetivo: Rendimiento proporcional a procesadores empleados
Factores:
• Uso de esquemas de caché
– Intentar que muchos accesos se hagan localmente
• Uso de esquemas de replicación
– Reparto de carga entre componentes replicados
• En ambos casos: Coste de mantener la coherencia
Capacidad de crecimiento
Diseño de un sistema distribuido debe evitar “cuellos de botella”:
– Componentes centralizados
10. Técnicas por Hardware
13 de mayo del 2014
Página 9
– Tablas centralizadas
– Algoritmos centralizados
Estrategias:
– Reparto de estructuras de datos entre varios nodos.
– Replicación y caché
– Realización de parte del procesamiento en los nodos cliente.
Características deseables en un algoritmo distribuido:
– Ninguna máquina tiene información completa del estado del sistema
– Las decisiones se basan sólo en información disponible localmente
– El fallo de una máquina no debe invalidar el algoritmo
– No debe asumir la existencia de un reloj global
Carácter abierto
• SD abierto: servicios, protocolos, etc. publicados y estándares
• Facilita la interacción con otros sistemas abiertos
• Posibilita migración de aplicaciones a/desde otros SD abiertos
• Flexibilidad para cambiar y extender el SD
Fiabilidad
• Teóricamente: OR-lógico de sus componentes.
• Sin embargo, a veces: AND-lógico de varios componentes.
• Evitar componentes críticos (punto único de fallo).
• Uso de replicación activa o pasiva
– Mantenimiento de coherencia entre réplicas
• Operación correcta en sistema particionado por error de red
– “Reconciliación” al reintegrarse