Title: CURSO DE TITULACI
1CURSO 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
2COMPUTACION 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.
3Bibliografí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
4Evaluació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
5UNIDAD I. PROGRAMACION PARALELA
- 1.1 INTRODUCCION
- 1.2 TAXONOMIA DE FLYNN
- 1.3 PROGRAMACION EN SISTEMAS PARALELOS
61.1 Introducción
- Historia
- CISC
- RISC
- RISC VS CISC
- Arquitecturas paralelas
- Clasificaciones
- Nuevas tecnologías
7Historia ..
- 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.
8Historia
- 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 60s la ILLIAC IV fue una de las primeras
computadoras que intentó conectar dos
computadoras paralelas. - La universidad de Carnegie-Mellon en los 70s
desarrolló la C.mmp y Cm. - En los 80s 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 90s 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 clusters. - 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
9Historia ...
- Tendencia -gt SD
- No es la panacea para resolver todos los
problemas de interconexión en Red - Necesidad de Interconexión -gt Evolución del
Hardware - Aplicaciones GUI -gt Evolución del Software
- Inteligencia Artificial -gt 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 -gt Técnicas de Descripción Formal - Tecnología Industria
10Evolución Procesador Intel
Processor Type Year N. Transistors Package Type Speeds Other Details
4004 1971 2,300 4-bit word size and data bus used in calculators.
8080 1974 6,000 8-bit word size and data bus used in the first PC (the Altair) and in traffic signal controllers.
8086 1978 29,000 16-bit word size and data bus used in IBM PCs and XTs.
8088 1979 29,000 40-pin DIP 5 MHz to 8 MHz (turbo) 16-bit word size 8-bit data bus also used in IBM PCs and XTs. 1 MB addressable RAM.
80286 1982 134,000 square 68-pin grid array (PGA) 12 MHz to 20 MHz Used in IBM ATs starting 1984. 16-bit word size and data bus. 16 MB of addressable RAM.
80386 (DX, SX Versions) 1985 275,000 132 pin PGA 16 MHz to 40 MHz 32-bit word size/data bus (DX). 32-bit word size, 16-bit data bus (SX). 4 GB of addressable RAM. Supports multitasking.
80486 DX 1989 1.6 million 168 pin PGA 25 MHz to 50 MHz 32-bit word size and data bus. 8 KB cache. 4GB of addressable RAM.
80486 DX2 1992 50 MHz to 80 MHz Upgrade to the 486DX. Has a clock doubler to process data and instructions at twice the clock speed.
80486 DX4 1994 75 MHz to 120 MHz Uses clock tripler technology that enables the processor to operate at three times clock speed.
Pentium 1993 3.3 million 273 pin PGA or 296 pin staggered PGA 60 MHz to 200 MHz and up Uses superscaler processing. Includes SMM (System Management Mode). 64-bit data bus, 32-bit address bus. Requires a cooling fan. 4 GB of addressable RAM.
Pentium Pro 1995 5.5 million 387-pin staggered PGA (SPGA) 150 MHz to 200 MHz and up Scaleable (up to 4 processors) Uses Dynamic Execution to improve processor efficiency. 64-bit word size/32-bit data bus size/36-bit address bus.
Pentium MMX 1997 4.5 million Optimized for multimedia. 64-bit data bus/32-bit address bus.
Pentium II 1997 7.5 million 242-pin SEC (single edge contact) 233 MHz to 400 MHz and up. Scaleable (up to 2 processors). 64 GB of addressable RAM. 64-bit system bus and cache bus, both with ECC (error correction code). 64-bit word size/32-bit data bus/36-bit address bus.
11Arquitectura CISC ...
- La arquitectura CISC, se caracteriza por la
complejidad en su arquitectura y sus
instrucciones, surge desde los 50s - 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
12Arquitectura RISC ...
- La arquitectura RISC surge de un proyecto de la
universidad de Berkeley e IBM a finales de los
70s - Poco después la universidad de Stanford
desarrolla la arquitectura MIPS a principios de
los 80s (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.
13Arquitectura 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.
14RISC 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).
CISC RISC
Énfasis en el Hardware (Velocidad) Énfasis en el Software (Sencillez y rapidez en el Pipeline)
Incluye instrucciones complejas multi-reloj Instrucciones con reloj simple
Instrucciones complejas (Más de 1000) Instrucciones sencillas (Menos de 100)
Instrucciones que trabajan de memoria a memoria Instrucciones que trabajan de registro a registro
Carga y almacenamiento incorporados en la misma instrucción La carga y el almacenamiento son instrucciones independientes
El tamaño del código es pequeño El tamaño del código es muy grande
Muchos ciclos de reloj por segundo Pocos ciclos de reloj por segundo
Pocos registros para almacenar los resultados Muchos registros para almacenar resultados
Alto costo de producción Bajo costo de producción
15RISC 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
Características 1994 1995 1996 1997 1998 1999 2000 2001
ARM/StrongARM 32 bits, 75 del mercado, utilizado en automóviles, Dispositivos I/O, Palm, etc 2,170 2,100 4,200 9,800 50,400 152,000 414,000 402,000
MIPS Rxx00 32 y 64 bits, consolas, cable modem, etc 3,254 5,500 19,200 48,000 53,200 57,000 62,800 62,000
Hitachi SH 32 bits, bluetooth, Dispositivos I/O, etc 2,800 14,000 18,300 23,800 26,000 33,000 50,000 45,000
POWER/PowerPC Motorola, 32 y 64 bits, utilizado en PCs, workstation, telecomunicaciones, etc -- 2,090 3,300 4,300 3,800 6,800 8,300 18,800 23,000
Total 30,499 33,830 58,480 98,220 149,080 262,820 556,800 538,860
16Arquitecturas 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
17Arquitectura ...
TOP 500 DEL SUPERCOMPUTO
Rank ManufacturerComputer/Procs RmaxRpeak Installation SiteCountry/Year
1 NECEarth-Simulator/ 5120 35860.0040960.00 Earth Simulator CenterJapan/2002
2 Hewlett-PackardASCI Q - AlphaServer SC ES45/1.25 GHz/ 4096 7727.0010240.00 Los Alamos National LaboratoryUSA/2002
3 Hewlett-PackardASCI Q - AlphaServer SC ES45/1.25 GHz/ 4096 7727.0010240.00 Los Alamos National LaboratoryUSA/2002
4 IBMASCI White, SP Power3 375 MHz/ 8192 7226.0012288.00 Lawrence Livermore National LaboratoryUSA/2000
5 Linux NetworXMCR Linux Cluster Xeon 2.4 GHz - Quadrics/ 2304 5694.0011060.00 Lawrence Livermore National LaboratoryUSA/2002
6 Hewlett-PackardAlphaServer SC ES45/1 GHz/ 3016 4463.006032.00 Pittsburgh Supercomputing CenterUSA/2001
7 Hewlett-PackardAlphaServer SC ES45/1 GHz/ 2560 3980.005120.00 Commissariat a l'Energie Atomique (CEA)France/2001
8 HPTiAspen Systems, Dual Xeon 2.2 GHz - Myrinet2000/ 1536 3337.006758.00 Forecast Systems Laboratory - NOAAUSA/2002
9 IBMpSeries 690 Turbo 1.3GHz/ 1280 3241.006656.00 HPCxUK/2002
10 IBMpSeries 690 Turbo 1.3GHz/ 1216 3164.006323.00 NCAR (National Center for Atmospheric Research)USA/2002
169 IBM Netfinity Cluster PIII 1.4 GHz - Eth/ 1024 366.00 1433.00 Pemex Gas Mexico/2002
18Arquitecturas 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
19Clasificació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 Shores,
Hockney Jessophes y Towards
20Taxonomí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.
21Taxonomí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.
22Taxonomí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). nm1, primera
generación de computadoras. - Palabra-paralelo y bit-serie (PPBS). n1, mgt1,
procesamiento por sección de bits (procesa una
sección de m bits cada vez), no usado. - Palabra-serie y bit-paralelo (PSBP).ngt1, m1,
procesamiento por sección de palabra (procesa una
palabra de n bits a la vez), computadoras
actuales. - Palabra-paralelo y bit-paralelo (PPBP). ngt1, mgt1,
procesamiento totalmente paralelo (se procesa una
matriz de nm bits a la vez), multiprocesadores y
multicomputadoras (clusters).
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.
23Taxonomí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.
24Clasificació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 lt K x K, D x D, W x W gt 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 ALUs 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 ALUs o EPs
25Clasificació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 lt 1, 12 x
8, 64 x ( 114) gt - Otras clasificaciones que se pueden encontrar en
la literatura son - Taxonomía de Shores (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 Jesshopes. 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
26Nuevas Tecnologías ..
- Revisar nuevas tecnologías de arquitectura de
computadoras en Internet - Revisar PVM y MPI implementación y programación
en Linux.