Tema 0. Introducción al Paralelismo y Organización de un Computador

Documentos relacionados
Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas

Taxonomía de las arquitecturas

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Clasificación de Flynn de los computadores

Arquitectura de Computadoras para Ingeniería

Paralelismo en el procesador

MULTIPROCESADORES TIPOS DE PARALELISMO

Aspectos avanzados de arquitectura de computadoras Multiprocesadores (I) Facultad de Ingeniería - Universidad de la República Curso 2017

Organización de Computadoras. Pipeline Continuación

Computación de Altas Prestaciones Sistemas computacionales

Modelos de computadores paralelos

Paralelismo _Arquitectura de Computadoras IS603

Tema 1: PROCESADORES SEGMENTADOS

Modelado de los computadores paralelos

Tema 4. Condiciones para el paralelismo: Dependencias

Multiprocesamiento en Lenguaje C Conceptos básicos de la computación paralela

Aspectos avanzados de arquitectura de computadoras Multithreading. Facultad de Ingeniería - Universidad de la República Curso 2017

Modelado de los computadores paralelos

Tema 3. Leyes sobre el aumento de prestaciones

Conceptos básicos de procesamiento paralelo (1)

Programación Gráfica de Altas Prestaciones

ARQUITECTURA DEL COMPUTADOR

SISTEMAS DE MULTIPROCESAMIENTO

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

GRADO EN INGENIERÍA DE COMPUTADORES

Computación de Altas Prestaciones Sistemas computacionales

Memoria compartida simétrica

Introducción a los sistemas de Multiprocesamiento Prof. Gilberto Díaz

Pipeline de instrucciones

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez.

EVOLUCIÓN DE LOS PROCESADORES

Procesamiento Paralelo

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 1: EJECUCIÓN PARALELA: FUNDAMENTOS(I)

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

Introducción a las arquitecturas paralelas

Procesamiento Paralelo

Lusitania. Pensando en Paralelo. César Gómez Martín

Máquinas de alto rendimiento

Programación Concurrente y Paralela. Unidad 1 Introducción

Pipeline de instrucciones

TEMA 2: PROGRAMACIÓN PARALELA (I)

Clasificación de las Arquitecturas

Computación de Alta Performance Curso 2009 ARQUITECTURAS PARALELAS ARQUITECTURAS PARALELAS

07 y 08 Sistemas distribuidos y paralelos y tarea 02

Introducción a las Arquitecturas Paralelas. Arquitectura de Computadoras II Fac. Cs. Exactas UNCPBA Prof. Marcelo Tosini 2015

UNIVERSIDAD NACIONAL DE INGENIERIA FACULTAD DE ELECTROTECNIA Y COMPUTACION DEPARTAMENTO DE ARQUITECTURA Y SISTEMAS

Trabajo de investigación Paralelismo en el procesador

Modelado de los computadores paralelos

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

GRADO EN INGENIERÍA DE COMPUTADORES

Micro arquitectura. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Francisco J. Hernández López

Taller de Programación Paralela

ASIGNATURA: Arquitectura de Computadores

Unidad II Arquitectura de Computadoras

Redes de Altas Prestaciones

ÍNDICE TEMÁTICO. 4 Salida Paralelos y Serie. 7 Programación de Microprocesadores 10 4 Características de los 4 8

UNIVERSIDAD DE GUADALAJARA

Introducción a los Sistemas Multiprocesadores

Sistemas Operativos. Algo de Sistemas Operativos, Arquitecturas y Paralelismo

Modelos de Programación Paralela Prof. Gilberto Díaz

Programa Educativo: Licenciatura en Sistemas PROGRAMA DE ESTUDIO

Arquitectura de Computadoras. Clase 8 Procesadores superescalares

Tema 5. Segmentación: conceptos básicos

Arquitecturas vectoriales, SIMD y extensiones multimedia

Motivación. Entre los temas que serán abarcados en este curso podemos mencionar

Arquitecturas de Computadoras II

CDI Arquitecturas que soportan la concurrencia. granularidad

INTRODUCCION A LA COMPUTACION PARALELA. 2nd Workshop: New Frontiers of Bioinformatics in Latin America Gridding Biology. Dr.

Multiprocesadores de Memoria Compartida

Docente Cargo Carga Horaria Carlos A. Correa Profesor Titular Exclusivo 10hs

TEMA 2: Organización de computadores

Arquitecturas GPU v. 2015

Entornos de programación paralela basados en modelos/paradigmas

Bases de Datos Paralelas. Carlos A. Olarte BDII

Contenidos. Arquitectura de ordenadores (fundamentos teóricos) Elementos de un ordenador. Periféricos

Tema 1: PROCESADORES SEGMENTADOS

Seminario 1: Procesadores paralelos

Arquitectura de Computadores

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

TEMA 4 PROCESAMIENTO PARALELO

Prerrequisito (s): DOMINIOS COGNITIVOS (Objetos de aprendizaje, temas y subtemas) UNIDAD I: INTRODUCCIÓN

Definición de prestaciones

Arquitecturas Paralelas Introducción

MÓDULO 1.4 ARQUITECTURA DE SOFTWARE CON UML

Granularidad y latencia

Introducción a los multiprocesadores

Comentarios sobre la bibliografía

GUÍA DE APRENDIZAJE ARQUITECTURAS PARALELAS

Proceso. Threads, SMP, and Microkernels. Multithreading. Proceso

FUNDAMENTOS DE INFORMATICA UNIDAD I: Conceptos Introductorios ING. AGUILERA SERGIO OMAR

Arquitectura de Computadores (obligatoria)

ORG. Y FUNC. DE COMPUTADORAS UNIDAD I: Conceptos Introductorios

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

GRADO EN INGENIERÍA DE COMPUTADORES

Sistemas de Computadoras

Contenidos: Definiciones:

Transcripción:

Tema 0. Introducción al Paralelismo y Organización de un Computador Organización de Computadores LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO ARISMENDI GUTIERREZ JOSÉ CARLOS CASTILLO MONTOYA Departamento de Ingeniería de Sistemas y Automática 1

RESUMEN Qué es la arquitectura de computadores An3cipación, paralelismo y segmentación Clasificación de Flynn Máquinas MIMD Mul3procesadores Mul3computadores Supercomputadores: Computadores vectoriales Computadores SIMD Entornos de programación: Paralelismo implícito Paralelismo explícito Evolución de las arquitecturas de procesadores 2

ARQUITECTURA DE COMPUTADORES Versa sobre la organización del hardware y los requisitos de programación / so\ware. Enganche entre el código ensamblador y el hardware. Hardware: CPUs, caches, buses, registros, pipelines, etc. So\ware: juego de instrucciones (código de operación, registros, modos de direccionamiento, etc.). 3

INSTRUCCIONES C: x = (a + b) - c; Assembler: ADR r4,a LDR r0,[r4] ADR r4,b LDR r1,[r4] ADD r3,r0,r1 ADR r4,c LDR r2,[r4] SUB r3,r3,r2 ADR r4,x STR r3,[r4] ; get address for a ; get value of a ; get address for b, reusing r4 ; get value of b ; compute a+b ; get address for c ; get value of c ; complete computation of x ; get address for x ; store value of x 4

VON NEUMAN Mismo almacenamiento para instrucciones y para datos La mayoría de las computadoras modernas Contador de Programa CPU Registros Memoria Principal ALU Unidad de Control Sistemas de Entrada/Salida 5

EJECUCIÓN DE INSTRUCCIONES Secuencial I1 Instr Fetch Reg ALU Data Access Reg I2 Instr Fetch Reg ALU Data Access Reg I3 Instr Fetch Segmentación 8ns 9ns etc. I1 Instr. Fetch Reg ALU Data Access Reg I2 2ns Instr. Fetch Reg ALU Data Access Reg I3 2ns Instr. Fetch Reg ALU Data Access Reg Decodification Idle 2ns etc. 6

ANTICIPACIÓN, PARALELISMO Y SEGMENTACIÓN SEGMENTACIÓN Descomponer la ejecución de cada instrucción en varias etapas para poder empezar a procesar una instrucción diferente en cada una de ellas y trabajar con varias a la vez. ANTICIPACIÓN Búsqueda an3cipada de instrucciones para superponer las fases de búsqueda, descodificación y ejecución. PARALELISMO FUNCIONAL: tareas que se pueden ejecutar al mismo 3empo. Espacial: replicación de hardware. Temporal: solapamiento de operaciones funcionales en el 3empo, segmentación. PARALELISMO DE DATOS Se ejecuta una instrucción sobre un conjunto de datos. 7

PARALELISMO A NIVEL DE MÁQUINA VS PROCESADOR El paralelismo en los computadores ha tenido dos aspectos que han evolucionado en paralelo: Paralelismo a nivel de máquina: En este nivel se dis3nguen diferentes 3pos de organización de máquinas que en este curso se mencionan y se ampliarán en cursos posteriores. Paralelismo a nivel de procesador: En este nivel se pueden estudiar una serie de avances organiza3vos que han conducido a una mejora en la eficiencia. El curso de organización de computadores se centrara en este nivel. 8

Evolución de la Arquitectura de Computadores Escalar Secuencial Anticipación Solapamiento E/S Paralelismo Funcional UF Múltiples Segmentación Vectoriales Implícitos Vectoriales Explícitos Mem-mem Reg-reg SIMD MIMD Procesadores Asociativos Arrays de Procesadores Multicomputadores Multiprocesadores 9

CLASIFICACIÓN DE FLYNN Se considera: Flujo de instrucciones: secuencia de instrucciones ejecutadas por la máquina. Flujo de datos: secuencia de datos, tanto de entrada como resultados finales e intermedios. SISD (single instruc3on stream over a single data stream). SIMD (single instruc3on stream over mul3ple data stream). MIMD (mul3ple instruc3on streams over mul3ple data streams). MISD (mul3ple instruc3on streams and a single data streams). Flujo de instrucciones Flujo de datos ÚNICO MÚLTIPLE ÚNICO MÚLTIPLE SISD MISD SIMD MIMD 10

ARQUITECTURA SISD Corresponde a un uni- procesador. Puede estar segmentado o no. Imagen de Hwang, 1993 11

ARQUITECTURA SIMD Corresponde a procesadores vectoriales / matriciales. Una única memoria de instrucciones y varias memorias de datos (distribuidas). Control centralizado y operaciones distribuidas. Interconnection Network (ICN) Imagen de Hwang, 1993 12

ARQUITECTURA MIMD Memoria compar3da. Procesadores con paralelismo intrínseco. Ordenadores mul3- procesador. Imagen de Hwang, 1993 13

ARQUITECTURA MISD Procesadores sistólicos. Cada unidad de proceso realiza una operación sobre los datos. Los datos pasan por todas o parte de la unidades de proceso hasta que se ha completado el algoritmo. Pipelined SIMD. No muy u3lizados. Imagen de Hwang, 1993 14

SISD VS SIMD Imagen de Ars Tecnica, 2006 15

ARQUITECTURA MIMD Es el modelo de máquina más general y versá3l. Hay dos grandes 3pos de máquinas: Procesadores MIMD con memoria compar3da: Mul3procesadores (comparten el mismo espacio de direcciones de memoria). Fuertemente acoplados. Procesadores MIMD con memoria no compar3da: Mul3computadores (paso de mensajes). Acoplamiento débil. 16

MULTIPROCESADORES Pueden tener diferentes 3pos de estructuras dependiendo de como estén organizadas los accesos a las diferentes memorias que cons3tuyen la memoria de la máquina. Tipos: - UMA (Uniform Memory Access). - NUMA (Non Uniform Memory Access). - COMA (Cache Only Memory Access). 17

MULTIPROCESADORES: MODELO UMA (UNIFORM MEMORY ACCESS) El 3empo de acceso a cualquiera de las memorias es el mismo. Imagen de Hwang, 1993 P - Procesador MC - Memoria Compartida 18

MULTIPROCESADORES: NUMA (NON UNIFORM MEMORY ACCESS) El 3empo de acceso a las memorias NO es el mismo Las memorias locales son de acceso más rápido, puede haber memorias globales, P - Procesador ML - Memoria local Imagen de Hwang, 1993 19

MULTIPROCESADORES: MODELO NUMA Pueden estructurarse en clusters de máquinas. P - Procesador GSM - Global Shared Memory CSM - Cluster Shared Memory GIN - Global Interconnection Network Imagen de Hwang, 1993 20

MULTIPROCESADORES: COMA (CACHE ONLY MEMORY ACCESS) En los modelos UMA y NUMA aparece el problema de coherencia de caches. El modelo COMA deriva de los protocolos de coherencia de caches. No existe una memoria qsica lineal propiamente dicha sino sólo las caches y los protocolos para localizar toda la información. P - Procesador C - Cache D - Diretorio Imagen de Hwang, 1993 21

MULTICOMPUTADORES Es básicamente una red de computadores que se comunica por paso de mensajes, el acoplamiento es más débil que en los mul3procesadores. NORMA - NO Remote Memory Access Nodo Imagen de Hwang, 1993 22

MULTICOMPUTADORES Ventajas: aumento del ancho de banda de la memoria reduce latencias en el acceso a memoria soporta mayor número de procesadores Par3cularidades: Memorias locales privadas Comunicación mediante paso de mensajes MPI Message Passing Interface PVM: parallel Virtual Machine 23

MULTICOMPUTADORES 1ª generación (83-87) Arquitectura hipercubo Conmutación so\ware de mensajes CosmicCube Intel ipsc860 2ª generación (87-92) Arquitectura en rescula (mesh) Enrutamiento hardware de mensajes Parsys Supernodo 1000 Intel Paragon 3ª generación (93-...) Un sólo chip con el procesador y comunicaciones MIT J- Machine Caltech Mosaic 24

SUPERCOMPUTADORES (1) Computadores vectoriales Procesador escalar + procesador vectorial Número pequeño de procesadores potentes con hardware específico para procesamiento vectorial (2) Máquinas SIMD (matriciales) Múltiples elementos de proceso bajo la supervisión de una única unidad de control Enfocadas al paralelismo masivo de datos 25

COMPUTADORES VECTORIALES Host computer 26

COMPUTADORES VECTORIALES: ARQUITECTURAS Memoria a memoria Emplean una unidad de memoria en la que almacenan los operandos y resultados vectoriales. CDC-STAR100 TI-ASC CYBER-205 Registro a registro Los registros vectoriales almacenan operandos y resultados vectoriales. CRAY-1 C-1, C-2 VP100/200 J-90 27

RESUMEN Organizaciones de Procesadores SISD SIMD MISD MIMD Uniprocesadores Memoria Compartida (Fuertemente Acoplados Memoria Distribuida (Debilmente Acoplados) Procesadores Vectoriales Procesadores Matriciales Clusters Multiprocesadores Simetricos (SMP) Acceso No-Uniforme a Memoria (NUMA) 28

ENTORNOS DE PROGRAMACIÓN El paralelismo debe ser soportado a nivel de: Sistema opera3vo Herramientas de programación Los sistemas opera3vos paralelos deben permi3r: Planificación paralela Asignación de recursos (memoria, periféricos...) Comunicación Protección de memoria y conjuntos de datos Prevención de bloqueos Manejo de excepciones 29

HERRAMIENTAS DE PROGRAMACIÓN Imagen de Hwang, 1993 30

ARQUITECTURAS DEL PROCESADOR: EVOLUCIÓN Chip uniprocesador Micros convencionales Procesadores superescalares Procesadores superespecula3vos Procesadores mul3thread Trace processors Chip mul3procesador Vector IRAM processors Single- chip mul3procesors (mul3core) Raw configurable processors. 31

PROCESADORES SUPERESCALARES MULTIVÍA Capaces de comenzar hasta 16-32 ejecuciones de instrucciones por ciclo. Requieren una alta capacidad de suministro de instrucciones y datos. Imagen de Superescalar, 2014 32

ARQUITECTURAS SUPERESPECULATIVAS La ejecución especula3va es la ejecución de código por parte del procesador que no 3ene por qué ser necesaria a priori. La ejecución especula3va no es más que una op3mización. Sólo es ú3l cuando la ejecución previa requiere menos 3empo y espacio que el que requeriría la ejecución posterior, siendo este ahorro lo suficientemente importante como para compensar el esfuerzo gastado en caso de que el resultado de la operación nunca llegue a usarse. Hay dos líneas: Microarquitecturas con búsquedas de hasta 32 instr (anchura), buffer de reordenación de 128, y colas de almacenamiento de 128 entradas para varias configuraciones de memoria. U3lización de modelos de dependencia débil para conseguir prestaciones superescalares de hasta 19 instrucciones por ciclo (IPC) puntuales y 9 IPC de media en el test SPEC- 95. 33

MULTI- THREADING El paradigma de mul3hilo ha llegado a ser más popular a medida que los esfuerzos para llevar más adelante el paralelismo a nivel de instrucción se han atascado desde finales de los años 1990. Hardware Support para threads: o o o SuperThreading HyperThreading Simultaneous Mul3 Threading (SMT) 34

SINGLE- THREADED PROCESSOR El procesador proporciona la ilusión de la ejecución concurrente. o o Front- end: fetching/decoding/reordering. Execu3on core: ejecución real. Múl3ples programas en la memoria, pero sólo uno se ejecuta en cada momento. Time- slicing via context switching. 35

SIMPLIFIED EXAMPLE CPU Front- end Execu3on Core (Back- end) El front- end puede emi3r 4 instrucciones simultáneas al execu3on core. 4- stage pipeline. El execu3on core 3ene 8 unidades funcionales. Cada una: 6- stage pipeline. 36

SIMPLIFIED EXAMPLE CPU Front- end Execu3on Core El front- end está a punto de emi3r 2 instrucciones. En el ciclo siguiente se emi3rán 3. En el siguiente 1, etc. Un hardware complejo se encarga de decidir la siguiente instrucción en ser emi3da. 37

SIMPLIFIED EXAMPLE CPU Front- end Execu3on Core En el ciclo actual, 2 unidades funcionales están siendo usadas. En el siguiente sólo una, etc. Los huecos en blanco son pipeline bubbles : oportunidades perdidas para hacer algo ú3l, debido a un mal paralelismo a nivel de instrucciones 38

BLOCK MULTI- THREADING RAM CPU 4 threads en memoria. En la arquitectura tradicional, sólo se ejcuta el rojo. Cuando el thread rojo se atasca o termina, se pasa a otro thread. Coarse- grained mul3threading. Imagen de Ars Tecnica, 2002 39

SINGLE- THREADED SMP (SYMMETRIC MULTI- PROCESSING) Imagen de Ars Tecnica, 2002 2 threads se ejecutan a la vez, pero en CPUs dis3ntas. Se dobla el número de burbujas. Doble velocidad y doble gasto. 40

INTERLEAVED MULTI- THREADING. SUPER- THREADING Fine- grained o 3me- sliced mul3threading. Principio: el procesador puede ejecutar más de un thread al mismo 3empo. Requiere mejor hardware. Menor gasto. En cada etapa del front- end solo se puede ejecutar un thread. Imagen de Ars Tecnica, 2002 41

SIMULTANEOUS MULTI- THREADING. HYPER- THREADING Principio: el procesador puede ejecutar más de un hilo a la vez, incluso dentro del mismo ciclo de reloj! Requiere hardware aún más complejo. En el esquema: sólo dos threads se ejecutan simultáneamente. Desde el punto de vista opera3vo, hay dos procesadores "lógicos. Imagen de Ars Tecnica, 2002 42

TRACE (MULTISCALAR) PROCESSORS La idea es u3lizar un trace processor que consiste en múl3ples cores de ejecución en un chip, cada uno de los cuales ejecuta simultáneamente una traza diferente del código. Todos excepto uno de los cores ejecutan trazas especula3vas u3lizando predicción de saltos para seleccionar las trazas. La idea es que 4 cores de procesamiento puedan ejecutar 16 o más instrucciones por ciclo si cada core ejecuta 4 instrucciones por ciclo. 43

VECTOR (IRAM) PROCESSORS Los Intelligen Random- Access Memory processors trabajan sobre tecnologías de acceso a memoria DRAM, en la hipótesis de que el cuello de botella en el futuro estará en el sistema de memoria. Buscan construir mul3procesadores escalables empotrados en un único chip con arrays de memoria de gran escala. Al meter la memoria en el chip aumenta el ancho de banda de acceso a la memoria lo que permi3ría un procesamiento vectorial más barato. Para ejecutar código vectorial el código 3ene que ser vectorizable. 44

SINGLE- CHIP MULTIPROCESSORS (MULTICORE) Buscan meter en un chip entre 4 y 16 procesadores monocore avanzados. Cada uno de los procesadores está fuertemente acoplados con una cache pequeña de 1 er nivel, y todos los procesadores comparten una cache de 2º nivel. Los procesadores pueden colaborar en tareas paralelas o ejecutar tareas independientes. Requiere código con paralelismo explícito para aprovechar todo el potencial. 45

RAW (CONFIGURABLE) PROCESSORS Buscan explotar el paralelismo masivo dentro del chip, con cientos de procesadores muy simples, cada uno con una cierta lógica reconfigurable. La ejecución paralela y las comunicaciones se reordenan por so\ware para su control y coordinación. Esto elimina las interfaces del juego de instrucciones ya que la arquitectura es replicada directamente para su exposición al compilador. El compilador adapta el hardware a cada aplicación. Imagen de Raw Architecture Processor, 2014 46

REFERENCIAS [Silc, 1999] J. SILC. Processor Architecture. Springer 1999 [Hwang, 1993] K. HWANG Advanced Computer Architecture, Mc Graw- Hill, 1993 [Ars Tecnica, 2006] Peakstream ar3cle, Ars Technica, hp://arstechnica.com/gadgets/ 2006/09/7763/ [Superescalar, 2014] hp://en.wikipedia.org/wiki/superscalar [Ars Tecnica, 2002] Introduc3on to Mul3threading, Superthreading and Hyperthreading, Ars Technica, hp://arstechnica.com/features/2002/10/hyperthreading/ [Raw Architecture Processor, 2014] Raw Architecture Processor, hp:// groups.csail.mit.edu/cag/raw/ 47