260 likes | 734 Views
CURSO DE TITULACIÓN 2003 COMPUTACION PARALELA; ARQUITECTURAS Y ALGORITMOS PARALELOS. I.S.C. Heberto Ferreira Medina (TECMOR 88-92) Maestría en Ciencias Sección Computación (CINVESTAV, 94-96) Especialidad Sistemas Distribuidos. COMPUTACION PARALELA; ARQUITECTURAS Y ALGORITMOS PARALELOS.
E N D
CURSO DE TITULACIÓN 2003COMPUTACION PARALELA; ARQUITECTURAS Y ALGORITMOS PARALELOS I.S.C. Heberto Ferreira Medina (TECMOR 88-92) Maestría en Ciencias Sección Computación (CINVESTAV, 94-96) Especialidad Sistemas Distribuidos
COMPUTACION PARALELA; ARQUITECTURAS Y ALGORITMOS PARALELOS CONTENIDO DEL CURSO: • UNIDAD I. PROGRAMACION PARALELA. • 1.1 INTRODUCCION. • 1.2 TAXONOMIA DE FLYNN. • 1.3 PROGRAMACION EN SISTEMAS PARALELOS. • UNIDAD II. ARQUITECTURAS PARALELAS. • 2.1 MODELOS DE MÁQUINAS PARALELAS. • 2.2 TECNOLOGIAS DE HARDWARE. • 2.3 ARQUITECTURAS ESCALABLES. • UNIDAD III. SOFTWARE PARA LA PROGRAMACION PARALELA. • 3.1 LENGUAJES Y COMPILADORES. • 3.2 AMBIENTES DE DESARROLLO. • 3.3 SOFTWARE PARA UNIX Y OTROS SISTEMAS OPERATIVOS. • UNIDAD IV. IMPLEMENTACION DE ALGORITMOS PARALELOS (PVM Y MPI). • 4.1 ORDENAMIEMTO PARALELO. • 4.2 BUSQUEDAS EN PARALELO. • 4.3 PVM Y MPI.
Bibliografía • ADVANCED COMPUTER ARQUITECTURE; Paralelism, Scalability, Programmability. Kai Hwang. McGraw-Hill Series in Computer Science. • ARQUITECTURA DE COMPUTADORAS Y PROCESAMIENTO PARALELO. Kai Hwang. McGraw-Hill. • PARALELL COMPUTING; Theory and practice. Michael J. Quinn. McGraw-Hill. • PARALELL PROGRAMMING. Sussan Ragsdale. McGraw-Hill. • Análisis y diseño de algoritmos paralelos de ordenamiento y teoría de grafos con arquitectura Hipercubo. TESIS; Carlos Alberto Hernández Hernández. CINVESTAV MEXICO. • PVM 3.4, USERS GUIDE AND REFERENCE MANUAL Oak Ridge National Laboratory, Univeristy of Tennessee, Carnegie Mellon University, Pittsburgh Supercomputing Center and Emory University. September, 1994. • MPI 2, USERS GUIDE AND REFERENCE MANUAL. http://www.mpi-forum.org http://www-unix.mcs.anl.gov/mpi
Evaluación del Curso … • Trabajos de Investigación (15 %) • Examen(s) teórico(s) (20 %) • Proyecto de programación: • Programa ejemplo de PVM en Linux/Windows (35 %) • Programa ejemplo de MPI en un Cluster Linux (30 %) • Mínima aprobatoria 70
UNIDAD I. PROGRAMACION PARALELA 1.1 INTRODUCCION 1.2 TAXONOMIA DE FLYNN 1.3 PROGRAMACION EN SISTEMAS PARALELOS
1.1 Introducción Historia CISC RISC RISC VS CISC Arquitecturas paralelas Clasificaciones Nuevas tecnologías
Historia .. • La capacidad de cómputo se doblara aproximadamente cada 18 meses. Esta progresión de crecimiento exponencial: doblar la capacidad de los microprocesadores cada año y medio a mitad de precio. Gordon Moore Cofundador de Intel • La consecuencia directa de esta Moore es que los precios bajan al mismo tiempo que las prestaciones suben: la computadora que hoy vale 3.000 dólares costará la mitad al año siguiente y estará obsoleta en dos años. En 26 años el número de transistores en un chip se ha incrementado 3.200 veces.
Historia … • Desde los inicios de las arquitecturas de computadoras, un tema de mucho estudio es como interconectar más de un procesador y que estos permitan aprovechar al máximo su capacidad en paralelo. [Michael J. Quinn, parallel computing] • En los 60´s la ILLIAC IV fue una de las primeras computadoras que intentó conectar dos computadoras paralelas. • La universidad de Carnegie-Mellon en los 70´s desarrolló la C.mmp y Cm*. • En los 80´s la mayoría de las computadoras paralelas de la actualidad inician su carrera hacia el paralelismo anhelado; nCube, Intel, Amtek, Cray, CM, IBM, NEC, MP, entre otros … • En los 90´s nace PVM, una máquina virtual que pretende se usada en la mayoría de las redes actuales, MPI es la utilización eficiente de las redes utilizando cluster´s. • En el desarrollo del paralelismo se fijaron objetivos a alcanzar: • Control del paralelismo • Escalabilidad • Procesamiento paralelo de datos • Desempeño en paralelo • Máxima aceleración (speedup) • Acceso a dispositivos de I/O en paralelo
Historia ... • Tendencia -> SD: No es la panacea para resolver todos los problemas de interconexión en Red • Necesidad de Interconexión -> Evolución del Hardware • Aplicaciones GUI -> Evolución del Software • Inteligencia Artificial -> Evolución Hardware y Software • Evolución de los SO hacia Interfaces + Multimedia • El hardware móvil sin enchufes • El software( Inteligencia Artificial )= Inteligente + Toma de decisiones • Herramientas CASE + Matemáticas aplicadas al diseño -> Técnicas de Descripción Formal • Tecnología = Industria $$$
Arquitectura CISC ... • La arquitectura CISC, se caracteriza por la complejidad en su arquitectura y sus instrucciones, surge desde los 50`s • Modos de operación • Modos de direccionamiento • Ambiente de ejecución • Organización de la memoria • Registros de propósito general • Registros de segmentos • Registros de datos • Banderas • Llamado a procedimientos • Interrupciones • Conjunto de instrucciones • Manejo de I/O
Arquitectura RISC ... • La arquitectura RISC surge de un proyecto de la universidad de Berkeley e IBM a finales de los 70`s • Poco después la universidad de Stanford desarrolla la arquitectura MIPS a principios de los 80´s (Mayor énfasis en el Pipeline para acelerar instrucciones) • Sus principales características son: • Un solo ciclo de ejecución por instrucción, optimización de instrucciones por ciclo de reloj • Pipeline, ejecución de las instrucciones en pseudo-paralelismo • Un gran número de registros, que permitan el Pipeline en la mayoría de las instrucciones • Una de las grandes ventajas de estas arquitecturas son la sencillez de sus instrucciones, donde existen pocos modos de direccionamiento • Las técnicas de Pipeline son muy estudiadas, de tal forma que en la actualidad son muy eficientes y veloces. • El Pipeline opera por estados y cuya finalidad es desarrollar el mayor número de estados por ciclo de instrucción , es decir más de una instrucción a la vez.
Arquitectura RISC ... • El Pipeline se realiza en general en 5 pasos: • Carga de instrucciones desde la memoria • Lectura de registros y decodificación de instrucción • Ejecución de la instrucción y cálculo de la dirección • Escritura de resultados en un registro • Debido a la necesidad del Pipeline, los procesadores RISC operan más de una instrucción por ciclo de reloj, esto ocasiona problemas de dependencia de instrucciones, esto ocurre cuando el resultado de una instrucción es utilizado por la siguiente. • Los procesadores MIPS tienen implementados algoritmos que permiten el reordenamiento de instrucciones para evitar la dependencia de instrucciones. • Una de las técnicas es la predicción de resultados y su reordenamiento. • Aún con todo y estas técnicas existen algunas instrucciones que tienen una dependencia tal que no es posible reordenarlas y existen ciclos de reloj en los cuales no se puede ejecutar el Pipeline. • Los métodos que utilizan los procesadores MIPS pueden ejecutar hasta el 90 % de las dependencias y resolverlas correctamente.
RISC vs. CISC • En realidad es difícil de comparar ambas arquitecturas puesto que tienen objetivos diferentes, una apuesta por la sencillez del hardware (RISC) y la otra por la aceleración en instrucciones (CISC).:
RISC vs. CISC ... • La forma de medir el desempeño de una computadora sin importar su arquitectura es: • En la actualidad se han visto las ventajas de ambas arquitecturas y por tal motivo la convergencia RISC-CISC es cada vez más vista en los nuevos procesadores, los CISC incluyen nuevas técnicas de Pipeline para acelerar el numero de instrucciones por segundo y RISC incluye cada vez más instrucciones para acelerar aún mas los programas en hardware. Ventas de procesadores RISC al 2001
Arquitecturas paralelas • Un tema complicado era el como conectar los componentes de la arquitectura de tal forma que permitiera al máximo la ejecución de instrucciones en paralelo. • El modelo PRAM, fue uno de las primeras arquitecturas que fueron probadas con éxito y permite el paralelismo, esta consiste de una unidad de control, memoria global y un conjunto ilimitado de procesadores. • Uno de los problemas clásicos es la forma de acceder a la memoria: • Existen varios modelos para controlar la concurrencia: • EREW (Exclusive Read Exclusive Write) no hay conflictos. • CREW (Concurrent Read Exclusive Write). • CRCW(Concurrent Read Concurrent Write), existen 3 modelos: • Común; todos los procesadores escriben concurrentemente en la misma dirección global pero el mismo valor. • Arbitrario; si hay varios que desean acceder uno es declarado ganador • Prioridad; el procesador con mayor prioridad es que accesa
Arquitectura ... TOP 500 DEL SUPERCOMPUTO:
Arquitecturas paralelas… • En general la mayoría de las arquitecturas siguen tres importantes modelos de la computación paralela: • Arreglo de procesadores. Modelo PRAM clásico. • Multiprocesadores. Diferente modelos de interconexión. • Multicomputadoras. Cluster e interconexión utilizando dispositivos I/O • Los criterios para medir la eficiencia y la implementación de los algoritmos en una arquitectura paralela son: • Diámetro (D): El diámetro es la distancia más grande entre 2 nodos. El diámetro más bajo es menor, es simplifica los requerimientos de comunicación entre procesadores. • Ancho de bisección de una red (AB): Es el mínimo número de bordes que pueden ser eliminados en orden para dividir un arreglo de procesadores en dos mitades. Una bisección alta es mejor porque los algoritmos requieren un gran movimiento de datos y este puede dividirse entre el número de conexiones posible (1a. instancia). • Número de bordes por nodo (NB). Es mejor si el número es constante independientemente del tamaño de la red. • Máxima longitud de borde (MLB). Por razones de escalabilidad es mejor si el número de nodos y bordes pueden ser representados en un espacio tridimensional independientemente del tamaño. • Los tipos clásicos de organización son: • Interconexión en malla (mesh network). • Árbol binario. • Hiper-árbol. • Pirámide, • Mariposa. • Hiper-cubo. • Otras
Clasificación de Arquitecturas ... • Kai Hwang, presenta tres esquemas de clasificación: • Taxonomía de Flynn(1966) - Se basa en la multiplicidad de los flujos de instrucciones y datos en un sistema. • Taxonomía de Feng (1972) - Se basa en la confrontación del procesamiento serie frente al procesamiento paralelo • Taxonomía de Händler (1977) - Se determina por el grado de paralelismo y encauzamiento en diferentes niveles y subsistemas • Otras taxonomias o clasificaciones: Shore´s, Hockney & Jessophe´s y Towards
Taxonomía de Flynn ... • Simple flujo de Instrucciones – Simple Flujo de datos (SISD). Máquinas secuénciales; CISC y RISC, 1 procesador. • Simple flujo de Instrucciones – Múltiple Flujo de Datos (SIMD). Multiprocesadores, CISC o RISC.
Taxonomía de Flynn ... • Múltiple flujo de Instrucciones – Simple Flujo de Datos (MISD). No aplicado. • Múltiple flujo de Instrucciones – Múltiple Flujo de Datos (MIMD). Multiprocesadores, Clusters, Transputer.
Taxonomía de Feng … • Tse-yun-Feng, sugiere el grado de paralelismo como criterio de clasificación. Maximo grado de paralelismo ( P ) = número máximo de dígitos binarios que pueden ser procesados en una unidad de tiempo • Grado medio de paralelismo ( Pm ) y tasa de utilización ( µ ) de un sistema en T ciclos: • Se puede clasificar a la computadoras actuales de acuerdo a este criterio como: • Palabra-serie y bit-serie (PSBS). n=m=1, primera generación de computadoras. • Palabra-paralelo y bit-serie (PPBS). n=1, m>1, procesamiento por sección de bits (procesa una sección de m bits cada vez), no usado. • Palabra-serie y bit-paralelo (PSBP).n>1, m=1, procesamiento por sección de palabra (procesa una palabra de n bits a la vez), computadoras actuales. • Palabra-paralelo y bit-paralelo (PPBP). n>1, m>1, procesamiento totalmente paralelo (se procesa una matriz de n*m bits a la vez), multiprocesadores y multicomputadoras (cluster´s). Tasa de utilización en T ciclos Donde Pi es el No. de bits que puede ser procesados en el i-esimo ciclo del procesador, para T ciclos.
Taxonomía de Feng … • Si la potencia de computación esta totalmente utilizada (paralelismo máximo), tenemos que Pi = P para todo i y µ = 1 con utilización al 100%. • Una sección de bits es una cadena de bits, uno por cada una de las palabras sobre las que se opera en paralelo.
Clasificación de Händler • Wolfgang Händler ha propuesto un esquema donde se considera el procesamiento paralelo encauzado en tres niveles de subsistemas: • UCP (Unidad Central de procesamiento) • UAL (Unidad Aritmética Lógica) • El circuito a nivel Bit (CNB), utilizado para realizar operaciones a nivel bit en la UAL. • Un sistema computador (C )puede caracterizarse por una triada: C = < K x K’, D x D’, W x W’ > donde: K = Es el número procesadores K’ = Número de procesadores que puede encauzarse (pipelined) D = Es el número de ALU bajo el control de un CPU D’ = Número de ALU´s que pueden ser encauzadas (pipelined) W = Longitud de palabra de una UAL o un Elemento de Proceso (EP) W’ = El número de segmentos en pipeline en todas las ALU´s o EP´s
Clasificación de Händler y Otras … • Por ejemplo para la Cray-1: Es un procesador de 64-bit simple con 12 ALU, 8 de las cuales pueden trabajar en pipeline. Diferentes unidades funcionales tienen de 1 a 14 segmentos los cuales pueden trabajas en pipeline. CRAY-1 = < 1, 12 x 8, 64 x ( 1~14) > • Otras clasificaciones que se pueden encontrar en la literatura son: • Taxonomía de Shore´s (1973). Basada en la estructura y el número de unidades funcionales en la computadora. Se divide en 6 categorías. • Taxonomía estructural de Hockney y Jesshope´s. Se basa en la notación llamada “Estilo de Notación Estructural Algebraica (ASN)”, es muy compleja. C(Cray-1) = Iv12 [ 12Ep12 - 16M50 ] r; 12Ep = {3Fp64,9B} • Existe una nomenclatura que pretende ser más descriptiva y se basa en: multiplicidad del procesador, tamaño de grano, topología y control de multiplicidad. Computadora Nueva Clasificación Flynn IBMPC ZL SISD
Nuevas Tecnologías .. • Revisar nuevas tecnologías de arquitectura de computadoras en Internet • Revisar PVM y MPI implementación y programación en Linux.