Convergencia de arquitecturas paralelas
Se han desarrollado máquinas paralelas con varias arquitecturas distintas. En esta sección, discutiremos diferentes arquitecturas de computadoras paralelas y la naturaleza de su convergencia.
Arquitectura de comunicación
La arquitectura paralela mejora los conceptos convencionales de arquitectura informática con arquitectura de comunicación. La arquitectura de la computadora define abstracciones críticas (como el límite entre el usuario y el sistema y el límite entre el hardware y el software) y la estructura organizacional, mientras que la arquitectura de comunicación define las operaciones básicas de comunicación y sincronización. También se ocupa de la estructura organizativa.
El modelo de programación es la capa superior. Las aplicaciones están escritas en modelo de programación. Los modelos de programación paralela incluyen:
- Espacio de direcciones compartido
- Paso de mensajes
- Programación paralela de datos
Shared addressLa programación es como usar un tablero de anuncios, donde uno puede comunicarse con una o muchas personas publicando información en un lugar en particular, que es compartida por todas las demás personas. La actividad individual se coordina anotando quién está haciendo qué tarea.
Message passing es como una llamada telefónica o cartas donde un receptor específico recibe información de un remitente específico.
Data parallella programación es una forma organizada de cooperación. Aquí, varias personas realizan una acción sobre elementos separados de un conjunto de datos al mismo tiempo y comparten información a nivel mundial.
Memoria compartida
Los multiprocesadores de memoria compartida son una de las clases más importantes de máquinas paralelas. Ofrece un mejor rendimiento en cargas de trabajo de multiprogramación y admite programas paralelos.
En este caso, todos los sistemas informáticos permiten que un procesador y un conjunto de controladores de E / S accedan a una colección de módulos de memoria mediante alguna interconexión de hardware. La capacidad de memoria aumenta agregando módulos de memoria y la capacidad de E / S aumenta agregando dispositivos al controlador de E / S o agregando un controlador de E / S adicional. La capacidad de procesamiento se puede aumentar esperando que haya un procesador más rápido disponible o agregando más procesadores.
Todos los recursos están organizados alrededor de un bus de memoria central. A través del mecanismo de acceso al bus, cualquier procesador puede acceder a cualquier dirección física del sistema. Como todos los procesadores son equidistantes de todas las ubicaciones de memoria, el tiempo de acceso o latencia de todos los procesadores es el mismo en una ubicación de memoria. Se llamasymmetric multiprocessor.
Arquitectura de paso de mensajes
La arquitectura de paso de mensajes también es una clase importante de máquinas paralelas. Proporciona comunicación entre procesadores como operaciones de E / S explícitas. En este caso, la comunicación se combina a nivel de E / S, en lugar del sistema de memoria.
En la arquitectura de paso de mensajes, la comunicación del usuario se ejecuta mediante el uso de llamadas al sistema operativo o a la biblioteca que realizan muchas acciones de nivel inferior, que incluyen la operación de comunicación real. Como resultado, existe una distancia entre el modelo de programación y las operaciones de comunicación a nivel de hardware físico.
Send y receivees la operación de comunicación a nivel de usuario más común en el sistema de paso de mensajes. Enviar especifica un búfer de datos local (que se va a transmitir) y un procesador remoto receptor. Recibir especifica un proceso de envío y un búfer de datos local en el que se colocarán los datos transmitidos. En la operación de envío, unidentifier o un tag se adjunta al mensaje y la operación de recepción especifica la regla de coincidencia como una etiqueta específica de un procesador específico o cualquier etiqueta de cualquier procesador.
La combinación de un envío y una recepción coincidente completa una copia de memoria a memoria. Cada extremo especifica su dirección de datos local y un evento de sincronización por pares.
Convergencia
El desarrollo del hardware y el software ha desvanecido el límite claro entre la memoria compartida y los campos de transmisión de mensajes. El paso de mensajes y un espacio de direcciones compartido representan dos modelos de programación distintos; cada uno ofrece un paradigma transparente para compartir, sincronizar y comunicarse. Sin embargo, las estructuras básicas de la máquina han convergido hacia una organización común.
Procesamiento paralelo de datos
Otra clase importante de máquina paralela se denomina de diversas formas: matrices de procesadores, arquitectura de datos en paralelo y máquinas de una sola instrucción y varios datos. La característica principal del modelo de programación es que las operaciones se pueden ejecutar en paralelo en cada elemento de una gran estructura de datos regular (como una matriz o una matriz).
Los lenguajes de programación en paralelo de datos generalmente se aplican al ver el espacio de direcciones locales de un grupo de procesos, uno por procesador, formando un espacio global explícito. Como todos los procesadores se comunican juntos y hay una vista global de todas las operaciones, se puede utilizar un espacio de direcciones compartido o el paso de mensajes.
Problemas fundamentales de diseño
El desarrollo del modelo de programación solo no puede aumentar la eficiencia de la computadora ni el desarrollo del hardware solo puede hacerlo. Sin embargo, el desarrollo de la arquitectura de la computadora puede marcar la diferencia en el rendimiento de la computadora. Podemos comprender el problema del diseño centrándonos en cómo los programas utilizan una máquina y qué tecnologías básicas se proporcionan.
En esta sección, discutiremos sobre la abstracción de la comunicación y los requisitos básicos del modelo de programación.
Abstracción de la comunicación
La abstracción de la comunicación es la interfaz principal entre el modelo de programación y la implementación del sistema. Es como el conjunto de instrucciones que proporciona una plataforma para que el mismo programa pueda ejecutarse correctamente en muchas implementaciones. Las operaciones a este nivel deben ser sencillas.
La abstracción de la comunicación es como un contrato entre el hardware y el software, que se permite mutuamente la flexibilidad de mejorar sin afectar el trabajo.
Requisitos del modelo de programación
Un programa paralelo tiene uno o más subprocesos que operan con datos. Un modelo de programación paralela define qué datos puedenname, cual operations se puede realizar en los datos nombrados, y qué orden siguen las operaciones.
Para confirmar que se aplican las dependencias entre los programas, un programa paralelo debe coordinar la actividad de sus hilos.