Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Parte 2.- SISTEMAS PARALELOS Tema 4.- INTRODUCCION A LAS ARQUITECTURAS PARALELAS. Anexo 4.- Multiprocesadores y Máquinas Paralelas INDICE Capitulo 4.1.- Definiciones y conceptos básicos ................................................................................................................... 2 Conceptos de multiprocesamiento y de paralelismo explícito ........................................................................................... 2 Concepto de multiprocesamiento: los multiprocesadores. ............................................................................................. 2 Concepto de paralelismo explícito: las máquinas paralelas. .......................................................................................... 2 Relaciones entre diferentes conceptos ............................................................................................................................... 3 Paralelismo explícito y formas implícitas de paralelismo.............................................................................................. 3 Multiprocesamiento y multiprogramación. .................................................................................................................... 3 Multiprocesamiento y simultaneidad de entradas-salidas. ............................................................................................. 3 Multiprocesamiento y multiprocesadores. ..................................................................................................................... 3 Multiprocesadores y multioperadores............................................................................................................................ 3 Multiprocesadores y multicalculadores.......................................................................................................................... 4 Resumen sobre las estructuras de alta velocidad. .......................................................................................................... 4 Capitulo 4.2.- Multiprocesadores........................................................................................................................................... 5 Las diversas clases de multiprocesadores .......................................................................................................................... 5 Sistemas de procesadores idénticos. .............................................................................................................................. 5 Sistemas de procesadores periféricos especializados..................................................................................................... 5 Multiprocesadores modulares descompuestos. .............................................................................................................. 5 Problemas generales de los multiprocesadores .................................................................................................................. 6 Aumento de la eficacia................................................................................................................................................... 6 Aumento de la disponibilidad. ....................................................................................................................................... 6 Problemas de interconexiones........................................................................................................................................ 6 Comunicaciones entre procesadores. ............................................................................................................................. 6 Sistemas de multiunidades centrales.................................................................................................................................. 7 Interconexiones entre procesadores y memoria central. ................................................................................................ 7 Intercomunicaciones a través de la memoria. ................................................................................................................ 8 Interconexiones entre procesadores y canales. .............................................................................................................. 9 Los rendimientos.......................................................................................................................................................... 11 Partición y reconfiguración.......................................................................................................................................... 12 Multiprocesador por compartición de los circuitos de una unidad central ...................................................................... 12 Sistemas con procesadores especializados....................................................................................................................... 13 Multiprocesadores modulares. ......................................................................................................................................... 15 Multiprocesadores modulares descompuestos ................................................................................................................. 15 Sistemas de elevados rendimiento y disponibilidad..................................................................................................... 16 Sistemas de muy elevada disponibilidad...................................................................................................................... 18 Capitulo 4.3.- Máquinas de paralelismo explícito ............................................................................................................... 19 Máquinas de programas en malla..................................................................................................................................... 19 Máquinas celulares .......................................................................................................................................................... 20 La máquina de Solomon .............................................................................................................................................. 20 La máquina de Holland................................................................................................................................................ 20 La organización Solomon. ........................................................................................................................................... 20 ILLIAC IV. .................................................................................................................................................................. 21 El futuro de las máquinas celulares.................................................................................................................................. 23 ETSII – Dpto. Tecnología Electrónica. Página: 1 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Capitulo 4.1.- Definiciones y conceptos básicos Resulta muy difícil extraer, del movimiento de ideas concernientes a las máquinas con varios procesadores, una visión de síntesis sucinta y organizada. Por ello, no debe considerarse la siguiente clasificación como otra cosa que un ensayo de presentación, tan lógico como es posible hoy día, de los elementos que creemos más importantes dentro de un tema tan vasto y en plena evolución. Conceptos de multiprocesamiento y de paralelismo explícito Puede primeramente intentar definirse dos conceptos básicos, que permiten separar los computadores objeto de este capítulo en dos categorías. Son: Concepto de multiprocesamiento: los multiprocesadores. Se define generalmente el multiprocesamiento como el uso, en un mismo computador, de varias unidades centrales operando simultáneamente sobre programas o trozos de programas diferentes. Esta definición liga la noción de multiprocesamiento a la de multiprocesador. Un multiprocesador es un sistema informático en el que varias unidades centrales funcionan en paralelo, compartiendo un mismo conjunto de memorias y unidades periféricas. El término "unidad central", mal adaptado a un contexto en el que hay varias, puede abandonarse aquí en beneficio del término "procesador" Concepto de paralelismo explícito: las máquinas paralelas. Puede definirse el paralelismo explícito como la posibilidad dada al programador de hacer ejecutar explícitamente en paralelo varios tratamientos dependientes unos de otros. El desarrollo, bajo el gobierno de una única unidad de control, de un mismo programa en varios operadores aritméticos, operando cada uno sobre un juego propio de datos, representa un caso típico de paralelismo explícito, pero pueden exhibirse otros muchos ejemplos. Designaremos con el nombre de máquinas paralelas a los ordenadores que, de una u otra forma, han sido concebidos para responder a problemas de paralelismo explícito. Los diferentes tratamientos, ejecutados simultáneamente en diferentes unidades de un multiprocesador o de una máquina paralela, se suelen denominar procesos, definiéndose intuitivamente un proceso como un programa en curso de ejecución. Cuando un programa está siendo ejecutado simultáneamente en n unidades diferentes, por cuenta de distintos usuarios, hay n procesos correspondientes a este solo programa. ETSII – Dpto. Tecnología Electrónica. Página: 2 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Relaciones entre diferentes conceptos Con objeto de precisar estas definiciones, es necesario comparar estos nuevos conceptos entre sí, igual que con ciertas nociones introducidas anteriormente. Paralelismo explícito y formas implícitas de paralelismo. Existe paralelismo explícito cuando el programador designa explícitamente qué tratamientos deben ejecutarse en paralelo. Generalmente, el paralelismo explícito supone un cierto grado de sincronización entre los procesos en simultaneidad de ejecución. Puede denominarse con el término general de paralelismo implícito a todos los tipos de paralelismo que no son explícitamente previstos por el programador. Su causa puede, ser el azar, como sucede en el multiprocesamiento, donde los programas lanzados en diferentes procesadores dependen de su orden de llegada a la cola de espera. También podría deberse a una particularidad del hardware, como ocurre en las máquinas pipe-line o de operadores aritméticos paralelos, donde el programador no tiene por qué saber que varias instrucciones de su programa se ejecutan con una cierta simultaneidad. Multiprocesamiento y multiprogramación. Ambos conceptos se diferencian netamente entre sí: • La multiprogramación consiste, recordémoslo, en hacer residir en memoria central varios programas que son ejecutados de manera temporalmente imbricada por una misma unidad central, pasando de un programa a otro gracias al mecanismo de las interrupciones. • El multiprocesamiento consiste en hacer trabajar simultáneamente a varias unidades centrales, que comparten una memoria común. • Existen soluciones intermedias; tal es el caso de la compartición de los circuitos de una única unidad central por varios procesadores reducidos a sus juegos de registros, donde la unidad central concede sucesivamente a cada procesador un ciclo de máquina o el tiempo para ejecutar una instrucción. Multiprocesamiento y simultaneidad de entradas-salidas. Aunque en cierta manera los fenómenos sean de la misma naturaleza, el término "multiprocesamiento" no se utiliza generalmente para designar la simultaneidad de funcionamiento entre unidad central y canal, salvo quizá en determinados sistemas en que las entradas-salidas son gestionadas por procesadores programados. Multiprocesamiento y multiprocesadores. Nuestra primera definición ligaba el multiprocesamiento a la noción de multiprocesador. Es importante hacer algunas reservas al respecto. En primer lugar, las máquinas multiprocesadores no siempre han sido concebidas para trabajar en multiprocesamiento. Tal es el caso de los ordenadores embarcados sobre satélites, para los que la organización como multiprocesadores se debe absolutamente a la búsqueda de una excelente disponibilidad: los procesadores se reemplazan al fallar uno de ellos, pero no trabajan en paralelo. Opuestamente, el multiprocesamiento no implica a la fuerza sistemas de varias unidades centrales completas, como prueba el ejemplo de la compartición de los circuitos de una unidad central por varios procesadores, reducidos a sus juegos de registros. Multiprocesadores y multioperadores. Es importante no confundir los multiprocesadores, considerados como máquinas de multiprocesamiento, y los multioperadores, término que puede designar a máquinas formadas por una única unidad de instrucción y por varios operadores aritméticos, incluso por varias unidades aritméticas y lógicas completas, trabajando con un cierto grado de paralelismo bajo su control. En un sentido estricto, no hay multiprocesamiento y multiprocesador más que cuando varias unidades de instrucción trabajan en paralelo. ETSII – Dpto. Tecnología Electrónica. Página: 3 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Multiprocesadores y multicalculadores. Numerosos sistemas informáticos ponen en juego varios calculadores interconectados. En el terreno del cálculo científico, por ejemplo, se utilizan, a menudo, sistemas de dos máquinas interconectadas, una máquina potente para el procesamiento de los lotes de trabajos y otra, menos potente, llamada máquina frontal, para gestionar las entradas-salidas y preparar las colas de espera de trabajos para la máquina potente. El enlace entre ambos computadores se realiza por intermedio de discos conectados a la vez a dos canales o de una conexión canal-canal, aunque cada uno posee su memoria central y sus propios canales. Diremos que se trata de un sistema multicalculador, ya que el sistema multiprocesador implica la existencia de una memoria central común, por lo menos. Resumen sobre las estructuras de alta velocidad. Las principales ideas recogidas acerca de la búsqueda de altas velocidades quedan resumidas en los esquemas. Este intento de clasificación de los tipos de paralelismo no excluye su superposición en una misma máquina. La estructura pipe-line del primer esquema puede construirse con ayuda de procesadores idénticos, especializando a cada uno sucesivamente mediante microprogramas, el primero en la búsqueda de las instrucciones, el segundo en su decodificación, el tercero en los cálculos de dirección, etc. La estructura multiprocesador del tercer esquema puede componerse a base de procesadores pipe-Iine en paralelo. La estructura de paralelismo explícito del último esquema no excluye que ciertos procesadores que no son utilizados por el programa concebido para dicho paralelismo, puedan trabajar en multiprocesamiento sobre otros programas independientes. ETSII – Dpto. Tecnología Electrónica. Página: 4 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Capitulo 4.2.- Multiprocesadores Agrupamos en este parágrafo, por un lado las máquinas operando en multiproceso, por otro, diversos computadores cuyo esquema los emparienta con los multiprocesadores. Las diversas clases de multiprocesadores Sistemas de procesadores idénticos. Algunos los designan bajo el término de multiunidad central, otros les reservan el de multiprocesador, en exclusiva. Están constituidos por varias unidades centrales completas del mismo tipo, compartiendo la memoria central y en general, las unidades periféricas. Corresponden perfectamente a la primera definición que se ha dado de multiprocesamiento. Sistemas de procesadores periféricos especializados. La memoria central se encuentra compartida por uno o varios procesadores principales encargados del procesamiento de los lotes de trabajos y por un cierto número de procesadores especializados (por hardware, por software o por firmware) en determinados trabajos: ¾ gestión del conjunto de la máquina (sistema operativo), ¾ gestión de las entradas-salidas, control de los periféricos, ¾ compilación ... El ejemplo típico es el del CDC 6600, que ya hemos estudiado como potente monoprocesador. Multiprocesadores modulares descompuestos. Hasta aquí cada procesador del multiprocesador constituía un todo, con su unidad de instrucción y sus unidades aritméticas y lógicas. Es probable que en el futuro se desarrollen arquitecturas en las que un conjunto de procesadores aritméticos y lógicos será puesto en común bajo distintas unidades de instrucción. Tal tipo de estructura se denominará, a falta quizá de mejor fórmula, multiprocesador modular descompuesto, o multiprocesador virtual. ETSII – Dpto. Tecnología Electrónica. Página: 5 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Problemas generales de los multiprocesadores La elección de una solución multiprocesador puede responder a dos categorías de motivaciones: • aumento de la eficacia y • aumento de la disponibilidad. Como contrapartida de estas ventajas, plantea dificultades de comunicación y de interconexión. Aumento de la eficacia. Se puede conseguir duplicando, triplicando, o cuadruplicando el procesador central, lo que conduce a una solución del tipo de multiunidades centrales, o aliviando al procesador central de ciertos trabajos para los que se adapta mal, lo que conduce a una solución con procesadores periféricos especializados. Es de observar que la duplicación del procesador central no implica estrictamente una duplicación de la potencia, habida cuenta de los conflictos de acceso a los elementos comunes. Aumento de la disponibilidad. Proviene de que en un sistema multiprocesador puede trabajarse con configuración reducida: si un procesador se avería, se separa del servicio y se continúa operando, sobre el resto del sistema, con eficacia degradada. Dicha degradación será tanto menor cuanto menos importante sea la unidad separada, lo que representa un punto a favor de los multiprocesadores modulares. La propiedad de poder separar del servicio a una unidad supone la existencia de dispositivos de detección de averías y de reconfiguración. Esta última operación lleva a menudo a particionar el multiprocesador en dos elementos funcionalmente completos (es decir, compuestos de una memoria, de un procesador central, de un elemento de entrada- salida), el primero comprendiendo al módulo averiado y adoptando la configuración mínima necesaria para la reparación, el segundo continuando el trabajo a rendimiento restringido. Las aplicaciones que justifiquen una disponibilidad muy elevada, como la seguridad de instalaciones complejas o peligrosas, el control de aeropuertos, etc., o que no permiten reparación manual, como ocurre en el dominio espacial, exigen dispositivos automáticos de detección de averías y de reconfiguración. Problemas de interconexiones. Se presenta entre los procesadores de tratamiento o de entrada-salida, por un lado, y los bloques de memoria, por otro. Comunicaciones entre procesadores. Responden a dos clases de necesidades: • los procesadores pueden necesitar prevenirse mutuamente de ciertos acontecimientos, en cuyo caso se tendrán interrupciones de procesador a procesador; • los procesadores pueden necesitar transmitirse informaciones más elaboradas, lo que se materializará generalmente a través de la memoria central común. En los procesadores modulares, las transmisiones de órdenes o de operandos de los procesadores de instrucciones a los aritméticos correrán a cargo de los buses de intercomunicación. ETSII – Dpto. Tecnología Electrónica. Página: 6 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Sistemas de multiunidades centrales Con el fin de cubrir una gama suficiente de necesidades y adaptarse sin demasiadas dificultades a la evolución siempre creciente de estas necesidades, los constructores de la tercera generación han respondido por dos tipos de soluciones: • la gama compatible de máquinas, adaptable mediante cambio estándar de la unidad central, y • la solución multiprocesador, adaptable mediante adjunción de una o más unidades centrales. Uno de los primeros parámetros por determinar es el número máximo de procesadores que es razonable prever en un sistema. Además de las consideraciones técnicas que veremos a continuación, es posible hacerse una primera idea comparando las soluciones "gama compatible" y "multiprocesador". Grosso modo, las gamas compatibles existentes, del género IBM 360 o similar, admiten un factor de potencia generalmente ligeramente por encima del doble, cuando se pasa al modelo de número inmediatamente superior. Si se desea obtener una progresión parecida en solución multiprocesador, es necesario pasar de una máquina monoprocesador a una máquina de dos procesadores, después de cuatro, después de ocho, después de dieciséis, etc. Cuando n es elevado, parece más económico sustituir una unidad central por otra n veces más potente, que alinear unidades centrales del primer tipo. Por ello, en la práctica, se dan casos de dos o cuatro procesadores como configuración máxima (excepcionalmente de ocho procesadores en el Burroughs B 7700, posibilidad que, además, tiene más bien carácter teórico). A fin de cubrir un amplío abanico de posibilidades, los constructores que optan por la solución multiprocesador le superponen la solución gama compatible, con un número más reducido de modelos (como por ejemplo, la gama GE 600 [615, 625, 635, 655 ] donde cada modelo existe en las versiones mono-, bi-, trio ó cuatriprocesador). Un multiprocesador del tipo de multiunidad central consta de varios procesadores de tratamiento, de una memoria central generalmente dividida en bloques independientes, de canales simples o multiplezados. Vamos a analizar sucesivamente los diferentes problemas originados por la arquitectura de estos computadores. Interconexiones entre procesadores y memoria central. El objetivo es enlazar cada procesador y cada canal a cada bloque de memoria, de forma que, en cada instante, pueda establecerse el mayor número posible de comunicaciones. Se dan dos grandes tipos de soluciones. Interconexión por líneas omnibus Estas salen de los procesadores y transmiten las informaciones simultáneamente a cada uno de los bancos de memoria, que se conectan cuando reconocen su propia dirección. Cada banco posee tantos muelles de acceso como procesadores existan. Cuando se produce conflicto los muelles memorizan las demandas hasta que puedan ser atendidas. ETSII – Dpto. Tecnología Electrónica. Página: 7 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Interconexión matricial Una matriz celular de interconexión permite relacionar cada procesador con el bloque solicitado de memoria, en la medida que esto no cause conflicto. Las ramificaciones pertinentes son gobernadas por un circuito de control, que recibe las demandas y las direcciones de bancos de memoria. Intercomunicaciones a través de la memoria. Los diferentes procesadores pueden, comunicarse entre sí por intermedio de la memoria central. Debe utilizarse esta técnica con precaución, so pena de arriesgarse a bloquear el sistema, como lo prueba el siguiente ejemplo de la figura: La memoria contiene una tabla de las direcciones de los trabajos que deben ejecutar los distintos procesadores. Cuando el procesador A ha concluido un trabajo, lee el puntero de tabla que le guiará hacia el primer trabajo, rescribiéndolo tras haberlo incrementado en 1, de suerte que el procesador B acceda a continuación a un trabajo sucesivo. Normalmente, esta operación se realiza en tres instrucciones: ¾ lectura de puntero, ¾ incrementación de puntero, ¾ reescritura de puntero, lo que deja al procesador B la posibilidad de acudir eventualmente a leer el puntero antes de que éste haya sido modificado. En tal circunstancia ambos procesadores A y B ejecutarán simultáneamente el mismo trabajo ¡con todos los conflictos que dicha situación pueda acarrear! Para evitar esta, clase de circunstancia, poseen los multiprocesadores una instrucción especial, generalmente del tipo lee y posiciona que, en un solo ciclo de memoria, efectúa una lectura con carga de registro y una escritura poniendo a 1 la célula de memoria leída. Añadiendo un indicador, normalmente puesto a cero. Cuando el procesador A termine un trabajo, efectúa la instrucción lee y posiciona sobre el indicador, lo que da a este último el valor 1, que será considerado por el resto de procesadores como un bloqueo. A continuación, el procesador A analiza el valor leído. ETSII – Dpto. Tecnología Electrónica. Página: 8 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Si el indicador valía 1, es que otro procesador había bloqueado el acceso, por consiguiente se volverá a la instrucción lee y posiciona. Si el indicador valía 0, tiene todo su tiempo para leer el puntero de la tabla de trabajos e incrementarlo, puesto que acaba de bloquear el acceso por parte de otros procesadores. Terminadas estas operaciones, el procesador A desbloqueará poniendo el indicador de nuevo a cero. Interconexiones entre procesadores y canales. Este punto es capital pues condiciona todo el funcionamiento del sistema operativo. Describiremos tres soluciones, muy significativas en cuanto a una evolución tendente a la banalización de las funciones de los procesadores y de los canales. • En la primera, inspirada en el HoneyweIl H 632, cada procesador posee su canal en propiedad; • En la segunda, inspirada en la serie GE 600, los canales están banalizados, pero un solo procesador gestiona las entradas-salidas de todos los programas; • En la tercera, basada en el IRIS 80 de CII, están banalizados tanto los procesadores como los canales. Solución con procesadores y canales acoplados de dos en dos. Cada procesador posee su propio canal, por lo cual ejecuta el sistema operativo para todo lo que le concierne. No recibe interrupciones de entrada-salida más que de su canal y no envía informaciones de control más que a su canal. Estas últimas informaciones, así como las de estado de programa y de canal, son almacenadas en una memoria local común. Con esta disposición es posible cablear los dispositivos de interrupción de forma rigurosamente, idéntica en los diferentes procesadores, ya que se refieren a memorias locales y no a diferentes direcciones de la memoria central común. En el plano de las entradas-salidas, un sistema de este estilo se parece más a un sistema multicalculador, pues el aspecto multiprocesador se reduce a la compartición de la memoria central. ETSII – Dpto. Tecnología Electrónica. Página: 9 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Solución con un procesador maestro Un procesador es maestro, los otros siervos. Se quiere dar a entender con esto que el procesador maestro gestiona el sistema de explotación global en cuanto al conjunto de la máquina, mientras que los procesadores siervos no gestionan más que los sistemas operativos de nivel local. Estos últimos se limitan prácticamente a encargarse de las desviaciones por causa de error (división por cero, por ejemplo). El sistema global se encarga de la gestión de las entradas-salidas y del encadenamiento de trabajos. A este fin, el procesador maestro recibe todas las interrupciones procedentes de los procesadores siervos (y de sí mismo), lanza las operaciones de entrada-salida en los canales de los que recibe asimismo todas las interrupciones, gobierna los cambios de tarea en los procesadores siervos. El sistema operativo no consume más que una parte del tiempo del procesador maestro. El resto lo dedica éste a participar, como los demás procesadores, en la ejecución de trabajos. Solución con procesadores y canales banalizados. Los distintos procesadores están totalmente banalizados, pudiendo cada uno de ellos ejecutar todos los módulos del sistema operativo. ETSII – Dpto. Tecnología Electrónica. Página: 10 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Se consigue tal nivel de banalización gracias a una unidad de interrupción que agrupa al conjunto de las interrupciones provenientes de los procesadores y canales (a excepción de las desviaciones generadas ante errores de programas, específicas de los diferentes procesadores). Así, cuando sobreviene una interrupción, se compara su grado de prioridad con el del programa de menor prioridad entre los que están ejecutándose en los procesadores. Si la prioridad de la interrupción es superior a la de este programa, el procesador que ejecuta este último es interrumpido para tomar a su cargo el programa asociado a la interrupción; en casó contrario, se mantiene a la interrupción en régimen de espera. Entonces, un sistema de cuatro procesadores tiene siempre en activo a los cuatro programas más prioritarios. Un mismo programa puede, mediante el mecanismo de las interrupciones, ver iniciada su ejecución en un procesador, interrumpida después por un programa de mayor prioridad, reanudada más tarde en otro procesador que acaba de concluir un trabajo. El sistema operativo ya no es exclusivo dominio de un determinado procesador. Está escrito con técnica reapelable y, excepto ciertos bloqueos, puede, cuando se presente la circunstancia, ser tratado simultáneamente por varios procesadores. Los rendimientos. Si no se considera más que la potencia pura de cálculo, añadir un (n + 1)-simo procesador no aumenta la potencia en la relación (n + 1) / n, sino menos aunque no sea más que por causa de las esperas en los conflictos de acceso a memoria. Se buscará obtener el mejor compromiso posible entre: ¾ el número de procesadores, ¾ la capacidad de memoria central, ¾ las capacidades, los tiempos de acceso y las velocidades de transferencia de las memorias auxiliares, ¾ los rendimientos de los periféricos de entrada-salida y ¾ el número de canales simples y multiplexados capaces de gestionar estas memorias auxiliares y estos periféricos. Es evidente que la adjunción de un procesador a un sistema cuyo cuello de botella se sitúa al nivel de las unidades periféricas sería perfectamente inútil. También, si se parte de un sistema correctamente equilibrado, la adjunción de un procesador debe ir acompañada con una ampliación de la capacidad de memoria y de la eficacia en las entradas-salidas. ETSII – Dpto. Tecnología Electrónica. Página: 11 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Partición y reconfiguración. Puede ser interesante particionar un sistema multiprocesador en dos subsistemas funcionalmente completos, para responder a dos clases de necesidades: (1) la guía y optimización de, procesos industriales, frente a los que una partición se ocupa de la escrutación de las medidas y de los estados, de la supervisión de las informaciones adquiridas, de las acciones de seguridad y de regulación, mientras que la otra ejecuta los cálculos de optimización, o, si fuera el caso, trabaja como centro de cálculo, aunque siempre dispuesta a relevar a la primera si cae en, avería; (2) en caso de avería, el funcionamiento en régimen reducido a través de una partición, mientras que la otra, todo lo pequeña que sea posible, si bien funcionalmente completa, permite la reparación de la unidad fallida que contiene. La posibilidad de particionar un sistema supone duplicar los buses de interconexión entre las diferentes unidades del sistema y, eventualmente, duplicar determinadas unidades, como por ejemplo la de interrupción. Es de observar que reconfigurar es tanto más fácil cuanto más acentuada sea la banalización de los componentes. Multiprocesador por compartición de los circuitos de una unidad central Los circuitos de una misma unidad central son compartidos por diferentes procesadores que, en la práctica, se reducen a un conjunto de registros. Los procesadores tienen rotativamente acceso a la unidad central, bien durante un ciclo de máquina, bien durante el tiempo de una instrucción. Un primer ejemplo nos lo brindan los 10 procesadores periféricos del CDC 6600, que comparten una unidad central a razón de un ciclo menor de 100 ns cada 10 ciclos, por cada procesador. Un segundo ejemplo lo encontramos en el HoneyweIl 8200, constituido por 16 procesadores reducidos a sus registros, que comparten los circuitos de una única unidad central. La memoria central puede contener hasta 16 programas distintos, cada uno asociado a un procesador. Un registro de actividad de 16 bits, un bit por procesador, indica el estado de actividad de cada procesador. La unidad central analiza circularmente este registro, bit por bit, y concede sucesivamente a cada procesador, cuyo bit de actividad valga 1, el tiempo necesario a la ejecución de una instrucción. Al sistema operativo incumbe gestionar el registro de actividad, teniendo en cuenta las respectivas prioridades de los diferentes programas (solamente se activan los programas más prioritarios). Estos esquemas evitan un cierto número de los problemas típicos en los multiprocesadores, puesto que en ellos los procesadores no trabajan en auténtico paralelismo. Así es, por ejemplo, como la instrucción de interbloqueo (lee y posiciona) puede ejecutarse sin inconveniente en varios ciclos, si la compartición del tiempo de la unidad central se efectúa sobre la base de la instrucción. ETSII – Dpto. Tecnología Electrónica. Página: 12 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Sistemas con procesadores especializados El caso típico es el del CDC 6600, compuesto por un procesador central y por diez procesadores periféricos, uno asignado en exclusiva al sistema operativo y los otros a las entradas-salidas. Además de la memoria central, a la que todos tienen acceso, cada procesador periférico posee una memoria de uso propio. Todas las comunicaciones entre procesadores se realizan por intermedio de las diferentes memorias, excluyendo el salto con cambio, que se asemeja a una interrupción cuyo objetivo es permitir al procesador periférico asignado al sistema operativo preservar el estado de programa del procesador central y activar un nuevo estado de programa; es importante mencionar que el salto con cambio no presenta utilidad más que en multiprogramación. Vamos a mostrar cómo se ejecutan los intercambios de informaciones entre procesadores para la ejecución de una operación de entrada-salida, sobre un modelo muy simplificado constituido por un sólo procesador de entrada-salida en un contexto de monoprogramación. ETSII – Dpto. Tecnología Electrónica. Página: 13 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS El programa principal lanza una instrucción de entrada-salida. Para ello, posiciona en memoria central, en una posición conocida del sistema de explotación, un indicador IES (instrucción de entrada-salida) asociado a un puntero que designa una zona donde se describe la operación por realizar. El sistema operativo, ejecutado en un procesador periférico escruta periódicamente este indicador, de suerte que, cuando lo encuentra puesto, prepara la operación de entrada-salida un indicador DEJES (demanda de ejecución de-entrada-salida) al que adjunta el puntero precedente. El programa del procesador de entrada-salida escruta periódicamente este indicador, de suerte que, cuando lo encuentra puesto, ejecuta efectivamente la operación de entrada-salida solicitada. Terminada la operación, el procesador de entrada-salida posiciona el indicador FEJES (fin de ejecución de entrada-salida). Este, a su vez, es escrutado por el sistema operativo que, al encontrarlo puesto, transmite esta información posicionando el indicador FES (fin de entrada-salida) en un emplazamiento de la memoria central conocido de] programa en curso. Cuando éste quiere utilizar los resultados de la operación de entrada-salida, probará el indicador FES para saber si la operación ha terminado efectivamente. La descripción muy esquematizada de este mecanismo de intercambio de informaciones exclusivamente por la memoria es interesante por dos razones: (1) No es posible más que gracias a que los procesadores periféricos no ejecutan cada uno sino un solo programa que se bucla continuamente sobre sí mismo, lo que permite asegurar la correcta escrutación de los indicadores en el transcurso del tiempo, sin necesidad de implicar a un sistema de interrupción. (2) En ningún momento necesita una instrucción del tipo lee y posiciona ejecutándose en un ciclo, puesto que cada uno de los indicadores no puede ser puesto y leído más que por un solo procesador. Tal propiedad sigue siendo cierta cuando existen varios procesadores de entrada-salida, porque la distribución de los trabajos de entrada-salida se debe al procesador del sistema, que posiciona indicadores en las memorias propias de los procesadores de entrada-salida, no accediendo ninguno de ellos a la memoria común sino después de probar el indicador que le concierne. El empleo de procesadores especializados alrededor de máquinas muy potentes con organización pipe-Iine o paralela parece interesante en la medida que los procesadores centrales se adapten mal a tareas del tipo de sistema operativo, compilación, gestión de entradas-salidas, etc. En particular, la integración de un procesador especializado, cuya única función consista en hacer "girar" al sistema operativo (entendiendo con este término que el sistema de explotación se reduce a un bucle de programa que escruta cíclicamente los diversos elementos de la máquina sin hacer intervenir interrupciones), debería: (1) permitir ganar tiempo considerable en los ordenadores pipe-line descargándolos de los tratamientos de interrupciones que provocan importantes perturbaciones en su funcionamiento, y (2) simplificar notablemente las configuraciones de multiprocesamiento con varios grandes procesadores centrales. ETSII – Dpto. Tecnología Electrónica. Página: 14 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Multiprocesadores modulares. A diferencia de los multiprocesadores hasta aquí descritos, en los que las intervenciones entre procesadores, memorias y canales, tenían una estructura definida a priori, es posible concebir un "meccano", constituido por procesadores, bloques de memoria y unidades de entrada-salida, como "módulos" ensamblables sin limitación, a gusto del usuario. A este fin, cada módulo posee un cierto número de puntos de conexión, que le capacitan para ligarlo a otros tantos módulos a través de interfases estándar. Un ejemplo típico es el sistema Modular One de la Sociedad británica Computer Technology, con los siguientes módulos distintos: (1) procesadores análogos a las unidades centrales de los ordenadores utilizados en aplicaciones de control industrial; (2) bloques de memoria de núcleos, de diferentes capacidades o velocidades; (3) órganos periféricos, sobre todo memorias auxiliares. Cada procesador posee en exclusiva sus unidades periféricas de comunicación. Toda pareja de módulos pertenecientes al sistema puede ser directamente interconectada a través de la interfase estándar, practicándose los diálogos de acuerdo con el principio maestro-esclavo. Por consiguiente, pueden componerse configuraciones muy diversas, donde, por ejemplo, un determinado bloque de memoria se encuentre directamente conectado a este, ese o aquel procesador y a una memoria auxiliar, mientras que otro bloque de memoria no esté enlazado más que a un solo procesador pero pueda, a través de éste y por un sistema parecido al de robo de ciclo, intercambiar informaciones con una memoria auxiliar conectada a dicho procesador, etc. Cada procesador posee su propio sistema operativo, que gestiona sus propios trabajos y las relaciones con los módulos a los que está directamente conectado. Multiprocesadores modulares descompuestos Bajo esta apelación incluimos a los multiprocesadores formados, no por varios procesadores completos compartiendo una memoria y canales, sino por elementos de procesadores dialogando entre sí: unidades de instrucción, unidades aritméticas fijas, unidades aritméticas flotantes, unidades de cálculo de dirección, bloques de memoria, canales, etc. Este tipo de organización presenta dos ventajas en relación a los multiprocesadores modulares tradicionales: (1) mejor compromiso rendimiento-precio. En un multiprocesador tradicional, cada procesador debe poseer al menos un ejemplar de cada tipo de unidad, resultando alguno muy mal utilizado, mientras que en un sistema descompuesto, puede modularse el número de cada tipo de unidad en función de las necesidades globales; (2) mejor aptitud para funcionar en régimen de rendimiento reducido, ya que puede excluirse del servicio la unidad averiada, mientras que la avería de una unidad cualquiera en un sistema multiprocesador implica la del procesador que la contiene. Es imaginable que en los años próximos aparezcan multiprocesadores orientados en dos sentidos: el cálculo científico, donde se buscan, a la vez, rendimiento y disponibilidad, esta última considerada como un corolario de la primera, y el control de determinados tipos de procesos, especialmente en aplicaciones espaciales, donde se busca exclusivamente la más elevada disponibilidad. ETSII – Dpto. Tecnología Electrónica. Página: 15 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Sistemas de elevados rendimiento y disponibilidad. En esta categoría de sistemas, un cierto número de unidades de control comparten un cierto número de unidades aritméticas, pertenecientes a alguno de estos tipos: fija, flotante, doble longitud, etc. La innovación consiste en que la unidad de control pide servicios que pueden ser prestados por cualquiera de las unidades aritméticas del tipo solicitado, lo que no ocurría en la compartición de la memoria o de los canales, puesto que un procesador referenciaba a una célula de memoria o a un órgano periférico determinados. Por eso es preciso estudiar con particular atención el problema de las intercomunicaciones. Tomaremos como modelo un sistema con dos tipos de unidades, unas solicitantes de servicios Q1, Q2 ... a las que designaremos unidades interrogadoras y otras que pueden satisfacerlos R1, R2 ... a las que designaremos unidades interrogadas. Supondremos que, cuando una unidad interrogadora necesita un servicio, envía una pregunta a las unidades interrogadas y espera la respuesta de una unidad libre para conectarse a ella. Este proceso no está exento de problemas, puesto que se admite que varias unidades interrogadoras pueden emitir solicitudes simultáneamente. Sobre el modelo de la figura nada permite afirmar que las unidades R1 y R2, al recibir simultáneamente las demandas procedentes de Q1 y Q2, van a coordinarse para responder, una a Q1 la otra a Q2. Sí no se autoriza más que una respuesta por unidad, se corre el riesgo de que escojan la misma; si se autoriza varias respuestas por unidad, el problema de la elección cae sobre las unidades interrogadoras. Puede resolverse esta dificultad de tres formas: • bien interconectando las unidades interrogadoras de manera que no sea posible más que una pregunta a la vez; • bien interconectando las unidades interrogadas de suerte que sólo una entre todas reciba en cada momento una determinada pregunta; • bien instrumentando un dispositivo de control global que regule la asignación de las unidades interrogadas a las interrogadoras. Macnaughton ha propuesto una cuarta solución, interesante para exponerla aquí, porque proporciona un buen ejemplo de señales analógicas en un sistema digital. Cuando la unidad interrogada recibe varias solicitudes simultáneas no devuelve más que una respuesta. ETSII – Dpto. Tecnología Electrónica. Página: 16 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Esto puede ocasionar que una unidad interrogadora (Q1 reciba varias respuestas frente a una sola pregunta. De entre ellas escogerá una, lo que comunicará a la unidad correspondiente (R1) mediante una señal de aceptación, y emitirá una señal de rechazo dirigida a las otras unidades (R2) que respondieron, al objeto de liberarlas para que sigan respondiendo a otras solicitudes. Queda así resuelto el problema de atribuir una sola unidad interrogada a cada solicitud; sin embargo, queda incompletamente determinado puesto que las unidades interrogadas tienen que efectuar una elección, y ello puede ocasionar que una unidad interrogadora espera varias vueltas antes de verse atendida. De ahí la idea de asociar una prioridad a las preguntas, bajo forma de nivel analógico, siendo el valor de la señal analógica tanto mayor cuanto más elevada sea la prioridad. Con el fin de evitar que una pregunta de baja prioridad sea demasiado demorada, se hará evolucionar su grado de prioridad en el curso del tiempo. A las unidades interrogadas se les dota de una lógica celular, representada en la figura, que les permite analizar las señales y decidir en consecuencia la demanda que hay que servir prioritariamente. Esta clase de solución resuelve bien los problemas de reconfiguración, en la hipótesis de que cada unidad sea capaz de detectar sus propias averías. Cuando una unidad caiga en avería, automáticamente se pondrá fuera de circuito, no respondiendo más a las solicitudes: así se puede pasar "suavemente" al régimen reducido de funcionamiento, sin necesidad de mecanismo de reconfiguración. ETSII – Dpto. Tecnología Electrónica. Página: 17 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Sistemas de muy elevada disponibilidad. Es posible conseguir grados muy fuertes de disponibilidad a través de esfuerzos conjugados en los terrenos de la tecnología: fiabilidad, acondicionamiento, etc. y de la arquitectura lógica: introducción de materiales redundantes y de métodos de uso de la redundancia. la redundancia más sencilla consiste en duplicar el calculador, con la idea de que el segundo sustituya al primero si éste se averiase. Tal solución implica que el calculador sea capaz, por un lado de detectar sus propios fallos y, por otro, de señalarlos. En cuanto se satisface a la primera de las dos hipótesis, puede pasarse sin la segunda si el calculador de reserva ejecuta un programa que, periódicamente, pide al primer calculador de auscultarse y darle una respuesta: ante una respuesta favorable o en ausencia de respuesta, el segundo sustituye al primero. Queda el hecho de que un calculador pueda no detectar sus propios errores. Esta dificultad se salva haciendo ejecutar a las dos máquinas estrictamente el mismo programa y comparar periódicamente sus resultados. Ante la imposibilidad lógica de determinar cual es el calculador fallido, en caso de discordancia, se añade un tercero: es la técnica de control dos de tres. La organización modular aporta un notable progreso a este concepto de redundancia, pues una avería provoca la exclusión del servicio de un módulo y no de la totalidad de un calculador. De entre los numerosos estudios dedicados a este tema, citemos el concerniente al calculador modular, concebido por la NASA para misiones espaciales de larga duración. El número de unidades de cada tipo depende de la fiabilidad del tipo de unidad, a su vez directamente ligada a su grado de complejidad. El sistema está previsto para poder funcionar como "multiprocesador", donde cada procesador se ocupa de la misma tarea, con autocontrol de dos en tres, durante la fase de lanzamiento de la misión, fase durante la cual, los cálculos deben ser realizados demasiado rápidamente como para entretenerse en un eventual proceso de reconfiguración. Después, pasa a funcionamiento en régimen de "monoprocesador", quedando varias unidades en reserva. La unidad de reconfiguración prueba periódicamente el funcionamiento del monoprocesador activo. En caso de detección de avería, actúa sobre los conmutadores de interconexión hasta qué obtiene un nuevo procesador operativo. Dicha unidad contiene fundamentalmente el reloj central, los registros para los intercambios entre unidades de control en funcionamiento multiprocesador y el sistema de interrupción. Como en sí misma no se encuentra del todo al abrigo de averías, puede triplicarse su número, lo que permite un control en dos de tres de su propio funcionamiento. ETSII – Dpto. Tecnología Electrónica. Página: 18 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Capitulo 4.3.- Máquinas de paralelismo explícito Es posible citar numerosas publicaciones presentando ideas o incluso esquemas de máquinas paralelas, algunas realizaciones prototípicas en universidades, y verdaderamente poquísimas máquinas comercializadas. Hasta tal punto que nos vemos obligados, para ilustrar con un ejemplo esta última categoría, a resucitar el venerable ordenador Gamma 60 de la Compagnie des Machines Bull. Saltaremos después directamente sobre los ordenadores con muy alto grado de paralelismo que, con pocas excepciones, pueden asimilarse a máquinas celulares. El ejemplo más caracterizado es el sistema ILLIAC IV, una cuarta parte del cual está en curso de realización en la universidad de Illinois. Parece abrir una de las raras vías por donde puede conseguirse, si bien para cierta clase de problemas, ganar un orden de magnitud en rendimiento, con la misma tecnología, frente a los actuales ordenadores pipe-Iine. Máquinas de programas en malla El Gamma 60 era uno de los primerísimos grandes ordenadores de la segunda generación; permitía una forma de paralelismo al nivel de un solo programa, provisto de una estructura en malla. Por medio de las instrucciones especiales, podía el programador definir secuencias de instrucciones independientes, denominadas mallas de programa, susceptibles de ejecutarse en paralelo en diferentes procesadores especializados (aritmética fija, aritmética flotante, comparador y lógico, entrada- salida), así como los puntos de agrupamiento de las mallas, cuyo lanzamiento no se permitía hasta que no se habían concluido las distintas mallas ya lanzadas en paralelo. El distribuidor de instrucciones efectuaba una predecodificación para ramificar las instrucciones, pues algunas secuencias podían necesitar varios procesadores diferentes. La simultaneidad de las entradas-salidas se regía por el mismo principio. Este tipo de paralelismo se ha abandonado hoy día, al parecer por la razón fundamental de que es difícil definir, en un contexto de lenguajes evolucionados, procesos paralelos independientes que impliquen a procesadores diferentes. ETSII – Dpto. Tecnología Electrónica. Página: 19 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Máquinas celulares Permiten dar un paso importante dentro de la búsqueda de un elevado grado de paralelismo y, por tanto, de rendimiento. Se distinguen dos categorías de máquinas celulares: • las máquinas con control centralizado y • las máquinas con control distribuido. La máquina de Solomon Es el ejemplo típico de la primera categoría: una unidad centralizada de control decodifica toda instrucción que es ejecutada en paralelo y sobre datos diferentes en un gran número de procesadores aritméticos idénticos. Dicho con otras palabras, un solo flujo de instrucciones gobierna en paralelo a varios flujos de datos. La organización de Solomon parece llamada a un cierto porvenir, por lo cual nos extenderemos sobre ella en esta última parte del capítulo. La máquina de Holland Es el ejemplo típico de las máquinas con control distribuido. Cada célula consta de un procesador con sus elementos de control y sus elementos de cálculo. Se han estudiado varias formas de utilización: una línea de células contiene, por ejemplo, las diferentes instrucciones de una secuencia; las células pertinentes se activan sucesivamente unas a otras en el transcurso de la ejecución del programa, yendo a buscar los operandos o encargando operaciones aritméticas a otras células. La organización de Holland se ha propuesto con una finalidad más teórica que práctica, que consiste en ayudar a formalizar determinados conceptos de las teorías de autómatas, de la calculabilidad y de los procesos paralelos. Su utilización efectiva tropieza con grandes problemas: se necesita una cantidad muy fuerte de material que, incluso con un buen nivel de paralelismo, es pobremente empleada; además, resulta difícil definirle un lenguaje eficaz de mando. No insistiremos más sobre esta categoría de máquinas. La organización Solomon. Parte de dos ideas: (1) Una sola unidad de control decodifica las instrucciones que son ejecutadas simultáneamente por un gran número de unidades aritméticas, llamadas procesadores elementales (P.E.), sobre datos eventualmente distintos. Así, una sola corriente de instrucciones controla varias corrientes de datos. (2) Los procesadores elementales están interconectados según una organización matricial de dos dimensiones, al objeto de permitir ciertos intercambios de datos. Un ejemplo sencillo ilustrará mejor que largas explicaciones el interés de esta organización en lo que se refiere a los problemas de tipo matricial. ETSII – Dpto. Tecnología Electrónica. Página: 20 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Dados unos valores Ai , j asignados a los diferentes puntos de una matriz, se trata de calcular en cada punto la media M i , j de los valores asignados a los cuatro puntos que lo rodean. Suponiendo que cada procesador elemental trate un punto y que los valores Ai , j se encuentren inicialmente en un registro R1 el programa que calcula en el registro Ro la media buscada se escribe así: La instrucción 3., por ejemplo, se lee: para todos los procesadores elementales, añadir el contenido del registro R1 del procesador elemental sur al contenido del registro Ro y almacenar el resultado en el registro Ro. Por consiguiente, este programa se resuelve en cinco instrucciones, esto es, en el tiempo de cinco ciclos de memoria. Dejamos al lector el cuidado de escribir el mismo programa para ejecutarlo en Superabacus. Comprenderá que se necesitan unos cincuenta ciclos de memoria a cada pasada por el bucle de programa de cálculo de la media en un punto y, consecuentemente, del orden de 10.000 ciclos de memoria para una matriz de 16 x 16. Con ello es fácil de imaginar la potencia de la organización Solomon respecto a todos los problemas de tipo matricial, que son prácticamente todos aquellos que ponen en juego sistemas importantes de ecuaciones en derivadas parciales, en especial los modelos meteorológicos, ecológicos, económicos, sociológicos, etc. ILLIAC IV. Es una máquina del tipo Solomon. A los dos principios de base enunciados a propósito de las máquinas de este tipo, se añaden los dos siguientes: (1) las direcciones y datos comunes al conjunto de los procesadores elementales son gestionados por el control central; (2) un embrión de lógica local permite personalizar la ejecución de las instrucciones comunes en función de tests locales. Presentación general ETSII – Dpto. Tecnología Electrónica. Página: 21 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS El sistema consta, por un lado, de un calculador tradicional (un B6500) para gestionar las entradas-salidas, compilar, preparar los trabajos al ILLIAC IV, almacenarlos después en una memoria de masa, muy rápida y de gran eficacia y por otro lado, del ILLIAC IV propiamente dicho, formado por cuatro unidades de control, gobernando cada una 1 matriz de 8 X 8 procesadores elementales. Cada procesador elemental posee una memoria de 2048 palabras de 64 bits y realiza la suma y la multiplicación, respectivamente, en 240 ns y 400 ns con operandos de 64 bits, gracias a una estructura pipe-Iine de los operadores. Instrucciones y direccionamiento. La unidad de control busca las instrucciones, las decodifica y distribuye las microórdenes correspondientes, así como las señales de reloj, al conjunto de los procesadores elementales. El direccionamiento comprende dos indexaciones, una indexación global, que se efectúa al nivel de la unidad de control y una indexación local que permite personalizar el dato para cada procesador elemental. Cuando no hay indexación local, es la unidad de control quien va a buscar el dato a memoria y quien lo distribuye a los procesadores elementales. Esta técnica de doble indexación facilita el direccionamiento de las estructuras rnatriciales. Control local. Cada procesador elemental posee un biestable de estado, que puede adoptar dos posiciones: activo o inactivo. En estado inactivo, el procesador no ejecuta ninguna instrucción salida de la unidad de control (salvo una instrucción especial de reactivación). El biestable puede ser posicionado a partir de pruebas efectuadas al nivel del procesador elemental. Partición de los procesadores. Cada procesador elemental puede funcionar, bien como un procesador sobre 64 bits, bien como dos procesadores sobre 32 bits, bien como 8 procesadores sobre 8 bits. En caso de partición, los subprocesadores no son totalmente independientes porque poseen el mismo índice local. Partición de la matriz.. Existen 256 procesadores elementales, agrupados en cuatro sub-matrices de 64 procesadores. El sistema puede trabajar, o en 4 sub-matrices de 64 procesadores, o en 2 sub-matrices de 128 procesadores, o en una matriz de 256 procesadores. Esta forma de partición permite, de una parte, acomodarse a las dimensiones de los problemas por tratar, de otra continuar trabajando en caso de avería de una submatriz. ETSII – Dpto. Tecnología Electrónica. Página: 22 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Organización de la memoria No existe más que una sola memoria para una matriz de ILLIAC IV; es referenciada secuencialmente en el sentido horizontal desde las unidades de control y por zonas verticales desde los procesadores elementales, aunque cada uno sólo tiene acceso a su bloque de 2048 palabras. Esta estructura de memoria permite fácilmente el direccionamiento simultáneo de los sucesivos elementos de una matriz desde los procesadores elementales sucesivos, habida cuenta de la técnica de doble indexación mencionada más arriba. Interconexiones. Se interconectan los procesadores siguiendo una estructura matricial, cada uno de ellos comunicado con los cuatro que lo rodean. Pueden definirse las interconexiones al borde de las matrices mediante programa, de manera a adaptarse a la geometría del problema por resolver. Nótese que, una vez establecidas dichas interconexiones, es posible transmitir una información de un procesador cualquiera a otro a través, como máximo, de siete intercambios en una matriz 8 x 8. El futuro de las máquinas celulares. Parece que los futuros sistemas de muy elevada potencia se inspirarán, en parte de la arquitectura pipe-Iine, en parte de la arquitectura celular y quizá de una mezcla de ambas. Hemos visto el alto rendimiento que puede conseguirse con una organización celular de tipo Solomon en la solución de problemas muy específicos, que posibilitan utilizar óptimamente los intercambios de información entre procesadores. Aparte este caso muy particular, el ordenador puede funcionar como máquina paralela simple cuando sea necesario ejecutar una serie de operaciones idénticas, independientes unas de otras, sobre operandos organizados como vector, de suerte que los sucesivos operandos se encuentren todos en la misma dirección de las memorias, asociados a los diferentes procesadores elementales. Se observa que ésta es, con ligeras variantes de matiz, la condición para conseguir un funcionamiento muy bueno de las máquinas pipe-Iine, con la única diferencia que entonces los operandos sucesivos deben ser almacenados en bancos de memoria sucesivos. Prácticamente, estos géneros de tratamiento no se dan más que en los problemas de tipo matricial. Pero los problemas reales no siempre son de tipo matricial puro y no siempre es posible definir un algoritmo de este tipo para determinadas partes del problema que no lo son a priori. La consecuencia es que a lo largo de los correspondientes tratamientos, sólo uno de los procesadores elementales es utilizado (en una máquina pipe-Iine la mayoría de las secciones permanecerían inactivas). Por lo demás, tampoco siempre las estructuras matriciales por procesar presentan la dimensión exacta de la matriz de procesadores elementales, lo que lleva también a desperdiciar procesadores. ETSII – Dpto. Tecnología Electrónica. Página: 23 / 25 MSA Sistemas de Multiprocesamiento MULTIPROCESADORES Y MAQUINAS PARALELAS Se han propuesto diversas soluciones para mejor utilizar la potencia de una máquina celular. Citemos, esquematizándolo, algunas ideas basadas en el "Distributed Processor", propuesto por Koczela para las misiones de la NASA en los años 1980, pero que parecen asimismo muy interesantes para un ordenador científico de gran potencia, siempre que se fuera capaz de escribir su sistema operativo. Este multiprocesador distribuido se caracteriza porque reúne el control centralizado, según la organización Solomon y el control distribuído, no según la organización de Holland, sino al modo multiprocesador tradicional. Es también una máquina celular con interconexiones de vecindad para los intercambios de operandos entre células vecinas (la organización general no es ya matricial como en la máquina de Solomon). A este tipo de intercomunicación al nivel de los intercambios de datos se superpone otro tipo de intercomunicación: el bus intercelular, que transporta instrucciones, datos e informaciones de control. Contrariamente a la máquina de Solomon, no existe aquí unidad de control centralizada; cada célula dispone de su propia unidad de control, además de su unidad aritmética y de su memoria, y puede presentar varios estados de funcionamiento: (1) Estado de avería: la célula no responde a ninguna demanda. (2) Estado independiente: la célula funciona como un calculador autónomo, que va a buscar sus instrucciones a su memoria local. (3) Estado de control: en él, la célula desempeña el papel de unidad de control de la máquina de Solomon. Acude a buscar instrucciones a la memoria y las distribuye a las otras células a través del bus intercelular. (4) Estado dependiente: en primera aproximación, una célula en estado dependiente desempeña el papel de un procesador elemental de la máquina Solomon: recibe y ejecuta las instrucciones provenientes de la célula de control por el bus intercelular. La célula de control puede direccionar las células de dos maneras diferentes: por un direccionamiento global, que comprende varios niveles y al que responden todas las células en estado dependiente, correspondientes a cada nivel; por un direccionamiento personalizado, que permite acceder individualmente a cada célula, lo mismo si está en estado dependiente o independiente. Este último tipo de direccionamiento permite modificar el estado de las células. Una célula dependiente puede, por consiguiente, presentar dos estados: (1) un estado dependiente global, en el que la célula está al mismo nivel de direccionamiento que la secuencia de instrucciones enviada por la célula de control: ejecuta las instrucciones así recibidas. (2) un estado dependiente local, en el que la célula no está al mismo nivel de direccionamiento que la secuencia de instrucciones enviada por la célula de control. Puede trabajar con control local, como una célula independiente, pero comprobando continuamente que la célula de control no pasa a su propio nivel de direccionamiento, o que no la direcciona individualmente. El repertorio de instrucciones varía de acuerdo con el estado de la célula. La figura representa, de manera muy esquemática, la organización general de un multiprocesador distribuido. Consta de cuatro grupos de células, cada grupo con un máximo de una célula en el estado de control. Gracias al bus de intergrupos, varios grupos pueden trabajar con la misma célula de control. Parece que la transposición de estas ideas al diseño de potentes computadores científicos celulares debería permitir un buen uso del conjunto de los procesadores, puesto que aquellos que no trabajen en paralelismo explícito (estados de control o independiente) no quedarían inactivos, sino trabajando en paralelismo implícito (estado dependiente). Queda por saber si se será capaz de utilizar estas posibilidades. ETSII – Dpto. Tecnología Electrónica. Página: 24 / 25 MSA Sistemas de Multiprocesamiento ETSII – Dpto. Tecnología Electrónica. MULTIPROCESADORES Y MAQUINAS PARALELAS Página: 25 / 25 MSA