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