Download paragon_99_00
Document related concepts
no text concepts found
Transcript
INTEL PARAGON 1. INTRODUCCIÓN: El sistema Intel Paragon XP/S fue desarrollado por primera vez en septiembre de 1992 por la División de Sistemas Supercomputadores de Intel (Intel SSD). Se han desarrollado más de 50 sistemas Paragon diferentes, por ejemplo, el más grande estaba formado por 1984 nodos. El sistema Paragon es un sistema multicomputador escalable de memoria distribuida. Sus nodos están basados en el procesador RISC de Intel i860 XP y se conectan por medio de una malla de dos dimensiones de ancho de banda grande que soporta fundamentalmente el modelo de programación de paso de mensajes. 2. ARQUITECTURA: La arquitectura de este sistema multicomputador está formada por nodos de procesamiento ordenados en una malla rectangular de dos dimensiones y por memoria distribuida entre estos nodos. El sistema contiene nodos para tres tareas diferentes: *Nodos de computo (compute nodes): ejecutan los programas paralelos. *Nodos de servicio (service nodes): ofrecen las posibilidades de un sistema UNIX incluyendo compiladores y herramientas de desarrollo de programas. *Nodos de entrada/salida (I/O nodes ): actúan como interface para almacenamiento masivo o redes externas. Todos los nodos están uniformemente integrados en la red de interconexión que proporciona un enrutamiento rápido de mensajes usando un algoritmo de enrutamiento determinista denominado wormhole. El ancho de banda medido entre dos nodos es 35MB/s en cada dirección, prácticamente independiente de la distancia entre los nodos. La latencia de arranque para un mensaje emitido por un programa escrito en un lenguaje de alto nivel es de 90 s. Estos valores fueron mejorados con la versión 1.2. a 75 MB/s y 50 s y posteriormente a 175 MB/s y 30 s a finales de 1994. Los dispositivos de almacenamiento masivo y las redes externas se conectan a nodos I/O especiales. Disk arrays (RAIDs), con una capacidad de 4,8 GB cada uno, proporcionan espacio de disco interno y se sitúan dentro del armario del sistema. Cada uno es conectado a 1 INTEL PARAGON un único nodo I/O con 5 MB/s de ancho de banda. Además dispone de interfaces Ethernet, HiPPI, SCSI-1 y SCSI-2 para discos externos, cintas y redes. Una estación de trabajo de diagnóstico empotrada se usa para diagnósticos y para el arranque del sistema. Esta es conectada a los nodos por medio de una red diferente. Cada armario Paragon (huella de 56x107 cm) puede contener 64 nodos, cada uno en una tarjeta diferente, y hasta 8 RAIDs o 6 RAIDs + la estación de trabajo de diagnóstico. Un armario completo tiene un consumo de energía de unos 5KW y está ventilado por aire. 2.1. Arquitectura del nodo: Los tres tipos de nodos existentes en el sistema se realizan con el mismo hardware denominado nodo de propósito general (GP node) mostrado en la figura siguiente. Todos los componentes del hardware del nodo GP y todas las partes del interface de red están conectadas por un bus de datos de 64 bits a 400 MB/s. Fig.1. Componentes de un nodo del sistema Paragon. Vemos a continuación las distintas partes del hardware de un nodo GP. Parte de cómputo: esta parte incluye un microprocesador Intel i860XP cuyo reloj es de 50 MHz (20 ns por ciclo) y 16 o 32 MB de memoria construida a partir de chips de DRAM de 4 Mbit, 60 ns. Está organizada en bancos y dispone de detección y corrección de errores. La velocidad de pico de transferencia de datos entre la memoria y la caché del procesador es de 64 bits por ciclo (es decir, 64 MB/s). La memoria del nodo puede ser expandida por una carta hija que puede incorporar 32, 64 ó 128 MB adicionales. 2 INTEL PARAGON El procesador i860 XP ( representado en la figura 2 ) es un rápido procesador RISC de tecnología CMOS que contiene más de 2,5 millones de transistores. El ancho de los buses de direcciones es de 32 bits y para los datos es de 32, 64 ó 128 bits. Además del núcleo RISC, tiene 2 cachés de 16 KB (una para datos y otra para instrucciones) y 2 pipelines vectoriales para suma y producto en punto flotante IEEE para datos de 32 y 64 bits. También incluye una unidad de manejo de memoria en el propio chip que soporta las cachés y la memoria virtual. Los tamaños de página son: 4KB y 4 MB. El sistema operativo Paragon usa sólo las páginas pequeñas. Fig.2. Componentes del procesador Intel i860. La caché de datos y los registros de punto flotante están conectados por un camino de datos de 128 bits lo que permite una tasa de 128 bits por ciclo ó 800 MB/s. Como las pipelines pueden trabajar simultáneamente y el sumador puede dar un resultado cada ciclo de reloj y el multiplicador un resultado cada dos ciclos de reloj, el funcionamiento de pico teórico del i860XP es de 75 MFLOPS para una aritmética de 64 bits y de 100 MFLOPS para una aritmética de 32 bits (el multiplicador da ahora un resultado por ciclo). 3 INTEL PARAGON Parte de Interface con la red: el interface con la red de interconexión está formado por: - un procesador de mensajes - un controlador del intreface con la red - dos controladores DMA. El procesador de mensajes es un segundo procesador i860XP que opera en paralelo y compartiendo memoria con el procesador de la aplicación. Sus funciones son: - interpretar los detalles de la comunicación entre nodos - proveer funciones globales de comunicación. De esta forma, el procesador de la aplicación no es interrumpido por operaciones de paso de mensajes. Se evitan cambios de contexto, turbulencias de código y overflows de los pipelines de punto flotante. El funcionamiento del procesador de mensajes es el siguiente: - los mensajes salientes son divididos por el procesador de mensajes en paquetes, les añade la información de protocolo e inicia la transferencia. - los mensajes entrantes son recibidos automáticamente y el procesador de la aplicación es informado cuando un mensaje ha sido recibido en memoria completamente. Además, el procesador de mensajes se encarga de operaciones globales: broadcast, sincronización de nodos y operaciones de reducción a entero, punto flotante u operandos lógicos. La transmisión de datos entre la memoria y la red es efectuada por un NIC (Network Interface Controller) especial que es ayudado por dos controladores DMA que pueden operar en paralelo (uno para mensajes internos y otro para mensajes externos). Hardware adicional: El nodo GP de Paragon tiene un chip de captura de datos (RPM) que recoge de forma no intrusiva los datos elaborados por el nodo monitorizando las actividades del bus. Los datos son transmitidos a un nodo de servicio a través de la red de interconexión y quedan disponibles para el usuario a través de la herramienta de visualización SPV (System Performance Visualization Tool). Además, todos los nodos GP están equipados con un puerto de expansión. En los nodos I/O, este puerto se usa para conectar una carta especial para el interface I/O. 4 INTEL PARAGON Modificaciones en el hardware: El hardware descrito ha sido modificado en algún sistema más avanzado de forma que cada tarjeta o nodo del multiprocesador contiene tres procesadores i860XP: dos procesadores de aplicación y un procesador de mensajes. Los tres comparten la memoria de nodo. 2.2. Red de Interconexión: El sistema Paragon tiene dos redes de comunicación: - la red de datos de alta velocidad - la red de diagnóstico. La red de diagnóstico: se usa para el arranque y para diagnósticos del sistema. Sigue la especificación IEEE 1149.1 JTAG. Implementa cadenas de inspección serie que permiten el acceso a los componentes hardware del sistema Paragon. La red de datos: es el vehículo fundamental de comunicación entre todos los nodos. tiene una topología de malla de dos dimensiones tal y como se muestra en la figura 3. Fig.3. Red de Interconexión del sistema Paragon. En cada nodo de la malla está conectado un chip de enrutamiento de mensajes iMRC (Paragon Message Routing Chip) por medio de canales de un ancho de 16 bits y de alta velocidad. A cada iMRC se conecta un nodo. De todas formas, el iMRC puede enrutar 5 INTEL PARAGON mensajes de forma autónoma e independientemente del nodo conectado a él. En la mayoría de los sistemas Paragon hay algunos iMRCs sin ningún nodo conectado a ellos. Los routers y canales están combinados en backplanes que contienen 16 routers (4 filas y 4 columnas). Un armario contiene 4 backplanes y por tanto 16x4 = 64 nodos en cada armario como ya hemos indicado. El chip de enrutamiento de mensajes iMRC: tiene 5 entradas y 5 salidas. Un canal de entrada y uno de salida se conectan a cada uno de los 4 iMRCs vecinos. El par restante, se conecta al NIC o Controlador de interface de red del nodo GP correspondiente. En el iMRC hay un buffer de 16 bits para cada canal de entrada que le permite enrutar 16 bits de datos de cada buffer de entrada a cualquiera de los canales de salida. Si la dirección no cambia, le lleva 40 ns tomar la decisión de hacer cada enrutamiento individual y cerrar los switches correspondientes. El hardware del iMRC soporta multidifusión: se hace enrutando el mensaje a todos los iMRCs en el rectángulo entre el nodo que envía y los nodos que reciben el mensaje. Wormhole routing: La unidad de transmisión entre nodos es un paquete. El procesador de mensajes del nodo divide el mensaje en paquetes de 8 a 1984 bytes (lo puede controlar el usuario; por defecto son 1024 bytes). Además añade la información necesaria de enrutamiento a los paquetes y controla la transmisión de paquetes entre la red y el nodo. Wormhole routing es una técnica de conexión rápida para redes directas introducida por Seitz y Dally que permite combinar transmisiones pipeline de paquetes con bajos requerimientos de almacenamiento en los routers. En esta técnica, un paquete se divide en una secuencia de flits (flow control digits). El tamaño de un flit en un sistema Paragon es de 16 bits. Un flit se puede transmitir entre routers adyacentes en paralelo en un solo paso. Los flits de cabecera de un paquete determinan su camino o ruta en la red. Al avanzar estos a lo largo de la ruta especificada, los flits restantes les siguen en forma pipeline. Cuando un flit de cabecera es bloqueado porque un canal que necesita está ocupado todavía por otro paquete, todo el pipeline se para. La secuencia de flits permanece en su lugar hasta que el canal requerido está libre. La cabecera además reserva el camino para su paquete y los canales individuales pertenecen a ese paquete hasta que el último flit ha sido transmitido. 6 INTEL PARAGON La naturaleza pipeline del enrutamiento wormhole hace que la latencia de la red sea independiente de la distancia entre el nodo que envía y el que recibe, por lo menos en mensajes largos. Otra ventaja de este sistema de enrutamiento es que sólo requiere buffers muy pequeños en los routers. Como resulta difícil sincronizar una red grande, la sincronización se sustituye por un protocolo sencillo entre routers vecinos( handshake protocol). Para implementar esta red de tiempo compartido, Paragon usa un línea de petición y otra de reconocimiento además de las líneas de datos en cada canal. Un problema importante de este protocolo es el llamado deadlock. Se produce fácilmente debido a que los paquetes que viajan por la red están necesitando constantemente nuevos recursos o canales mientras ocupan otros. Se evita seleccionando algoritmos de enrutamiento adecuados. Paragon utiliza un sencillo pero efectivo método: los mensajes se envían primero en la dirección horizontal y luego en la dirección vertical. Sólo se permite un cambio de dirección en la ruta un a vez. De forma detallada, el algoritmo trabaja de la siguiente forma: un paquete tiene 2 flits de cabecera que contienen la orientación de la ruta y el número de routers intermedios por los que debe pasar. El primer flit contiene la orientación y el número de routers intermedios en la dirección horizontal: el nodo emisor decide si el mensaje va a la derecha o a la izquierda y envía este primer flit decrementando su valor en una unidad cada vez que pasa por un nodo intermedio. Cuando su valor es cero, se cambia a la dirección vertical y el segundo flit de cabecera se usa para decidir la orientación y el número de nodos intermedios hasta el destino en esta dirección vertical. Este algoritmo es: - mínimo: usa una ruta de mínima longitud - determinista: opuesto a los algoritmos adaptativos que cuentan el número de colisiones y pueden desviarse de la ruta. 7 INTEL PARAGON 2.3. Nodos de E/S y de almacenamiento: NODOS DE E/S Están localizados en una posición libre de la red y desempeñan un papel de interfaz entre los nodos de procesamiento por un lado, y los elementos de almacenamiento y redes externas por otro lado. El número de nodos de E/S en principio es arbitrario y no dependen del número de nodos de cómputo y servicio. Un nodo de E/S se construye a partir de un nodo GP (propósito general), se conecta a un adaptador especial de tarjeta dentro del nodo puerto de expansión. Para diferentes requerimientos de E/S, existen varios tipos de nodos E/S que están disponibles en los nodos: MIO, en el SCSI-2, y el HIPPI. En el nodo MIO nos podemos encontrar: un interfaz SCSI-1 (5MB/s por ejemplo para los arrays de disco interno), un interfaz Ethernet (10 Mbit/s) y un interfaz V24. En el nodo SCSI-2 generalmente existen de 8 bit en la versión de 10 MB/s y de 16 bit en la versión de 20 MB/s desarrollada en 1994. En el nodo HIPPI (100 MB/s) que consiste en dos nodos físicos, sirve para unir los arrays externos de disco de la estructura de buffer, como sería la red FDDI (100 Mbit/s). Cada petición de E/S sale de un nodo y es servido por un nodo de E/S. Cuando, por ejemplo, un programa requiere datos desde un fichero de disco, el dato es leído y se manda al buffer por medio del nodo E/S el cual hace de mecanismo de unión física, y el dato es transferido al nodo que realizó la petición a través de la red de interconexión. Todo ocurre de forma transparente al usuario del programa. ELEMENTOS DE ALMACENAMIENTO El sistema primario de almacenamiento del sistema Paragon son “arrays de disco” denominados RAID’s, los cuales están integrados en las cajas de la Paragon. Cada array de disco tiene un nodo MIO dedicado el cual se conecta al interfaz SCSI. Los RAIDs consisten en 5 discos de 3.5 pulgadas con una capacidad cada uno de 1.56 GB, los cuales mantienen el dato y la información de paridad. El controlador RAID usa RAID nivel 5. 8 INTEL PARAGON Un array de disco, en total, puede almacenar hasta 4.8 GB de datos. Incluso si se produce un fallo, el sistema operativo de la Paragon junto con el controlador, suministran rutinas de reconstrucción del dato. El archivo permanece intacto y puede se rusado mientras se realiza la reconstrucción. Varios archivos generalmente residentes en diferentes RAIDs pueden ser combinados en un sistema de archivo paralelo llamado “Parallel File System” PFS. Además de los sistemas de disco interno, conexiones y servicios para soportar el almacenamiento de disco externo y sistemas de backup, también está disponible en el sistema Paragon: el HIPPI, el FDDI y el UniTree. Una red FDDI se utiliza en el sistema para unir un NSC con el nodo HIPPI. Además hay un conector QIC-150 dentro de la estación de trabajo de diagnóstico “Diagnostic Workstation”, y otro conector interno de 4mm. que se une al nodo MIO. 2.4. Tolerancia al fallo: La estrategia, que sigue el sistema Paragon, para conseguir un nivel óptimo de tolerancia al fallo, es doble: hay varios medios de diagnóstico en línea por un lado, y hay reparaciones y operaciones concurrentes por otro lado. Una red de diagnóstico independiente que está controlada por monitores de la estación de trabajo de diagnóstico “Diagnostic Workstation”, es de gran importancia que se incluyen en las CPUs y en los nodos de memoria, en el IMRCs, en los interfaz de E/S y el suministro de potencia. El “Diagnostic Workstation” también se usa para inicializar el sistema. El diagnóstico en línea, puede testear grupos de nodos sin producir perturbaciones en las actividades de computación de los otros nodos. La red de interconexión proporciona la posibilidad de detección de error, tanto en el hardware como en los protocolos de paso de mensaje. Cuando un fallo ha sido detectado en un nodo, el array de disco o el componente de comunicación, del administrador de sistema puede reconfigurar el sistema, de manera que la parte de la máquina con fallo pueda ser usada. El nodo con el fallo es marcado y así no lo pueden usar los usuarios, esto no afecta a la red de interconexión ya que el chip de la malla de encaminamiento que se usa como unión puede continuar su operación. El sistema, sin embargo, debe estar apagado cuando se reemplaza el nodo. 9 INTEL PARAGON En caso de fallo en un disco en el sistema RAID interno, el disco puede ser reemplazado durante la operación y el resto de la máquina y el contenido del disco puede ser reconstruido en línea mientras está funcionando el disco E/S. 3. SISTEMA OPERATIVO: El sistema operativo de la Paragon fue diseñado para suministrar unas aplicaciones compatibles con el sistema operativo OSF/1 desarrollado por la Fundación Open Sofwtware, el interfaz NX paso de mensajes compatible con el IPSC/860, y el sistema de fichero paralelo ampliado al Concurrent File System con el IPSC/860. 3.1. Paragon OSF/1: Para realizar las operaciones de multiproceso “Advanced Development” (de desarrollo avanzado) se desarrolló la versión OSF/1, llamada OSF/1AD. OSF/1AD está basada en Mach 3 microkernel realizada en la Universidad Carnegie Mellon. Sin embargo un soporte sin memoria compartida, el NORMA (NO acceso a memoria remota), es una versión que también se usa. La arquitectura del sistema operativo de la Paragon se muestra en la figura 3.1 Figura 3.1 Arquitectura del sistema operativo OSF/1. El Mach Kernel (núcleo) proporciona hilos (threads), tareas (tasks) y puertos como mecanismos para poder conseguir sistemas de alto nivel. Estos mecanismos, generalmente, no están expuestos directamente al usuario. Un thread (hilo) constituye la unidad básica de ejecución. Un task (tarea) es un espacio de disección virtual , que consiste en un grupo de hilos, que realiza el acceso a los recursos del sistema. 10 INTEL PARAGON Los hilos pueden ejecutarse de forma concurrente con otros hilos incluso dentro de la misma tarea. La noción convencional sobre lo que significa un proceso en Mach, está representado por una tarea con un simple hilo de control. La comunicación entre tareas está basado en un sistema cliente/servidor , estructura en la cual las tareas (clientes) acceden a los servicios mediante peticiones a otras tareas (servidores), mediante paso de mensajes por el canal de comunicación llamado port (puerto) Inter Process Communication, IPC. Un puerto es un canal unidireccional que consiste en una cola de mensajes gobernada y protegida por el Kernel (núcleo). Una tarea tiene derecho a esos puertos que especifican si recibe o envía mensajes. Solamente una tarea puede recibir correctamente de un puerto. Cada nodo de la Paragon ejecuta el microkernel que soporta los servicios básicos del sistema. Un servidor OSF/1, implementado en el exterior del kernel, se ejecuta en cada nodo y suministra acceso a todos los servicios OSF/1 incluyendo la administración de procesos, sistemas de ficheros y acceso a la red. Además el sistema cuenta con una aplicación denominada emulation library (librería de simulación), que se implementa en el sistema operativo y que puede ser ejecutada en una misma tarea como en un proceso UNIX. Existen tres clases de operaciones: Aquella que puede ser ejecutada completamente en una tarea, como el identificador de un proceso. Aquella que usa directamente los servicios del Mach, tal y como la creación de un nuevo hilo. Aquella que llama al servidor OSF/1. Los servidores OSF/1 y librerías cooperan conjuntamente para ofrecer al usuario un sistema como el de UNIX. El interfaz NX proporciona un superconjunto de interfaz NX/2 para el paso de mensajes. Para las aplicaciones paso de mensajes se usa el interfaz kernel-level NX que es más rápido que el microkernel IPC. El OSF/1 Paragon soporta memoria virtual en todos sus nodos. 11 INTEL PARAGON SISTEMA DE ARCHIVOS El sistema de archivos OSF/1 está basado en el Berkeley 4.3 Virtual File System, VFS. El VFS es diferente del sistema UNIX, especialemente en UNIX File System UFS, y en el Network File System, NFS. El UFS es compatible con el Berkeley 4.3 Tahoe. Por encima del VFS, que no es mas que un simple sistema de archivo de proceso, nos encontramos el Distributed File System, DFS. Todo esto nos va a proporcionar una visión lógica de cómo es la estructura de un sistema de archivo para cada proceso y para cada nodo. Sólo hay un directorio global el cual combina de forma transparente el sistema RAID y el NFS. Además del soporte de sistema de archivos tipo UNIX, el sistema operativo Paragon ofrece el Parallel File System PFS, que nos va a proporcionar una alta transferencia de datos y aligera las comunicaciones múltiples entre los nodos E/S y sus correspondientes sistemas RAIDs. La cantidad de datos desde el PFS que puede almacenar en cada RAID esta determinado por la unidad de cinta (por ejemplo de 8 KB a 64 KB), perteneciente al administrador del sistema. Hay tres formas de paralelismo desde E/S a los ficheros PFS. Un simple nodo lee o escribe un bloque de bytes en una unidad de cinta, las diferentes unidades de cinta pueden leer o escribir en paralelo. Si dos o más nodos acceden a diferentes sistemas RAID al mismo tiempo, las operaciones en disco se pueden hacer en paralelo. Además, los discos de un sistema RAID operan en paralelo. El PFS se puede usar con el sistema estándar OSF/1 para hacer llamadas y órdenes. Para aplicaciones en paralelo existe también un sistema E/S que se puede llamar desde el Concurrente File System, CFS, disponible en el IPSC/860. La UnitTree está disponible para accesos de servidores para cambios de archivos como el backup y la reconstrucción. SISTEMA DE IMAGEN SIMPLE (SINGLE SYSTEM IMAGE) El sistema multicomputador cuenta con un sistema de imagen simple para administrar procesos, ficheros, autorizaciones de usuarios, cuentas de usuarios, etc., es un servicio individual integrado en todos los nodos. Por ejemplo, los usuarios pueden obtener información referente a todos los procesos en el sistema usando la utilidad ps. El DFS permite a todos los elementos de E/S un acceso de forma igualitaria en cualquier nodo. El sistema es dirigido como un sistema convencional de un procesador. 12 INTEL PARAGON 3.2. Particionamiento y planificación: El sistema operativo de la Paragon permite a la red de procesos dividirse en conjuntos de nodos, llamados particiones. Las particiones proporcionan diferentes medios de accesos restringidos a distintas partes de la red, en particular, usuarios o tipos de trabajos y especifica diferentes características de planificación en diferentes partes de la máquina. En principio, una partición consta de un conjunto arbitrario de nodos. Por lo menos las particiones que están establecidas en el administrador de sistemas deben tener presente: (figura 3.2.1) La partición raíz, que consiste en todos los nodos de la máquina. La partición de servicio, que soporta los servicios generales de usuario, tales como editores, compiladores y el shell (programas agregados) de UNIX. Los servicios del sistema operativo, tales como el servidor de fichero, están físicamente localizados en los nodos. La carga está soportada en la partición de servicio, se produce automáticamente moviendo los nuevos procesos a nodos de carga inferiores. Figura 3.2.1. Particiones del sistema Paragon. La partición de cómputo, que consiste en la mayoría de los nodos del sistema. Aquí es donde se ejecutan las aplicaciones en paralelo. Esta partición es jerárquica, es decir, se subdivide en subparticiones, las cuales a su vez tienen subparticiones. Las subparticiones deben ser hechas por el administrador del sistema así como por el usuario. Los nodos E/S se pueden agrupar dentro de la partición E/S, sin embargo, normalmente se encuentran dentro de la partición de servicio. 13 INTEL PARAGON Las subparticones están definidas especificando el origen de la partición, nodos asignados, permisos de accesos y las características de planificación de la partición. Los atributos que se utilizan para el control de acceso a la partición, es similar a los usados en UNIX y son: R permite la subpartición de una partición que es mostrada. W permite cambiar y crear atributos a una partición y cambiar subparticiones. X permite ejecutar aplicaciones en una partición. Si el permiso de acceso o las características de planificación no son explícitamente asignadas entonces se bloquean desde la partición de origen. Dependiendo del tipo de partición va a existir diferentes mecanismos de planificación. En la partición de servicio, los procesos son planificados en modo de tiempo compartido de UNIX, los cuales se ejecutan en un corto periodo de tiempo (100ms) o hasta que el sistema lo quiera. Las aplicaciones en paralelo se ejecutan generalmente en la partición de cómputo y será planificada de acuerdo con el mecanismo llamado gang scheduling (planificación anidada). En este modelo todos los procesos, los cuales realizan una aplicación, se planifican enseguida todos los nodos que realizan la aplicación cargada. La aplicación se ejecutará hasta que termine su tiempo de ejecución, el tiempo se determinará comprobando si hay otra aplicación con igual o mayor prioridad lista para ser ejecutada. Como la paginación en el sistema operativo es usado para paginar dentro y fuera, las aplicaciones pequeñas no necesitan ser movidas entre disco y memoria. La reincorporación a la memoria es una cantidad de tiempo específico dentro de la partición y suele ser de unos pocos minutos. Las aplicaciones se ejecutan en un nodo en un tiempo. Gang scheduling estuvo disponible a mediados de 1994. Cuando un nodo es asociado con una aplicación, el conjunto de procesos es planificado por el planificador de UNIX, mientras la aplicación esta activa. 14 INTEL PARAGON 3.3. Acceso al sistema y cuentas de usuario: El usuario puede ejecutar aplicaciones en paralelo en el sistema Paragon de dos formas: mediante una entrada de identificación remota (login), o indicando un grupo de trabajo. La Paragon aparece como un sistema UNIX conectado a la red de su estación de trabajo. Después del login, el usuario se encuentra en el shell en algún lugar de la partición de servicio. Aunque la Paragon no requiere de un procesador frontal, ni para desarrollar programas ni para el sistema de administración, la mayoría de los programas tienen herramientas como el compilador y herramientas de análisis de ejecución que están disponibles en las versiones SUN y SGI. La Paragon utiliza el Multi-User Accounting and Control System (MACS) desarrollado por el Centro de Supercomputadores de San Diego, para dirigir los recursos del sistema y el Network Queueing System (NQS) desarrollado en la NASA. Todo ello nos proporciona flexibilidad, trabajo automatizado, planificación de programa para asignación de recursos del sistema. El MACS permite simultanear grupos, planificación y control interactivo, usando particiones separadas para cada uno. El planificador permite que los trabajos se ejecuten desde las colas del NQS. El administrador de sistemaespecifica para cada cola el número de nodos, la prioridad, el número de trabajos para cada ejecución. El MACS nos puede mostrar los recursos del sistema usados, por ejemplo el número de nodos y el tiempo de ejecución de los trabajos, los datos utilizados para el análisis y la información que sea necesaria. El MACS incluye facilidades para automatizar y seleccionar la preferencia de los trabajos que se han excedido en los recursos asignados. 3.4. Paso de mensajes: Las aplicaciones de procesos en paralelo utilizan varios elementos, tanto en hardware como en software, para intercambiar información. Esto incluye un procesador de mensajes, un segundo procesador i860 en cada nodo. El procesador de mensajes comparte memoria con el procesador de la aplicación, y esos dos procesadores a su vez comparten variables. Cuando el procesador de la aplicación quiere hacer un paso de mensaje, coloca los parámetros en esas variables. El procesador de mensajes regularmente hace un sondeo de ellas y ejecuta la llamada cuando encuentra la información. 15 INTEL PARAGON El software básico en paso de mensajes es por ejemplo, el tiempo de los mensajes y la transferencia de control se ejecuta en el procesador de paso de mensajes en el nivel del kernel correspondiente y puede directamente direccionar el hardware. Así la implicación del sistema operativo OSF/1 en el paso de mensajes es mínima, teniendo cuidado de poner la latencia baja. Los mensajes que salen son enviados directamente fuera de la memoria del proceso. Para los mensajes que entran se suministra un sistema buffer (segmento reservado de memoria) para cada nodo, luego en el sistema Paragon contiene distintos buffer por cada nodo. Cada nodo que hace un envío conoce el estado del buffer asociado a los nodos que lo reciben. Tan pronto como es recibido se fija, y el procesador de mensajes transfiere el dato a la memoria de proceso de esta manera se libera espacio para las siguientes secuencias. También se informaría al procesador de la aplicación cuando el mensaje ha sido completamente recibido colocando una variable compartida. El tamaño de los buffer puede ser seleccionado por la aplicación. El procesador de mensajes se empezó a usar a mediados de 1994. 4. ENTORNO DE DESARROLLO DE PROGRAMAS: El entorno de desarrollo del sistema Paragon soporta diversos modelos de programas. Un amplio rango de lenguajes de programación, librerías matemáticas optimizadas y un set de herramientas ayudan al usuario a crear nuevas aplicaciones o a utilizar códigos ya existentes que estén disponibles de Intel SSD. La mayor parte de las herramientas se pueden usar en los nodos de servicio de Paragon o como herramientas de desarrollo cruzado en estaciones SUN y SGI. Varios componentes del entorno de desarrollo del sistema Paragon han sido cogidos del iPSC/860. 4.1. Modelos de programación: El sistema Paragon soporta varios modelos de programación. Además del modelo de paso de mensajes, que es básico para la mayor parte de los multicomputadores de memoria distribuida y que es también el principal modelo de programación de Paragon, Paragon 16 INTEL PARAGON soporta el modelo de datos paralelo a través del HPF (High Performance Fortran) y el modelo de memoria compartida a través del SVM (Shared Virtual Memory). Paso de mensajes.En este modelo de programa se ejecutan procesos independientes asíncronamente. El paso de mensajes se utiliza para comunicar los procesos y para sincronizarlos. En Paragon, varios procesos que pertenecen a una aplicación se pueden ejecutar concurrentemente en un nodo de cómputo. En principio, los procesos pueden ser programas diferentes totalmente. El estilo de programación más común, sin embargo, es el SPMD (Single Program Multiple Data), donde el mismo programa se ejecuta en cada nodo de la aplicación, pero cada nodo sólo trabaja en su parte de datos. Para problemas perfectamente paralelos, cada proceso puede hacer su trabajo sin acceder a los datos ocupados por otros procesos. Para otro tipo de problemas, los procesos deben intercambiar datos con los otros para realizar su tarea. Otro conocido estilo de programación es el manager/worker. Un proceso manager (director) comienza varios procesos worker y les asigna sus tareas. Tan pronto como un proceso worker haya terminado su tarea informa al manager, que acepta e interpreta los resultados y le asigna una nueva tarea. Datos paralelos.Para este modelo de programación Intel SSD proporciona el HPF (High Performance Fortran), una extensión de Fortran 90. En el programa el paralelismo se expresa por medio de arrays. Las directivas de distribución de datos describen como se distribuyen los arrays en los procesos paralelos. El programador además especifica una malla de procesos que después se asigna al hardware. El compilador toma la responsabilidad de insertar las instrucciones de comunicación específicas requeridas para ejecutar el código en un sistema de memoria distribuida. La mejor o peor comunicación y el balance de carga se determinan por la asignación de datos a los procesos. Cada proceso es responsable de realizar el cálculo con los datos asignados. Por lo tanto, el programador puede controlar el coste de comunicación y el balance de carga con la ayuda de las directivas de distribución. HPF proporciona dos importantes ventajas para el programador paralelo: - un modelo familiar de programación . portabilidad. 17 INTEL PARAGON Memoria compartida.El sistema Paragon también incorpora memoria virtual compartida (SVM) que permite realizar aplicaciones paralelas en las cuales los datos son compartidos entre varios procesos sobre uno o más nodos. La distribución física de memoria forma un espacio de direcciones global uniforme, accesible desde todos los nodos. No será necesario paso de mensajes explícito. SVM puede ser usado por el sistema UNIX a través del interface de segmentos compartido. Los segmentos compartidos pueden mapearse en el espacio de direcciones virtuales de diferentes procesos. 4.2. Librerías de paso de mensajes: El modelo de programación de paso de mensajes está extendido, por lo que se han desarrollado muchas librerías de paso de mensajes. Algunas de estas están relacionadas con una máquina de memoria distribuida especial, por ejemplo la librería Intel SSD NX. Otras son portables en el sentido de que permiten al usuario especificar la comunicación entre procesos de forma que cada máquina trabaja independiente. El sistema OSF/1 de Paragon incluye la librería de paso de mensajes NX, que se conoce desde las series iPSC. Paragon soporta algunas extensiones, incluyendo la posibilidad de asignar más de un proceso de una aplicación paralela a un nodo. Soporta mensajes síncronos (csend,crecv) y asíncronos (isend, irecv), así como mensajes que producen interrupciones (hsend, hrecv). Adicionalmente, están disponibles operaciones globales para realizar operaciones que utilizan datos de todos los nodos, por ejemplo para una suma global. Otras librerías de paso de mensajes, aparte de la NX, son: - PVM del Oak Ridge National Laboratory - EXPRESS de Parasoft - PARMACS del GMD(Gesellschaft für Mathematik und Datenverarbeitung) y Pallas - P4 y TCGMSG del Argonne National Laboratory 18 INTEL PARAGON 4.3. Lenguajes y compiladores: El sistema Paragon ofrece un amplio set de lenguajes de programación, que son interoperativos dando la salida del compilador para ser linkada sin tener en cuenta el lenguaje fuente. El cambio de compilador permite seleccionar diferentes estrategias de generación de código (por ejemplo, código escalar, bucles pipeline, código vectorial), así como diferentes optimizaciones (por ejemplo, optimización escalar, transformación de bucles, y gestión de caché). Los compiladores explotan el hardware avanzado del i860, tales como modo de instrucciones dual, instrucciones de operación duales y pipelines aritméticos y de carga. Los compiladores fueron desarrollados originalmente para el iPSC/860 y han sido adaptados para Paragon. Fortran 77 y High Performance Fortran.La versión 4.5 del compilador de Paragon Fortran 77 para Paragon OSF/1 está disponible. La compilación puede ser realizada en los nodos de servicio y en estaciones de trabajo utilizando el compilador cruzado. El pre-compilador FORGE HPF, llamado ‘xhpf ‘ está disponible para investigación de aplicaciones paralelas. Incluye MAGIC, un modo opcional de paralelismo automático. ‘xhpf ‘ con MAGIC toma como entrada un programa de Fortran 77 y automáticamente genera un código paralelo con la sintaxis de Fortran 90 y las directivas de HPF. C, C++ y Ada.La versión 4.5 de Paragon que optimiza el compilador C para Paragon OSF/1 está disponible en los nodos de servicio y como un compilador cruzado. También lo están C++, que está basado en un procesador de AT&T, por lo que para la instalación de este compilador se requiere una licencia de AT&T, y un compilador Ada para Paragon OSF/1. 4.4. Herramientas de desarrollo de programas: Las herramientas disponibles en Paragon están basadas en el TAM (Tools Application Monitor), que es un servidor por nodo, por aplicación, de herramientas que realizan control de procesos en el sistema Paragon. La figura 6 muestra la cooperación de las herramientas de desarrollo de programas. 19 INTEL PARAGON FUENTE FORTRAN FUENTE C FORGE 90 COMPILADOR OPTIMIZADO FORTRAN PARAGON COMPILADOR OPTIMIZADO C PARAGON LIBRERÍAS DE GESTIÓN DE CÓDIGO OBJETO ENSAMBLADOR Y LINKER LIBRERÍAS RUN-TIME PUNTO FLOTANTE, I/O MENSAJES, X_WINDOWS DEBUGGER PARALELO PARAGON ANALIZADOR DE FUNCIONAMIENTO Fig.6. Desarrollo de programas Paragon Todas las herramientas gráficas descritas pueden ser puestas en marcha por el interface de usuario gráfico ParAide que también ayuda al usuario en la carga de aplicaciones paralelas y proporciona medios para abrir archivos de texto en un editor. Debugging.El IPD (Interactive Parallel Debugger) es un debugger para grandes programas paralelos escritos en Fortran, en C o en ensamblador. El IPD da contextos depurados de procesos extendidos a través de múltiples nodos. Tiene un mecanismo de reducción de datos y facilidades para reconocer estructuras de paso de mensajes. Se pueden poner breakpoints en alguno o todos los procesos. Una versión superior, la XIPD soporta un interface de usuario gráfico basado en Motif. XIPD proporciona continuas actualizaciones del estado del nodo, 20 INTEL PARAGON que indica que rutinas están siendo actualmente ejecutadas, y observa en que punto de la ejecución se encuentra el código. Análisis del funcionamiento.Las herramientas ‘prof y gprof ‘, que son versiones especiales del perfilador UNIX para el procesador de Intel i860, se pueden utilizar para analizar un programa. Durante la ejecución de un programa, el IPD puede reunir perfiles de datos de todos los nodos. Estos se presentan en tablas y proporcionan al usuario información sobre el número de llamadas a subrutinas y y el tiempo de ejecución de esas rutinas. ‘Prof ‘ produce un perfil de ejecución simple, mientras que ‘gprof ‘ adicionalmente produce una llamada gráfica y un ciclo listado. Para controlar el funcionamiento del sistema Paragon Intel SSD ha desarrollado el SPV (System Performance Visualization Tool). Permite al usuario ver las luces del panel frontal de Paragon en su estación de trabajo y obtener información sobre la CPU, la malla y la utilización del bus de memoria. El controlador de funcionamiento del hardware RPM en cada nodo de cómputo reúne información de la malla y del bus de memoria, mientras que el Mach Kernel reúne información del tiempo desocupado de la CPU, del tanto por ciento de página defectuosa, etc. Estos datos son enviados al SPV cada segundo. La transferencia de datos se optimiza utilizando una estructura en árbol lógica. El SPV envía este dato a todos los clientes del SPV en curso en el Paragon nativo o en una estación de trabajo remota. Para el software, Paragon ofrece una herramienta construida sobre el ParaGraph Display Sistem desarrollado en el Oak Ridge National Laboratory. Este sistema presenta una animación de la ejecución de las aplicaciones paralelas derivada de la información recogida durante la ejecución del programa. En suma, el usuario puede solicitar resúmenes gráficos y análisis estadísticos del comportamiento del programa completo en una variedad de formatos de visualización. Utilidades.Está disponible en Paragon la utilidad ‘pmake’. El comando pmake actualiza múltiples archivos target en paralelo. La ejecución paralela puede suceder en la partición de servicio o en la de cálculo. En la partición de servicio, pmake depende de la marcha de un proceso y del balance de carga para asegurar una ejecución paralela eficiente. En la partición de cálculo, pmake coloca comandos en los nodos disponibles dentro de una partición y los ejecuta como una aplicación paralela. 21 INTEL PARAGON 4.5. Librerías matemáticas optimizadas: Para hacer más fácil el proceso de llevar software al sistema Paragon y para proporcionar medios de explotar el poder de cálculo de la máquina, Intel SSD ofrece varias librerías de rutinas matemáticas, a la vez que librerías de nodos con rutinas secuenciales y librerías paralelas. Librerías de nodos.Como el compilador Fortran no siempre genera el código que ejecutan la mayoría de los procesadores i860, es obligatorio para alcanzar un elevado funcionamiento del nodo aplicar rutinas de librerías optimizadas, al menos para los kernels (núcleos) matemáticos de las aplicaciones. La principal librería para este propósito es la Basic Math Library. Contiene las BLAS (Basic Linear Algebra Subroutines) y también varias rutinas FFT y soluciones para sistemas lineales tridiagonales y pentadiagonales. La BML forma la base para otras librerías tales como la librería comercial NAG o la LAPACK que contiene rutinas para la solución de sistemas lineales densos. Otra puede ser la SEGlib (Signal Processing Library). Librerías paralelas.Intel SSD ha desarrollado el paquete de software ProSolver para la solución de grandes sistemas de ecuaciones lineales. Las matrices se pueden almacenar en un disco o en memoria local. Hay tres productos distintos: -ProSolver-DES, que aplica un método directo a matrices densas. -ProSolver-SES, para matrices escasas. -ProSolver-IES, que es una herramienta iterativa para matrices escasas generales. Hay una creciente colección de software matemático desarrollado para sistemas iPSC y Paragon. 22 INTEL PARAGON 4.6. Herramientas de visualización: El sistema Paragon proporciona varios niveles de soporte para red transparente, visualización cliente/servidor. El sistema X-Window System X-11 , PEX y Motif están incluidos en el software del sistema. Estas herramientas permiten al cliente hacer aplicaciones para ejecutarlas en el sistema Paragon y llevar directamente su salida a estaciones de trabajo gráficas. 23 INTEL PARAGON BIBLIOGRAFIA www.cad.ornl.gov www.sandia.gov/ASCI/Red www-rcd.cc.purdue.edu/Paragon/quick-start.html www.jota.sm.luth.se/~d92-fsm/smd053/termpaper.html www.microsoft.com/industry/docman/press/press.stm www.developer.intel.com/design www.cica.indiana.edu/iu-hpc www.ssd.intel.com/isng/sigs/Paragon.html www.sdsc.edu/sdscwire/v3.15/para-gone.html 24