Arquitectura informática paralela - Introducción
En los últimos 50 años, ha habido grandes avances en el rendimiento y la capacidad de un sistema informático. Esto ha sido posible con la ayuda de la tecnología Very Large Scale Integration (VLSI). La tecnología VLSI permite alojar una gran cantidad de componentes en un solo chip y aumentar las velocidades de reloj. Por lo tanto, se pueden realizar más operaciones a la vez, en paralelo.
El procesamiento paralelo también está asociado con la localidad de datos y la comunicación de datos. Parallel Computer Architecture es el método de organizar todos los recursos para maximizar el rendimiento y la programabilidad dentro de los límites dados por la tecnología y el costo en cualquier momento.
¿Por qué la arquitectura paralela?
La arquitectura de computadora paralela agrega una nueva dimensión en el desarrollo del sistema informático al utilizar cada vez más procesadores. En principio, el rendimiento logrado mediante la utilización de una gran cantidad de procesadores es superior al rendimiento de un solo procesador en un momento determinado.
Tendencias de aplicación
Con el avance de la capacidad del hardware, también aumentó la demanda de una aplicación de buen rendimiento, lo que a su vez impuso una demanda en el desarrollo de la arquitectura de la computadora.
Antes de la era de los microprocesadores, los sistemas informáticos de alto rendimiento se obtenían mediante tecnología de circuitos exóticos y organización de máquinas, lo que los hacía costosos. Ahora, se obtiene un sistema informático de alto rendimiento mediante el uso de múltiples procesadores, y las aplicaciones más importantes y exigentes se escriben como programas paralelos. Por lo tanto, para un mayor rendimiento es necesario desarrollar tanto arquitecturas paralelas como aplicaciones paralelas.
Para aumentar el rendimiento de una aplicación, la aceleración es el factor clave a considerar. Speedup en p procesadores se define como -
$$ Speedup (p \ procesadores) \ equiv \ frac {Rendimiento (p \ procesadores)} {Rendimiento (1 \ procesador)} $$Para el problema fijo único,
$$ rendimiento \ de \ una \ computadora \ sistema = \ frac {1} {Tiempo \ necesario \ para \ completar \ el \ problema} $$ $$ Aceleración \ _ {problema \ solucionado} (p \ procesadores) = \ frac {Hora (1 \ procesador)} {Hora (p \ procesador)} $$Computación científica y de ingeniería
La arquitectura paralela se ha vuelto indispensable en la computación científica (como física, química, biología, astronomía, etc.) y aplicaciones de ingeniería (como modelado de yacimientos, análisis de flujo de aire, eficiencia de combustión, etc.). En casi todas las aplicaciones, existe una gran demanda de visualización de la salida computacional que resulta en la demanda de desarrollo de computación paralela para incrementar la velocidad computacional.
Computación comercial
En la informática comercial (como video, gráficos, bases de datos, OLTP, etc.) también se necesitan computadoras de alta velocidad para procesar una gran cantidad de datos en un tiempo específico. Desktop utiliza programas multiproceso que son casi como los programas paralelos. Esto, a su vez, exige desarrollar una arquitectura paralela.
Tendencias tecnológicas
Con el desarrollo de la tecnología y la arquitectura, existe una fuerte demanda para el desarrollo de aplicaciones de alto rendimiento. Los experimentos muestran que las computadoras en paralelo pueden funcionar mucho más rápido que el procesador único más desarrollado. Además, las computadoras paralelas se pueden desarrollar dentro del límite de la tecnología y el costo.
La tecnología principal utilizada aquí es la tecnología VLSI. Por lo tanto, hoy en día se pueden instalar más y más transistores, puertas y circuitos en la misma área. Con la reducción del tamaño de la característica básica de VLSI, la frecuencia de reloj también mejora en proporción a ella, mientras que el número de transistores crece con el cuadrado. Se puede esperar que el uso de muchos transistores a la vez (paralelismo) funcione mucho mejor que aumentando la frecuencia del reloj.
Las tendencias tecnológicas sugieren que el componente básico de un solo chip proporcionará una capacidad cada vez mayor. Por tanto, aumenta la posibilidad de colocar varios procesadores en un solo chip.
Tendencias arquitectónicas
El desarrollo de la tecnología decide qué es factible; la arquitectura convierte el potencial de la tecnología en rendimiento y capacidad.Parallelism y localityson dos métodos en los que mayores volúmenes de recursos y más transistores mejoran el rendimiento. Sin embargo, estos dos métodos compiten por los mismos recursos. Cuando se ejecutan múltiples operaciones en paralelo, se reduce el número de ciclos necesarios para ejecutar el programa.
Sin embargo, se necesitan recursos para respaldar cada una de las actividades simultáneas. También se necesitan recursos para asignar almacenamiento local. El mejor desempeño se logra mediante un plan de acción intermedio que utiliza recursos para utilizar un grado de paralelismo y un grado de localidad.
En general, la historia de la arquitectura informática se ha dividido en cuatro generaciones con las siguientes tecnologías básicas:
- Tubos de vacio
- Transistors
- Circuitos integrados
- VLSI
Hasta 1985, la duración estuvo dominada por el crecimiento del paralelismo a nivel de bits. Microprocesadores de 4 bits seguidos de 8 bits, 16 bits, etc. Para reducir el número de ciclos necesarios para realizar una operación completa de 32 bits, se duplicó el ancho de la ruta de datos. Posteriormente, se introdujeron las operaciones de 64 bits.
El crecimiento en instruction-level-parallelismdominó desde mediados de los 80 hasta mediados de los 90. El enfoque RISC demostró que era sencillo canalizar los pasos del procesamiento de instrucciones para que, en promedio, se ejecutara una instrucción en casi todos los ciclos. El crecimiento de la tecnología de compilación ha hecho que las canalizaciones de instrucciones sean más productivas.
A mediados de los 80, las computadoras basadas en microprocesadores consistían en
- Una unidad de procesamiento de enteros
- Una unidad de coma flotante
- Un controlador de caché
- SRAM para los datos de la caché
- Almacenamiento de etiquetas
A medida que aumentó la capacidad del chip, todos estos componentes se fusionaron en un solo chip. Por lo tanto, un solo chip constaba de hardware separado para aritmética de enteros, operaciones de punto flotante, operaciones de memoria y operaciones de rama. Además de canalizar instrucciones individuales, obtiene múltiples instrucciones a la vez y las envía en paralelo a diferentes unidades funcionales siempre que sea posible. Este tipo de paralelismo a nivel de instrucción se llamasuperscalar execution.