Red de conocimiento informático - Conocimiento del nombre de dominio - Computación heterogénea de computación heterogénea

Computación heterogénea de computación heterogénea

La computación paralela realizada en sistemas informáticos heterogéneos a menudo se denomina computación heterogénea. La gente ha definido la computación heterogénea desde diferentes ángulos. Para resumir, damos la siguiente definición: La computación heterogénea es una forma especial de computación paralela y distribuida que puede utilizar una única computadora independiente que puede admitir computadoras SIMD y MIMD. un grupo de computadoras independientes interconectadas por una red de alta velocidad para completar tareas informáticas. Puede utilizar de manera coordinada máquinas con diferente rendimiento y arquitectura para satisfacer diferentes necesidades informáticas y permitir que el código (o segmentos de código) se ejecute de una manera que maximice el rendimiento general.

En resumen, la computación heterogénea ideal tiene los siguientes elementos:

(1) Los recursos informáticos que utiliza tienen múltiples tipos de capacidades informáticas, como simd, mimd, vectorial, escalar, dedicado, etc.; (2) necesita identificar el tipo de requisitos de paralelismo de cada subtarea en la tarea informática; (3) necesita permitir que los recursos informáticos con diferentes tipos de computación se coordinen entre sí; necesita ambos Para desarrollar el paralelismo en los problemas de aplicación, también debemos desarrollar la heterogeneidad en los problemas de aplicación, es decir, buscar la correspondencia entre el tipo informático del recurso informático y el tipo de tarea (o subtarea) que realiza (5; ) El objetivo final que se persigue es disponer del menor tiempo posible para la ejecución de las tareas informáticas.

Se puede ver que la tecnología informática heterogénea es el método que mejor combina el tipo de paralelismo de las tareas informáticas (tipo de código) con el tipo de informática que la máquina puede soportar eficazmente (es decir, capacidades de la máquina) y puede Aproveche mejor varias tecnologías informáticas paralelas y distribuidas para los recursos informáticos. 1. Sistemas informáticos heterogéneos.

Se compone principalmente de las siguientes tres partes: (1) Un grupo de máquinas heterogéneas. (2) Una red de alta velocidad que conecta máquinas heterogéneas. Puede ser una red mercantilizada o puede estar diseñada especialmente por el usuario. (3) Software de soporte informático heterogéneo correspondiente.

2. El principio básico de funcionamiento de la computación heterogénea.

Los requisitos informáticos heterogéneos se basan en la extracción de tipos de paralelismo de tareas informáticas, dividiendo segmentos de código del mismo tipo en la misma subtarea y luego asignando cada subtarea a la tarea más adecuada en función de diferentes tipos de paralelismo.Se ejecuta en los recursos informáticos que lo ejecutan para minimizar el tiempo total de ejecución de la tarea informática. El siguiente es un ejemplo sencillo para ilustrar el principio de funcionamiento básico de la informática heterogénea.

Supongamos que el tiempo para ejecutar una tarea informática determinada en una determinada computadora serie de referencia es ts, en el que los porcentajes de tiempo de ejecución ocupados por varias subtareas de vector, mimd, simd y sisd son del 30% respectivamente. , 36%, 24% y 10%. Suponiendo que las relaciones de aceleración de una máquina vectorial al ejecutar las diversas subtareas anteriores en relación con la máquina en serie de referencia son 30, 2, 8 y 1,25 respectivamente, entonces el tiempo total necesario para ejecutar esta tarea en la máquina vectorial es

tv=30%ts/336%ts/2+24%ts/8+10%ts/1.25=0.30ts,

Entonces la relación de aceleración correspondiente es sv=ts/tv= ts/ 0.3ts=3.33

Si la máquina vectorial anterior forma un sistema informático heterogéneo con otras máquinas mimd, máquinas simd y una estación de trabajo de alto rendimiento (tipo sisd), y suponga que la máquina mimd, máquina simd y ejecución de la estación de trabajo Las relaciones de aceleración de las subtareas coincidentes son 36, 24 y 10 respectivamente, entonces el tiempo requerido para ejecutar la misma tarea en el sistema informático heterogéneo se convierte en

thet=30%ts/336% ts /36+24%ts/24+10%ts/1tc

Donde tc es el tiempo de interacción entre máquinas. Suponiendo que toma 2%ts de tiempo, entonces thet=0.06ts, por lo tanto. la relación de aceleración correspondiente es shet=ts/0,06ts=16,67.

Como se puede ver en el ejemplo anterior, los sistemas informáticos heterogéneos pueden alcanzar relaciones de aceleración mucho más altas que los sistemas informáticos homogéneos. Esto se debe principalmente a que la aceleración en sistemas informáticos homogéneos solo se obtiene desarrollando paralelismo, mientras que la aceleración en sistemas informáticos heterogéneos se obtiene principalmente desarrollando heterogeneidad además del paralelismo (es decir, diferentes tipos de subtareas se combinan con el tipo correspondiente de recursos informáticos). ), aunque habrá una sobrecarga de interacción correspondiente en este momento. Cuanto menor sea la sobrecarga de interacción, más obvias serán las ventajas de la computación heterogénea.

Dependiendo de la forma en que proporciona diversidad de tipos de computación, la computación heterogénea se puede dividir en dos categorías: computación heterogénea de sistema (computación heterogénea de sistema shc) y computación heterogénea de red (computación heterogénea de red nhc). shc proporciona múltiples tipos de computación en forma de multiprocesadores de una sola máquina, mientras que nhc proporciona múltiples tipos de computación en forma de múltiples computadoras conectadas a la red.

Según las diferentes formas de realizar la heterogeneidad, es decir, heterogeneidad espacial o heterogeneidad temporal, shc y nhc se pueden dividir en dos categorías. shc se divide en dos categorías: modo de computación múltiple de una sola máquina y modo de computación híbrida de una sola máquina. El primero permite que las tareas se ejecuten en múltiples modos de computación al mismo tiempo, mientras que el segundo solo permite que las tareas se ejecuten en una sola computadora. modo al mismo tiempo, pero los cálculos se pueden realizar en diferentes momentos. Cambiar automáticamente de un modo a otro, como cambiar entre los modos simd y mimd. Un ejemplo de lo primero es la estructura del sistema de comprensión de imágenes (iua) desarrollada conjuntamente por el Laboratorio de Investigación Hughes y el MIT*** en los Estados Unidos. Es una estructura de sistema heterogénea de múltiples capas, cada capa está diseñada de acuerdo con los requisitos. Nivel de comprensión de la imagen. La capa inferior es la red de cadena de bits SIMD (4096), que se utiliza para procesar operaciones a nivel de píxeles (como la mejora de la imagen). La capa intermedia está compuesta por 64 chips de procesamiento de señales digitales (dsp). como la clasificación de patrones en spmd o mimd (granularidad media). La capa superior es una máquina mimd general (de grano grueso) que completa operaciones de procesamiento de conocimientos, como el análisis de escenas y acciones. Un ejemplo de esto último es el prototipo del sistema pasm desarrollado por la Universidad Purdue en Estados Unidos. Se trata de un sistema compuesto por 16 pe (unidades de procesamiento) que se pueden dividir dinámicamente para formar submáquinas híbridas independientes de varios tamaños. El modo puede ser Necesidad de cambiar automáticamente entre simd y mimd.

El NHC se puede dividir a su vez en dos tipos: métodos multimáquina homogéneos y heterogéneos y métodos multimáquina mixtos heterogéneos. La máquina múltiple utilizada en el mismo tipo de método de máquina múltiple heterogénea pertenece a la misma estructura, es decir, admite el mismo tipo de paralelismo (como uno de simd, mimd, vector, etc.), pero los modelos pueden ser diferente, por lo que el rendimiento puede variar. El habitual ahora o vaca es un método de varias máquinas del mismo tipo y tipo, por lo que puede considerarse como un caso especial del método de varias máquinas del mismo tipo y de diferentes tipos. La máquina múltiple utilizada en el método de máquina múltiple híbrida heterogénea tiene diferentes estructuras. El sistema informático heterogéneo en red consta principalmente de un grupo de computadoras heterogéneas, una red de alta velocidad que conecta todas las máquinas y un entorno de programación paralelo. Lógicamente este sistema se puede dividir en tres niveles: capa de red, capa de comunicación y capa de procesamiento. Como se muestra en la Figura 1.

La capa de red se utiliza principalmente para conectar computadoras en diferentes ubicaciones, como la estación informática a y la estación informática b en la Figura 1, y considera cuestiones como la selección de enrutamiento de la entrega de mensajes, la optimización del flujo de la red y la red. Teoría de colas, que es similar al diseño tradicional de redes informáticas.

La capa de comunicación funciona sobre la capa de red y proporciona principalmente mecanismos para que varias computadoras en el sistema se comuniquen entre sí. El software de herramientas de comunicación debe proporcionar un mecanismo que permita ver una colección de computadoras heterogéneas como una única imagen de sistema, una única máquina virtual heterogénea en paralelo. Esto facilitará la programación del usuario. Estas herramientas de comunicación suelen proporcionar un conjunto de primitivas para proporcionar una variedad de comunicaciones. Las herramientas de comunicación más populares son pvm (máquina virtual paralela) y mpi (interfaz estándar de paso de mensajes).

La capa de procesamiento se utiliza principalmente para gestionar grupos de máquinas heterogéneos y garantizar la ejecución eficiente de las tareas. Los principales servicios que proporciona incluyen soporte de lenguajes y entornos de programación, análisis y división de tipos de tareas de aplicaciones, mapeo y programación de tareas y equilibrio de carga. El proceso de procesamiento informático heterogéneo se puede dividir esencialmente en tres etapas: etapa de detección de paralelismo, etapa de extracción de características (tipos) de paralelismo y etapa de programación y mapeo de tareas. La detección de paralelismo no es exclusiva de la computación heterogénea. La computación homogénea también debe pasar por esta etapa. Puede manejarse utilizando métodos convencionales en computación paralela y distribuida. La fase de extracción de características de paralelismo es exclusiva de la computación heterogénea. El trabajo principal de esta fase es estimar los parámetros del tipo de computación de cada tarea en la aplicación, incluido el mapeo y la consideración de los costos de comunicación entre tareas. La fase de asignación y programación de tareas (también llamada fase de asignación de recursos) determina principalmente a qué máquina se debe asignar cada tarea (o subtarea) para su ejecución y cuándo debe comenzar la ejecución.

Desde la perspectiva del usuario, el proceso de cálculo asincrónico mencionado anteriormente se puede implementar de dos maneras.

El primero es el método de guía del usuario, en el que el usuario utiliza comandos explícitos del compilador para guiar al compilador a completar el análisis de los tipos de código de la aplicación y la descomposición de tareas relacionadas. Este es un método explícito para desarrollar heterogeneidad y paralelismo. implementar, pero tiene ciertos requisitos para los usuarios y es necesario integrar ideas informáticas heterogéneas en los programas de usuario. El otro es el método de guía del compilador, que requiere integrar ideas heterogéneas en el compilador, y luego el compilador con "inteligencia heterogénea" completa automáticamente el análisis del tipo de código de la aplicación, la descomposición de tareas, el mapeo y la programación de tareas, es decir, computación heterogénea automática. Este es un método implícito para desarrollar heterogeneidad y paralelismo. Es el objetivo final que persigue la computación heterogénea, pero es muy difícil y requiere altos requisitos del compilador.

El modelo conceptual de computación heterogénea automática se muestra en la Figura 2. Primero se analizan dos objetos, uno es el conjunto de máquinas en el sistema informático heterogéneo y el otro es el programa de aplicación para la resolución. Para obtener los mejores resultados de ejecución, no sólo se requiere un análisis cualitativo sino también el correspondiente análisis cuantitativo.

Todo el proceso de procesamiento informático heterogéneo se puede dividir en las siguientes cuatro etapas: la primera etapa es principalmente clasificar las características informáticas de cada máquina y obtener los tipos de cálculo que el sistema informático heterogéneo puede completar; se clasifican los requisitos de la aplicación de estadísticas de bloques de código para las funciones informáticas; se utiliza un programa de referencia para probar los parámetros de rendimiento de cada máquina, incluidos los parámetros de velocidad y los parámetros de rendimiento de la comunicación entre máquinas, y se generan las dos matrices de rendimiento de velocidad de la máquina y las matrices de ancho de banda de comunicación correspondientes. . Clasifique el programa según el tipo de cálculo; estime la cantidad de cálculo de cada subtarea y la cantidad de comunicación entre subtareas, y genere el diagrama de tarea correspondiente. Los valores de los nodos en el gráfico dag representan la cantidad de cálculo de la subtarea y los valores de los arcos representan el volumen de comunicación entre los dos nodos.

La segunda etapa calcula principalmente el tiempo de ejecución de cada subtarea en cada máquina en función del DAG y la matriz de rendimiento de velocidad, y genera una matriz de rendimiento de tiempo para calcular cada subtarea en función de la matriz de rendimiento de comunicación y el volumen de comunicación; de la subtarea. El tiempo de comunicación entre ellos genera una matriz de tiempo de comunicación.

Con base en los resultados de las dos primeras etapas, la tercera etapa proporciona el mapeo de cada subtarea a cada máquina y un cronograma que se ajusta a la relación de orden parcial del gráfico de tareas. El mapeo y la programación pueden ser estáticos o dinámicos, con programación dinámica basada en la carga de la máquina y la información del estado de la red.

La cuarta etapa es la ejecución. La computación heterogénea tiene una amplia gama de aplicaciones, y casi todas las soluciones que involucran problemas enormemente desafiantes pueden resolverse de manera rentable utilizando computación heterogénea. Las aplicaciones típicas incluyen comprensión de imágenes, seguimiento de partículas, formación de haces acústicos, modelado climático, simulación de mezcla por convección turbulenta y consulta multimedia. Estas aplicaciones normalmente contienen requisitos para múltiples tipos de computación diferentes, por lo que son muy adecuadas para ser resueltas mediante computación heterogénea.

1. En el futuro, deberíamos centrarnos en la investigación sobre la computación heterogénea de redes híbridas heterogéneas de múltiples máquinas, que representa una tendencia de desarrollo y es más económica y efectiva. 2. La computación heterogénea automática es a largo plazo; Objetivo En esta etapa, se deben utilizar métodos de orientación para el usuario para la investigación y el desarrollo. 3. Se deben utilizar herramientas maduras existentes como pvm y mpi tanto como sea posible para llevar a cabo la investigación y el desarrollo de computación heterogénea; al análisis teórico y modelado de computación heterogénea, modelos de estimación de rendimiento, herramientas de software relacionadas e investigación sobre algoritmos de programación y mapeo de tareas en computación heterogénea. 5. Se debe estudiar cómo hacer que los sistemas informáticos heterogéneos tengan una buena imagen de sistema único;