lunes, 24 de septiembre de 2012

Arquitectura SMP y MPP



Arquitectura SMP
El multiprocesamiento simétrico tiene un diseño simple pero aun así efectivo. En smp, múltiples procesadores comparten la memoria ram y el bus del sistema. Este diseño es también conocido como estrechamente acoplado (tightly coupled), o todo compartido (shared everything).

Debido a que smp comparte globalmente la memoria ram, tiene solamente un espacio de memoria, lo que simplifica tanto el sistema físico como la programación de aplicaciones. Este espacio de memoria único permite que un sistema operativo con multiconexión (multithreaded operating system) distribuya las tareas entre varios procesadores, o permite que una aplicación obtenga la memoria que necesita para una simulación compleja. La memoria globalmente compartida también vuelve fácil la sincronización de los datos.
Smp es uno de los diseños de procesamiento paralelo más maduro. Apareció en los supercomputadores cray x-mp y en sistemas similares hace década y media (en 1983).
Sin embargo, esta memoria global contribuye al problema más grande de smp: conforme se añaden procesadores, el tráfico en el bus de memoria se satura. Al añadir memoria caché a cada procesador se puede reducir algo del tráfico en el bus.

El bus generalmente se convierte en un cuello de botella al manejarse alrededor de ocho o más procesadores. Smp es considerada una tecnología no escalable.
Si bien los primeros componentes utilizados con la tecnología smp fueron procesadores
Risc, en la actualidad, debido a su bajo costo, los procesadores cisc avanzados como pentium y p6 son empleados con relativa frecuencia. En el mercado se encuentran sistemas pentium, pentium pro y pentium ii de dos vías (two-way pentium, pentium pro y pentium ii); además de pentium pro y pentium ii de cuatro y ocho vías (four-way, eight-way pentium pro y pentium ii). Dos vías, cuatro vías y ocho vías significan dos, cuatro y ocho procesadores conectados en paralelo.






 Arquitectura MPP
Una máquina MPP presenta una serie de consideraciones importantes derivadas de su arquitectura, que se deben tomar en cuenta al escribir programas que pretendan aprovechar su naturaleza multiprocesador. Obviamente la característica más importante es el hecho de que, en cada nodo, cada procesador opera básicamente como una computadora independiente, ejecutando su propio código independiente de los demás procesadores, y teniendo un área de memoria con datos también independientes.

Desde luego, para que esta organización redunde en un mayor desempeño, se requiere colaboración entre los nodos. Como se mencionó, una máquina MPP debe contar con un canal que permita a los nodos comunicarse entre sí, a fin de intercambiar datos y coordinar sus operaciones. Ya que el objetivo principal de una máquina MPP es obtener alto rendimiento, se busca que este canal de comunicaciones sea lo más eficiente posible, en términos tanto de ancho de banda como de tiempo de latencia. En la mayoría de los casos este canal será un bus propietario, diseñado por el fabricante del equipo MPP.

Para tener acceso a información fuera de su propia área de memoria, los nodos se comunican entre sí, regularmente empleando un esquema de paso de mensajes. Esto resuelve el problema de saturación del bus de comunicaciones, pues éste sólo se emplea cuando se está realizando comunicación entre los nodos. De esta manera se tiene una arquitectura que puede escalarse a varios cientos o miles de procesadores (las máquinas MPP más grandes en la actualidad tienen alrededor de 10 mil procesadores).

Sin embargo el tener varias secciones de memoria independientes complica la programación en este tipo de arquitecturas. En una arquitectura MPP la distribución de trabajo entre los nodos es una consideración vital al diseñar cualquier aplicación. Se debe tomar en cuenta la sincronización de datos entre los nodos, y en toda comunicación entre ellos debe realizarse explícitamente por medio de llamadas al mecanismo de paso de mensajes. 

No hay comentarios:

Publicar un comentario