El SIMD de procesamiento paralelo se llama procesamiento de array . La figura muestra el procesador de array. Una cuadrícula bidimensional de elementos de procesamiento transmite un flujo de instrucciones desde un procesador de control central. A medida que se transmite cada instrucción, todos los elementos la ejecutan simultáneamente. Cada elemento de procesamiento está conectado a sus cuatro vecinos más cercanos para fines de intercambio de datos. Se pueden proporcionar conexiones alrededor del final tanto en las filas como en las columnas, pero no se muestran en la figura.
Es instructivo considerar un cálculo específico para comprender las capacidades de la arquitectura SIMD . Las cuadrículas de elementos de procesamiento se pueden utilizar para resolver problemas bidimensionales. Por ejemplo, si cada elemento de la cuadrícula representa un punto en el espacio, la array se puede usar para calcular la temperatura en puntos en el interior de un plano de conducción.
Suponga que los bordes del avión se mantienen a ciertas temperaturas. Una solución aproximada en puntos discretos representados por elementos de procesamiento es la siguiente. Los bordes exteriores se inicializan a una temperatura especificada. Todos los puntos internos son iniciales de algunos valores arbitrarios, no necesariamente iguales. Luego, las iteraciones se ejecutan en paralelo en cada elemento. Cada iteración implica calcular una mejor estimación de la temperatura en un punto promediando los valores actuales de sus cuatro vecinos más cercanos. Los procesos se detienen cuando las estimaciones ordinales están más cerca que alguna pequeña diferencia predeterminada.
La capacidad requerida en los procesadores de array para realizar dichos cálculos es bastante simple. Cada elemento debe poder intercambiar valores con cada uno de sus vecinos en los caminos que se muestran en la figura. Cada elemento de procesamiento tiene algunos registros y alguna memoria local para almacenar los datos. También tiene un registro, llamado registro de red, que se utiliza para facilitar el movimiento de valores de sus vecinos. El procesador central puede transmitir una instrucción para mover valores a través de la red, registrando un paso hacia arriba, hacia abajo, hacia la izquierda o hacia la derecha.
Cada elemento de procesamiento también tiene una ALU para ejecutar instrucciones aritméticas transmitidas por el procesador de control. Con estas características, una secuencia de instrucciones se puede transmitir repetidamente para implementar bucles iterativos. El procesador de control debe poder determinar que cada elemento del procesamiento ha desarrollado su propio componente de temperatura con la precisión requerida. Para ello, cada elemento pone a 1 el bit de estado interno para indicar esta condición. La interconexión de red incluye una función que permite que el controlador detecte que todos los bits de estado se han establecido al final de una iteración.
Los procesadores de array son máquinas altamente especializadas. Son problemas numéricos adecuados que se pueden expresar en formato matricial o vectorial. Cómo no son muy útiles para acelerar los cálculos generales.
Publicación traducida automáticamente
Artículo escrito por rajkumarupadhyay515 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA