El procesador masivo paralelo Goodyear ( MPP ) fue una supercomputadora de procesamiento masivo paralelo construida por Goodyear Aerospace para el Centro de vuelo espacial Goddard de la NASA . Fue diseñada para ofrecer una enorme potencia computacional a un menor costo que otras arquitecturas de supercomputadoras existentes, mediante el uso de miles de elementos de procesamiento simples , en lugar de una o unas pocas CPU altamente complejas . El desarrollo del MPP comenzó alrededor de 1979; se entregó en mayo de 1983 y estuvo en uso general desde 1985 hasta 1991.
Se basaba en el procesador de matriz STARAN anterior de Goodyear , un ordenador con elementos de procesamiento (PE) de 1 bit y 4x256. El MPP era una matriz bidimensional de 128x128 de PE de 1 bit de ancho. En realidad, se configuraron 132x128 PE con una configuración de 4x128 añadida para tolerancia a fallos para sustituir hasta 4 filas (o columnas) de procesadores en presencia de problemas. Los PE funcionaban en modo de instrucción única, múltiples datos (SIMD): cada PE realizaba la misma operación simultáneamente, en diferentes elementos de datos, bajo el control de una unidad de control microprogramada.
Después de que el MPP se retirara en 1991, fue donado al Instituto Smithsoniano y ahora se encuentra en la colección del Centro Steven F. Udvar-Hazy del Museo Nacional del Aire y el Espacio . Fue reemplazado en Goddard por los ordenadores MasPar MP-1 y Cray T3D de paralelismo masivo.
El MPP fue desarrollado inicialmente para el análisis de imágenes satelitales a alta velocidad . En las primeras pruebas, fue capaz de extraer y separar diferentes áreas de uso del suelo en imágenes Landsat en 18 segundos, en comparación con las 7 horas que tardaba un DEC VAX-11/780 . [1]
Una vez que el sistema se puso en uso en producción, la Oficina de Ciencias Espaciales y Aplicaciones de la NASA solicitó propuestas a científicos de todo el país para probar e implementar una amplia gama de algoritmos computacionales en el MPP. Se aceptaron 40 proyectos para formar el "Grupo de Trabajo MPP"; los resultados de la mayoría de ellos se presentaron en el Primer Simposio sobre las Fronteras de la Computación Masivamente Paralela , en 1986.
Algunos ejemplos de aplicaciones que se hicieron del MPP son:
El hardware general del MPP constaba de la unidad de matriz, la unidad de control de matriz, la memoria de ensayo y el procesador host.
La unidad de matriz era el corazón del MPP, ya que se trataba de una matriz de 128x128 de 16.384 elementos de procesamiento. Cada PE estaba conectado a sus cuatro vecinos más cercanos: norte, sur, este y oeste. La matriz podía configurarse como un plano, un cilindro, una conexión en cadena o un toro. Los PE se implementaban en un chip LSI de silicio sobre zafiro personalizado que contenía ocho de los PE como una submatriz de 2x4. Cada uno de los PE tenía unidades aritméticas y lógicas, 35 registros de desplazamiento y 1024 bits de memoria de acceso aleatorio implementados con chips de memoria disponibles comercialmente. Los procesadores funcionaban en modo bit-slice y podían operar con longitudes variables de datos. La frecuencia de funcionamiento de la matriz era de 10 MHz. Los estados del bus de datos de los 16.384 PE se combinaron en un árbol de elementos lógicos o inclusivos cuya única salida se utilizó en la unidad de control de matriz para operaciones como la búsqueda del valor máximo o mínimo de una matriz en paralelo. Un registro en cada PE controlaba el enmascaramiento de las operaciones: las operaciones enmascaradas solo se realizaban en aquellos PE en los que se establecía este bit de registro.
La unidad de control de matriz (ACU) transmitía comandos y direcciones de memoria a todos los PE de la unidad de matriz y recibía bits de estado de la unidad de matriz. Realizaba operaciones de contabilidad, como control de bucles e invocación de subrutinas. El código del programa de aplicación se almacenaba en la memoria de la ACU; la ACU ejecutaba partes escalares del programa y luego ponía en cola instrucciones paralelas para la matriz. También controlaba el desplazamiento de datos entre los PE y entre la unidad de matriz y la memoria intermedia.
La memoria de almacenamiento temporal era un bloque de memoria de 32 MB para almacenar en búfer los datos de la unidad de matriz. Era útil porque los propios PE solo tenían un total de 2 MB de memoria (1024 bits por PE) y porque proporcionaba una mayor tasa de bits de comunicación que la conexión del procesador host (80 megabytes/segundo frente a 5 megabytes/segundo). La memoria de almacenamiento temporal también proporcionaba funciones de manipulación de datos, como "cambio de esquinas" (reorganización de datos orientados a bytes o palabras de la matriz) y acceso a la matriz multidimensional. Los datos se movían entre la memoria de almacenamiento temporal y la matriz a través de 128 líneas paralelas.
El procesador host era una computadora de interfaz que cargaba programas y datos en el MPP y proporcionaba herramientas de desarrollo de software y acceso en red al MPP. El procesador host original era un PDP-11 , que pronto fue reemplazado por un VAX-11/780 conectado al MPP por un canal DR-780. El VAX ejecutaba el sistema operativo VMS y estaba programado en MPP Pascal.
La velocidad de cálculo bruta para operaciones aritméticas básicas en el MPP fue la siguiente: