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