Arquitectura de computadora paralela - Modelos
El procesamiento paralelo se ha desarrollado como una tecnología eficaz en las computadoras modernas para satisfacer la demanda de mayor rendimiento, menor costo y resultados precisos en aplicaciones de la vida real. Los eventos concurrentes son comunes en las computadoras de hoy debido a la práctica de multiprogramación, multiprocesamiento o multiprocesamiento.
Las computadoras modernas tienen paquetes de software potentes y extensos. Para analizar el desarrollo del rendimiento de las computadoras, primero debemos comprender el desarrollo básico de hardware y software.
Computer Development Milestones - Hay dos etapas principales de desarrollo de la computadora - mechanical o electromechanicalpartes. Las computadoras modernas evolucionaron después de la introducción de componentes electrónicos. Los electrones de alta movilidad en las computadoras electrónicas reemplazaron las partes operativas en las computadoras mecánicas. Para la transmisión de información, una señal eléctrica que viaja casi a la velocidad de una luz reemplaza los engranajes mecánicos o las palancas.
Elements of Modern computers - Un sistema informático moderno consta de hardware, conjuntos de instrucciones, programas de aplicación, software del sistema e interfaz de usuario.
Los problemas de computación se clasifican en computación numérica, razonamiento lógico y procesamiento de transacciones. Algunos problemas complejos pueden necesitar la combinación de los tres modos de procesamiento.
Evolution of Computer Architecture- En las últimas cuatro décadas, la arquitectura de las computadoras ha experimentado cambios revolucionarios. Empezamos con la arquitectura de Von Neumann y ahora tenemos multicomputadoras y multiprocesadores.
Performance of a computer system- El rendimiento de un sistema informático depende tanto de la capacidad de la máquina como del comportamiento del programa. La capacidad de la máquina se puede mejorar con una mejor tecnología de hardware, características arquitectónicas avanzadas y una gestión eficiente de los recursos. El comportamiento del programa es impredecible ya que depende de la aplicación y las condiciones de tiempo de ejecución.
Multiprocesadores y multicomputadoras
En esta sección, discutiremos dos tipos de computadoras paralelas:
- Multiprocessors
- Multicomputers
Multicomputadoras de memoria compartida
Los tres modelos de multiprocesadores de memoria compartida más comunes son:
Acceso uniforme a la memoria (UMA)
En este modelo, todos los procesadores comparten la memoria física de manera uniforme. Todos los procesadores tienen el mismo tiempo de acceso a todas las palabras de memoria. Cada procesador puede tener una memoria caché privada. Se sigue la misma regla para los dispositivos periféricos.
Cuando todos los procesadores tienen el mismo acceso a todos los dispositivos periféricos, el sistema se denomina symmetric multiprocessor. Cuando solo uno o unos pocos procesadores pueden acceder a los dispositivos periféricos, el sistema se denominaasymmetric multiprocessor.
Acceso a memoria no uniforme (NUMA)
En el modelo de multiprocesador NUMA, el tiempo de acceso varía con la ubicación de la palabra de memoria. Aquí, la memoria compartida se distribuye físicamente entre todos los procesadores, llamados memorias locales. La colección de todas las memorias locales forma un espacio de direcciones global al que pueden acceder todos los procesadores.
Arquitectura de memoria caché únicamente (COMA)
El modelo COMA es un caso especial del modelo NUMA. Aquí, todas las memorias principales distribuidas se convierten en memorias caché.
Distributed - Memory Multicomputers- Un sistema multicomputador de memoria distribuida consta de varios ordenadores, conocidos como nodos, interconectados mediante una red de paso de mensajes. Cada nodo actúa como una computadora autónoma que tiene un procesador, una memoria local y, a veces, dispositivos de E / S. En este caso, todas las memorias locales son privadas y solo son accesibles para los procesadores locales. Por eso, las máquinas tradicionales se llamanno-remote-memory-access (NORMA) máquinas.
Computadoras Multivector y SIMD
En esta sección, analizaremos las supercomputadoras y los procesadores en paralelo para el procesamiento de vectores y el paralelismo de datos.
Supercomputadoras vectoriales
En una computadora vectorial, un procesador vectorial se conecta al procesador escalar como característica opcional. La computadora host primero carga el programa y los datos en la memoria principal. Luego, la unidad de control escalar decodifica todas las instrucciones. Si las instrucciones decodificadas son operaciones escalares u operaciones de programa, el procesador escalar ejecuta esas operaciones utilizando canalizaciones funcionales escalares.
Por otro lado, si las instrucciones decodificadas son operaciones vectoriales, las instrucciones se enviarán a la unidad de control vectorial.
Supercomputadoras SIMD
En las computadoras SIMD, un número 'N' de procesadores están conectados a una unidad de control y todos los procesadores tienen sus unidades de memoria individuales. Todos los procesadores están conectados por una red de interconexión.
Modelos PRAM y VLSI
El modelo ideal proporciona un marco adecuado para desarrollar algoritmos paralelos sin considerar las restricciones físicas o los detalles de implementación.
Los modelos se pueden aplicar para obtener límites de rendimiento teóricos en computadoras en paralelo o para evaluar la complejidad de VLSI en el área del chip y el tiempo operativo antes de fabricar el chip.
Máquinas paralelas de acceso aleatorio
Sheperdson y Sturgis (1963) modelaron las computadoras Uniprocessor convencionales como máquinas de acceso aleatorio (RAM). Fortune y Wyllie (1978) desarrollaron un modelo de máquina de acceso aleatorio paralelo (PRAM) para modelar una computadora paralela idealizada con cero sobrecarga de acceso a memoria y sincronización.
Una PRAM de procesador N tiene una unidad de memoria compartida. Esta memoria compartida se puede centralizar o distribuir entre los procesadores. Estos procesadores operan en un ciclo sincronizado de memoria de lectura, memoria de escritura y cálculo. Por lo tanto, estos modelos especifican cómo se manejan las operaciones simultáneas de lectura y escritura.
A continuación se muestran las posibles operaciones de actualización de la memoria:
Exclusive read (ER) - En este método, en cada ciclo, solo un procesador puede leer desde cualquier ubicación de la memoria.
Exclusive write (EW) - En este método, al menos un procesador puede escribir en una ubicación de memoria a la vez.
Concurrent read (CR) - Permite que múltiples procesadores lean la misma información desde la misma ubicación de memoria en el mismo ciclo.
Concurrent write (CW)- Permite operaciones de escritura simultáneas en la misma ubicación de memoria. Para evitar conflictos de escritura, se configuran algunas políticas.
Modelo de complejidad VLSI
Las computadoras en paralelo utilizan chips VLSI para fabricar matrices de procesadores, matrices de memoria y redes de conmutación a gran escala.
Hoy en día, las tecnologías VLSI son bidimensionales. El tamaño de un chip VLSI es proporcional a la cantidad de espacio de almacenamiento (memoria) disponible en ese chip.
Podemos calcular la complejidad espacial de un algoritmo por el área del chip (A) de la implementación del chip VLSI de ese algoritmo. Si T es el tiempo (latencia) necesario para ejecutar el algoritmo, entonces AT da un límite superior al número total de bits procesados a través del chip (o E / S). Para cierta informática, existe un límite inferior, f (s), tal que
EN 2 > = O (f (s))
Donde A = área de viruta y T = tiempo
Pistas de desarrollo arquitectónico
La evolución de las computadoras paralelas la difundí a lo largo de las siguientes pistas:
- Varias pistas de procesador
- Pista multiprocesador
- Pista multicomputadora
- Pista de datos múltiple
- Pista de vector
- Pista SIMD
- Seguimiento de varios hilos
- Pista multiproceso
- Pista de flujo de datos
En multiple processor track, se supone que diferentes subprocesos se ejecutan simultáneamente en diferentes procesadores y se comunican a través de memoria compartida (pista multiprocesador) o sistema de paso de mensajes (pista multicomputadora).
En multiple data track, se asume que el mismo código se ejecuta en la enorme cantidad de datos. Se realiza ejecutando las mismas instrucciones en una secuencia de elementos de datos (pista vectorial) o mediante la ejecución de la misma secuencia de instrucciones en un conjunto similar de datos (pista SIMD).
En multiple threads track, se supone que la ejecución entrelazada de varios subprocesos en el mismo procesador para ocultar retrasos de sincronización entre subprocesos que se ejecutan en diferentes procesadores. El entrelazado de subprocesos puede ser grueso (pista multiproceso) o fino (pista de flujo de datos).