Está en la página 1de 7

Arquitectura SMP

La arquitectura SMP (Multi-procesamiento simtrico, tambin llamada UMA, de Uniform Memory Access), 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 denominacin simtrico. Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin importar su localizacin en memoria; con un propicio soporte del sistema operativo, estos sistemas pueden mover fcilmente tareas entre los procesadores para garantizar eficientemente el trabajo. La tcnica de multiprocesamiento consiste en hacer funcionar varios procesadores en forma paralela para obtener un poder de clculo mayor que el obtenido al usar un procesador de alta tecnologa o al aumentar la disponibilidad del sistema (en el caso de fallas del procesador). Las siglas SMP (multiprocesamiento simtrico o multiprocesador simtrico) hacen referencia a la arquitectura en la que todos los procesadores acceden a la misma memoria compartida. Un sistema de multiprocesadores debe tener capacidad para gestionar la reparticin de memoria entre varios procesadores, pero tambin debe distribuir la carga de trabajo.
*

El enfoque ms sencillo para una mquina con mltiples procesadores es el esquema SMP (Symmetrical Multiprocessing, multiproceso simtrico). Una arquitectura SMP es bsicamente una expansin de una arquitectura tradicional pero con la adicin de varios procesadores que comparten todos los dems recursos del sistema (memoria principal, almacenamiento secundario, perifricos de entrada y salida). En esta arquitectura no se establece distincin entre los procesadores; todos son jerrquicamente iguales y pueden ejecutar tareas indistintamente. De esta caracterstica viene el nombre de ``simtrica''. Un diagrama de una arquitectura SMP genrica se muestra en la figura En general una arquitectura SMP tiene un equivalente en uni procesador, y naturalmente un sistema SMP puede ejecutar simultneamente varios programas o aplicaciones, que normalmente podran ejecutarse en el sistema uni procesador, de manera independiente. Sin embargo, para el uso de aplicaciones que aprovechen los mltiples procesadores para expeditar la realizacin de clculos, nos interesa que dichos procesos no sean totalmente independientes, buscando entonces que cuenten con manera de comunicarse para distribuirse informacin, compartir y consolidar resultados. Ya que un sistema SMP los procesadores comparten todos los perifricos y recursos, el esquema ms obvio para comunicarse en una arquitectura SMP es el uso de memoria compartida. Como el nombre lo indica, en este esquema los procesadores tienen acceso a un espacio de direcciones comn; esto puede ser todo el espacio de direcciones o

nicamente un rea designada para memoria compartida, permitiendo a cada proceso contar con un rea exclusiva para sus requerimientos. La memoria compartida es un esquema conceptualmente simple de utilizar. Sin embargo presenta ciertas limitaciones. Una de ellas, ya que se puede tener a dos o ms procesadores manipulando la misma rea de memoria, es que se puede caer en inconsistencias donde un procesador espera un dato que ha sido modificado por otro. Esto tambin puede provocar condiciones de competencia (``race conditions'') y atoramientos (``deadlocks''), que son problemas clsicos de la sincronizacin de procesos, pero que no pueden dejar de tomarse en cuenta en una arquitectura SMP. Estas condiciones pueden resolverse utilizando mecanismos de sincronizacin de procesos, como semforos, monitores y secciones crticas. La limitacin ms importante de la arquitectura SMP, en trminos del rendimiento mximo que puede alcanzarse, es la posibilidad de saturacin de los buses del sistema. Ya que todos los procesadores tienen acceso al mismo bus de memoria, y en general a todos los perifricos que se encuentran comunicados comnmente por buses, conforme se incrementa el nmero de procesadores se incrementa tambin el trfico en dichos buses. Esto causa una saturacin que finalmente termina por negar el incremento de rendimiento obtenido teniendo varios procesadores. Por esta razn una arquitectura SMP difcilmente puede escalar ms all de algunas decenas de procesadores.
*

El Multiprocesamiento simtrico (symmetric multiprocessing / SMP) tiene un diseo simple pero an as efectivo. En SMP, multiples procesadores comparten la memoria RAM y el bus del sistema. Este diseo es tambin conocido como estrechamente acoplado (tightly coupled), o compartiendo todo (shared everything).

Debido a que SMP comparte globalmente la memoria RAM, tiene solamente un espacio de memoria, lo que simplifica tanto el sistema fsico como la programacin de aplicaciones. Este espacio de memoria nico permite que un Sistema Operativo con Multiconexin (multithreaded operating system) distribuya las tareas entre varios procesadores, o permite que una aplicacin obtenga la memoria que necesita para una simulacin compleja. La memoria globalmente compartida tambin vuelve fcil la sincronizacin de los datos. SMP es uno de los diseos de procesamiento paralelo ms maduro. Apareci en los supercomputadores Cray X-MP y en sistemas similares hace dcada y media (en 1983). Sin embargo, esta memoria global contribuye el problema ms grande de SMP: conforme se aaden procesadores, el trfico en el bus de memoria se satura. Al aadir memoria cach a cada procesador se puede reducir algo del trfico en el bus, pero el bus generalmente se convierte en un cuello de botella al manejarse alrededor de ocho o ms procesadores. SMP es considerada una tecnologa no escalable.

Arquitectura mpp
El Procesamiento masivamente paralelo (Massively parallel processing / MPP) es otro diseo de procesamiento paralelo. Para evitar los cuellos de botella en el bus de memoria, MPP no utiliza memoria compartida. En su lugar, distribuye la memoria RAM entre los procesadores de modo que se semeja a una red (cada procesador con su memoria distribuida asociada es similar a un computador dentro de una red de procesamiento distribuido). Debido a la distribucin dispersa de los recursos RAM, esta arquitectura es tambin conocida como dispersamente acoplada (loosely coupled), o compartiendo nada (shared nothing).

Para tener acceso a la memoria fuera de su propia RAM, los procesadores utilizan un esquema de paso de mensajes anlogo a los paquetes de datos en redes. Este sistema reduce el trfico del bus, debido a que cada seccin de memoria observa nicamente aquellos accesos que le estn destinados, en lugar de observar todos los accesos, como ocurre en un sistema SMP. nicamente cuando un procesador no dispone de la memoria RAM suficiente, utiliza la memoria RAM sobrante de los otros procesadores. Esto permite sistemas MPP de gran tamao con cientos y an miles de procesadores. MPP es una tecnologa escalable.

El RS/6000 Scalable Powerparallel System de IBM (SP2) es un ejemplo de sistema MPP, que presenta una ligera variante respecto al esquema genrico anteriormente planteado. Los procesadores del RS/6000 se agrupan en nodos de 8 procesadores, los que utilizan una nica memoria compartida (tecnologa SMP). A su vez estos nodos se agrupan entre s utilizando memoria distribuida para cada nodo (tecnologa MPP). De este modo se consigue un diseo ms econmico y con mayor capacidad de crecimiento.

La parte negativa de MPP es que la programacin se vuelve difcil, debido a que la memoria se rompe en pequeos espacios separados. Sin la existencia de un espacio de memoria globalmente compartido, correr (y escribir) una aplicacin que requiere una gran cantidad de RAM (comparada con la memoria local), puede ser difcil. La sincronizacin de datos entre tareas ampliamente distribuidas tambin se vuelve difcil, particularmente si un mensaje debe pasar por muchas fases hasta alcanzar la memoria del procesador destino.

Escribir una aplicacin MPP tambin requiere estar al tanto de la organizacin de la memoria manejada por el programa. Donde sea necesario, se requieren insertar comandos de paso de mensajes dentro del cdigo del programa. Adems de complicar el diseo del programa, tales comandos pueden crear dependencias de hardware en las aplicaciones. Sin embargo, la mayor parte de vendedores de computadores han salvaguardado la portabilidad de las aplicaciones adoptando, sea un mecanismo de dominio pblico para paso de mensajes conocido como Mquina virtual paralela (parallel virtual machine / PVM), o un estndar en fase de desarrollo llamado Interfaz de Paso de Mensajes (Message Passing Interface / MPI), para implementar el mecanismo de paso de mensajes. Ya que el problema es el hecho de contar con memoria compartida y sus limitaciones, se propuso un esquema de una mquina paralela que consta de varias unidades de procesamiento bsicamente independientes. En efecto cada una de estas unidades, conocida como ``nodo'', es prcticamente una computadora en s misma, contando con su propio procesador, memoria no compartida, y que se comunica con las dems unidades de procesamiento a travs de un canal provisto exclusivamente para este propsito. Este tipo de mquinas se conocen como computadoras masivamente paralelas o mquinas MPP (Massively Parallel Processing, procesamiento masivamente paralelo). Un diagrama de una arquitectura MPP genrica se muestra en la figura. Una mquina 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 caracterstica ms importante es el hecho de que, en cada nodo, cada procesador opera bsicamente como una computadora independiente, ejecutando su propio cdigo independiente de los dems procesadores, y teniendo un rea de memoria con datos tambin independientes. Desde luego, para que esta organizacin redunde en un mayor desempeo, se requiere colaboracin entre los nodos. Como se mencion, una mquina 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 mquina MPP es obtener alto rendimiento, se busca que este canal de comunicaciones sea lo ms eficiente posible, en trminos tanto de ancho de banda como de tiempo de latencia. En la mayora de los casos este canal ser un bus propietario, diseado por el fabricante del equipo MPP. Para tener acceso a informacin 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 saturacin del bus de comunicaciones, pues ste slo se emplea cuando se est realizando comunicacin entre los nodos. De esta manera se tiene una arquitectura que puede escalarse a varios cientos o miles de procesadores (las mquinas MPP ms grandes en la actualidad tienen alrededor de 10 mil procesadores). Sin embargo el tener varias secciones de memoria independientes complica la programacin en este tipo de arquitecturas. En una arquitectura MPP la distribucin de trabajo entre los nodos es una consideracin vital al disear cualquier aplicacin. Se debe tomar en cuenta la sincronizacin de datos entre los nodos, y en toda comunicacin entre

ellos debe realizarse explcitamente por medio de llamadas al mecanismo de paso de mensajes.