arqAva Cantidad de paralelismo Introducción-88

Slides:



Advertisements
Presentaciones similares
1.3. PROGRAMACION PARALELA
Advertisements

Fecha: 11/09/13.  Todos los sistemas distribuidos constan de varias CPU, organizadas de diversas formas.  La forma de interconectarlas entre sí. 
EMISION MULTIPLE DE INSTRUCCIONES
Procesamiento paralelo
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
Contenido Marco de referencia Arquitectura de computadoras paralelas
TEMA 2: Organización de computadores
Inst. Tec. de Morelia ISC BASES DE DATOS DISTRIBUIDAS VERANO DEL 2006 MC. Anastacio Antolino Hernández TAXONOMÍA DE FLYNN.
14 de diciembre de 2005 Universidad de Murcia1 Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de.
Arquitecturas Paralelas
Tema 3: Paralelismo en Multiprocesadores (I)
PROCESADOR Por: Luis Gonzaga Trujillo Cuervo USCO
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
César Gómez Martín Supercomputación “El alma está en el cerebro”
Es el software que controla el conjunto de operaciones de una computadora. Proporciona el mecanismo por el cual un usuario puede solicitar la ejecución.
Microprocesadores Alumno: Flores Americo 2016 Sede Villa Unión.
INTRODUCCION A LOS SISTEMAS DE COMPUTO ARQUITECTURA VON NEUMAN Ing. David Gonzalez.
ALUMNO: NORMA DOLORES ILLESCAS CANALIZO. GRUPO:503 CECYTEM TEPOTZOTLAN. Procesador de un servidor.
BOARD O TARJETA MADRE. EXPOSICION DE INFORMATICA TEMA 1: BOARD TIPOS DE PROCESADOR BUS PUERTOS MEMORIA NUEVAS TECNOLOGIAS.
L. S. C. A. Raúl Monforte Chulin
Organización de computadoras
Sistemas Distribuidos
UNIDAD CENTRAL DE PROCESO CPU.
EL CPU.
Complejidad Programación II de febrero de 2009.
Arquitecturas alternativas UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNICIONES ADMINISTRACION DE SERVIDORES.
Diferencias entre las arquitecturas de 64 bits de AMD e intel.
EL Procesador. República bolivariana de Venezuela.
Características en general de Pentium II. ESQUEMA Introducción. Pentium. Pentium II. Tipos de Pentium II. Características en general de Pentium II.
Por: Alejandra Barrera, Vanessa Zhu, Jorge Pons y Arturo Marqués
EVOLUCIÓN DE LOS MICROPROCESADORES
Sistemas Operativos Ing. Jhonnathan Quintero V.
Unidad 1 Introducción al mundo de la computación.
Pipelining Introducción.
Almacenamiento El computador tiene 2 aspectos
SISTEMAS OPERATIVOS APRENDICES Diana Carolina Chacón
SISTEMAS OPERATIVOS DISTRIBUIDOS. Es la unión de varios sistemas de computo compuestos posiblemente cada uno de varios CPU's, interconectados mediante.
El Microprocesador El microprocesador o CPU el componente más importante de un ordenador. Están compuestos de cuatro secciones funcionales:  La unidad.
INGENIERÍA INFORMÁTICA Y DE SISTEMAS Docente: Mg Ing. Jesús Ocaña Velásquez ARQUITECTURA DEL COMPUTADOR.
arqAvaPar Necesidades, Evolución/Revolución Introducción-60
ARQUITECTURA DEL COMPUTADOR Ing. Diana E. López.
Tema: Componentes lógicos de un ordenador. Mediante el sistema de numeración binario, es decir, usando los dígitos 0 y 1. Lo único que transmite,
Procesadores El procesador es el elemento vital del PC.
ARQUITECTURA DE COMPUTADORES
proPar Necesidades comParalelos-30
proPar Curso 18/ , 3, 2 2, 4 3 Computadores Paralelos
1 TEMA 2: Organización de computadores Procesadores Memorias Dispositivos de E/S.
2.4.3 Procesadores Tema 2 página 35
proPar Multicomputadores comParalelos-57
“SISTEMA INFORMÁTICO”
Balance de Carga Adaptable bajo Cómputo Paralelo en Clusters
UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN
Integrantes : Luna valentina torres olivares Jackson Hernán Martínez Tarazona 4°A.
El Microprocesador El microprocesador o CPU el componente más importante de un ordenador. Están compuestos de cuatro secciones funcionales:  La unidad.
1 TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño.
El Microprocesador El microprocesador o CPU el componente más importante de un ordenador. Están compuestos de cuatro secciones funcionales:  La unidad.
El Microprocesador El microprocesador o CPU el componente más importante de un ordenador. Están compuestos de cuatro secciones funcionales:  La unidad.
ALGORITMO DE ORDENAMIENTO POR BURBUJA. El método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista.
UNIVERSIDAD PRIVADA SAN JUAN BAUTISTA FILIAL CHINCHA ESCUELA PROFESIONAL DE INGENIERÍA DE COMPUTACIÓN Y SISTEMAS Por: Nestares Torres Luis Jesús Enrique.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
ESTRUCTURA DE LO SISTEMAS OPERATIVOS Presentado por: Jennifer.
Ha llegado el momento de dar una mirada al interior de los Sistemas Operativos. En las siguientes secciones examinaremos cuatro estructuras distintas.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS. Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde.
Estructura de los Sistemas Operativos
Profesor del curso: UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU 2019-I Facultad de Ingeniería de Sistemas 1.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Transcripción de la presentación:

arqAva Cantidad de paralelismo Introducción-88 ACELERACIÓN: “Speedup” Cuántas veces más rápido al contar con “n” U.P. en vez de una. (Absoluta) Sn = Tsecuencial / Tparalelo = T1 / Tn SI CON UNA U.P. SE ORDENA EN 1 MINUTO, ¿CON 4 U.P. SE ORDENA EN? ===> 15”, 20”, .....??? 1 <= Sn <= n n = Máximo teórico EFICIENCIA: Lo mismo, pero teniendo en cuenta “n”. (Relativa) En = Sn / n = T1 / nTn En la tabla siguiente puede verse de forma simple cómo se calcula la aceleración y la eficiencia de un programa paralelo ejecutado sobre dos máquinas distintas. Cores Máquina T1 Tn Sn En 4 A 100 30 3,3 0,8 400 B 1000 5 200 0,5 Vemos que sólo fijándonos en la Aceleración (Sn), no podemos dar una opinión fiable de qué máquina es mejor. Podría decirse que B es mejor que A ya que acelera más. Es más importante la medida de Eficiencia (En). Ahora vemos que en la máquina A se es más eficiente ejecutando este algoritmo (0,8) que en la máquina B (0,5). La eficiencia hay que interpretarla -para el caso de 0,5- como que por término medio, es como si estuviese trabajando a pleno rendimiento el 50% de la máquina, o lo que es lo mismo, que de los 400 cores es como si 200 trabajasen a pleno rendimiento y los otros 200 estuviesen parados. Sin embargo, la máquina A estaría trabajando al 80%. Cuando una ordenación que tarda un minuto la ejecutamos en paralelo con 4 procesos, esperaríamos que se tardasen 15 segundos (60 / 4), pero parece lógico que sea algo más. Analizaremos las causas de esas ineficiencias. Sorprendentemente, también podríamos observar tiempos menores de 15 segundos “Superaceleración”: lo veremos más adelante. 1/n <= En <= 1 1 = Máximo teórico

arqAva Cantidad de paralelismo Introducción-89 ACELERACIÓN: ¿Por qué no tanto? t/2 Thread1 Thread2 rec(1, &msj) ? Acceso a datos comunes Sincronismo Comunicación 1 env(2, &msj)

arqAva Cantidad de paralelismo Introducción-90 Aquí presentamos otro ejemplo de por qué con N cores no tenemos por qué ir N veces más rápido. El dibujo de la figura es el conjunto de Mandelbrot que se computa a partir de la serie siguiente: Zi+1 = Zi2 * Cp Tal que Z0 = 0 y Cp es un complejo inicial asociado a un pixel de la pantalla (fil,col) Esta serie diverge en el elemento Zk si |Zk| > 2 La serie es infinita, pero delimitaremos su cálculo para un máximo igual al número de colores con que contamos (por ejemplo 32.768). Si la fórmula para un pixel diverge en la iteración 30 se pintará con color 30, si diverge en la 8.080 pues con color 8.080 y, si después de 32.768 iteraciones de la serie no ha divergido, se pintará con color negro. Lo que importa resaltar es que para algunos píxeles se computa rápido con qué color pintarlo y para otros se tarda mucho más. Supongamos que tenemos unos 16.000.000 de pixeles. Si tenemos 4 cores y dividimos en cuatro cuadrantes (cada core trabajaría sobre unos 4.000.000 de pixeles), la aceleración que observaríamos se acercaría a 4. Sin embargo, siguiendo el mismo criterio para 16 cores (16 cuadrantes cada uno de 1.000.000 de pixeles), la aceleración muy posiblemente sería poco más de 4. El problema es que aunque hemos repartido equilibradamente el número de píxeles, el trabajo real para computarlos difiere mucho: los cuatro cuadrantes interiores son muy costosos de computar y los 12 exteriores –que divergen relativamente rápido-, se computan mucho más rápido. Este aspecto de pérdida de eficiencia se denomina “Reparto no equilibrado del trabajo”

arqAva Cantidad de paralelismo Introducción-91 ACELERACIÓN: ¿Por qué no tanto? P0 P1 P2 P3 P4 P5 ? Reparto no equilibrado 2 A unos más trabajo que a otros Unos cores más rápidos que otros Como conclusión, tres cuestiones fundamentales a las que puede atribuirse pérdida de eficiencia: Comunicación, sincronismo, acceso a datos comunes Reparto no equilibrado Existencia de código secuencial puro (no hay forma de paralelizarlo) Código secuencial puro 3

arqAva Cantidad de paralelismo Introducción-92 ACELERACIÓN: ¿Puede que todavía más? t/2 ? Superaceleración Ficticia Real ? #nodos T 1 2 4 29:381 Ordenar 84.000 int 1000 Sn Superaceleración significa que con N cores se va más de N veces más rápido. Puede ser ficticia o real. En la figura se muestra un ejemplo de aceleración ficticia y su explicación supuesto que el método de ordenación es cuadrático, por ejemplo la burbuja. Lo que sucede es que al hacer el algoritmo paralelo, la ordenación secuencial de 84.000 enteros se traslada a dos cores ordenando en paralelo cada uno 42.000 enteros que, puede parecer sorprendente, no se computa en la mitad sino en la cuarta parte. La explicación es que al ser cuadrático O(N2), al reducir a la mitad N (número de elementos a ordenar), el tiempo en vez de bajar a la mitad, baja a la cuarta parte. Poniendo números, si N fuesen 1.000 enteros, el número de operaciones (comparaciones) sería en torno a 1.000.000 (1.0002), mientras que si ordenamos la mitad de enteros (N=500), el número de operaciones bajaría a 250.000 (5002). En este caso, podríamos hacer el algoritmo secuencial “exactamente” como el paralelo: ordenando dos mitades y luego mezclándolas (acabaríamos en la mitad de tiempo). De esta forma el paralelo observaría una aceleración de 2, de ahí que se denomine superaceleración ficticia. La aceleración real tiene que ver con el aumento de recursos físicos al pasar de tener un core a N cores. Si tenemos procesadores de un solo core con una caché de 2MBytes. Un programa secuencial que recorra reiteradas veces un array de 800.000 enteros puede que tarde 13 segundos y al ejecutarlo en dos procesadores (repartiéndose cada uno la mitad del array original –es decir cada uno itera sobre un subvector de 400.00 enteros), puede que se ejecute en 3,5 segundos: 3,71 de aceleración (casi el doble de la máxima teórica). La razón es que con un único core el vector de 800.000 enteros no cabe en la caché (podría albergar 524.288 enteros) y al ejecutarlo en dos cores, cada subvector de 400.000 enteros cabe en la caché de cada core y va mucho más rápido que si todos los accesos suponen fallo de caché. 3,38 1.000.000 250.000 1.000 8:693 2:181 13,47

arqAva Cantidad de paralelismo Introducción-93 16 32 64 128 10 20 30 40 50 60 70 versión 12/94 versión 9/94 versión 8/94 Aquí puede verse un ejemplo real de lo dificultoso de acercarse a eficiencia 1. Se trata de un software de modelización molecular. En la versión 8/94 aceleran razonablemente bien con 16 cores, algo peor con 32 cores y con 64 no mejoran, llegando a empeorar con 128 cores. En la versión 9/94 ya observan mejoras hasta con 64 cores. Lo consiguieron equilibrando mejor la carga. En la versión 12/94 las mejoras se aprecian incluso con 128 cores. Lo consiguieron mejorando el patrón de comunicaciones (intentar que la mayoría de las comunicaciones lo sean con procesos que residen en cores “cercanos”). Si se tiene una aplicación paralela tipo “pipeline” con 4 procesos: A => B => C => D. Si se cuenta con dos procesadores cada uno de dos cores, no es lo mismo cómo ubiquemos procesos (A, B, C y D) en procesadores (P1 y P2): A y C en P1 y B y D en P2: Peor ya que habrá tres comunicaciones entre procesos que irán de un procesador al otro por una red externa. A y B en P1 y C y D en P2: Mejor ya que sólo una comunicación será externa (B = C) y las otras dos sucederán dentro del mismo procesador a través de memoria común (más rápido). Finalmente resaltar que si probásemos con nuestro cluster en 16 o 32 cores la versión del 8/94, podriamos concluir que hemos escrito un programa paralelo muy bueno, pero si lo pasamos a un cluster mayor empezaría a no ser tan bueno. Aceleración en tres versiones de un programa paralelo Pfeiffer et al. 1995 (AMBER en Intel Paragon 128 P)

arqAva Cantidad de paralelismo Introducción-94 Sn y En resolviendo Sistemas Lineales de 1000 variables (Jack Dongarra, 2004)

arqAva Cantidad de paralelismo Introducción-95 Sn y En resolviendo Sistemas Lineales de 1000 variables (Jack Dongarra, 2004)

arqAva Cantidad de paralelismo Introducción-96 ¡ Eficiencia del 96% ! ¡172.032 cores En=82%!

arqAva Conceptos Introducción-97 PARALELISMO DE CONTROL (Prog. Concurrente) Descomposición en subtareas simultáneas (Una x núcleo) Supervisión industrial, Productor/Consumidor, Editor … MUY COMÚN, pero .... ¡Poco relevante! (Grado  3) PARALELISMO DE DATOS (Espacial) Operaciones sobre datos regulares (vectores) aplicando la misma operación sobre cada elemento MMX SSE SSE4 AVX 3DNow AltiVec 2 1 3 4 5 7 8 6 9 A B C + PARALELISMO DE DATOS: El paralelismo de datos, que veremos en el tema de SIMD, ya están en los procesadores comerciales (Intel, AMD, IBM, etc.) desde hace tiempo. Intel empezó con MMX “MultiMedia eXtension” en 1996, siguió en 1999 con SSE “Streaming SIMD Extension” y cuenta actualmente con AVX “Advanced Vector Extension”. AMD tenía su propia tecnología denominada 3DNow (aunque se pasó definitivamente a SSE y AVX) e IBM la suya con AltiVec. Para hacerse una idea, con la segunda versión de AVX (AVX2), los procesadores de Intel que lo soportan, cuentan con 32 registros de 512 bits que, en una de sus configuraciones, permitiría tener en cada uno de esos registros un vector de 8 valores de 8 Bytes (double float V[8]). Para hacernos una idea, en aplicaciones de tratamiento de imágenes, podríamos procesar imágenes que vemos en un televisor a nivel de pixel o conjunto de pixeles (muchos datos). Veamos tres formatos de televisión: FullHD 1900x1080 2.073.000 pixeles 4K UHDV 3840 x 2160 8.294.400 pixeles 8K 7860 x 4320 33.955.200 pixeles MENOS COMÚN, pero .... ¡Más relevante! (Grado  104..106)

arqAva Tipo / Fuentes (Control, Datos, Flujo) Introducción-98 PARALELISMO DE FLUJO (Temporal) Idea intuitiva => Cadena de montaje de coches Secuencia de datos homogéneos de entrada Peluquería Personas Despeinadas (Di) Lavar => Cortar => Marcar Proceso divisible en subtareas secuenciales (filtros) LCM 1Hora 3 Mill. 11:00 (2) D5,D4,D3 P1 10:45 (1) D4,D3,D2 10:00 (1) 10:15 (1) D2 10:30 (1) D3,D2 10:40 (3) (2) (1) 11:00 (4) (3) (2) D5 P1 10:30 (2) (1) D3 10:45 (3) (2) (1) D4 10:15 (1) D2 10:20 (2) (1) 10:00 (1) L C M 20’ 20’ 20’ 1,5 M 1,5M 1,5M Secuencial => 1P x Hora Vs Pipeline => 1P x 20’

arqAva Tipo / Fuentes (Control, Datos, Flujo) Introducción-99 PARALELISMO DE FLUJO (II) Direct3D F D I E M W Control Flujo Datos 3 30 106 Grado ¡ No siempre mejora de N ! ALGO COMÚN, pero .... ¡No muy relevante! (Grado  30)

arqAva Acoplamiento Introducción-100 Grado de dependencia entre las partes (Hw/Sw) Datos Comunes Cantidad relativa de interacciones Sincronismo Grano Fino Grueso FUERTE Pi Pj DC DÉBIL Pi Pj Poca localidad Cuellos de botella Mucha localidad Buena característica

arqAva Escalabilidad Introducción-101 Aumento de prestaciones con coste lineal o nlogn NO ESCALABLE 2 3 4 5 1 6 10 ESCALABLE 4 9 16 25 12 24 40 1 1,3 1,5 1,6 0,5 1,0 1,5 2,0 En la red de conexión de la izquierda (todos con todos), aumentar el número de nodos de forma lineal genera un crecimiento cuadrático en el número de enlaces necesarios. Para N nodos se necesitarían (N2-N)/1 => O(N2). Por lo tanto no escalable. En la red de conexión de la derecha (malla 2D), aumentar el número de nodos de forma lineal genera un crecimiento también lineal en el número de enlaces necesarios. Para N nodos se necesitarían (2N – 2*raizCuadrada(N) => O(2N). Por lo tanto escalable. 6 15 2,5

arqAva Escalabilidad Introducción-102 Aumento de prestaciones con coste lineal o nlogn 13.000 20.000 30.000 30.000 42.000 75.000 66.000 137.000 290.000

arqAva Límites al paralelismo Introducción-103 ¿Máxima Aceleración? – Ley de Amdahl (a) Una CPU T1 200 F T1 (1-F) T1 0,1 20 180 Secuencial Trozos paralelizables n CPU’s 5 (b) Varias CPU’s 36 Sn = T1 / Tn 8 Tn (1-F)T1/n n Sn = 1 + (n-1) F

arqAva Límites al paralelismo Introducción-104 Sn Significado F = 0% 20 n Sn = 1 + (n-1) F 16 12 F = 5% 8 ¡ F=5% => Lim Sn = 20! 4 F = 20% “Amdal’s Law in the Multicore Era”. Mark D. Hill & Michael R. Marty 2007 n 4 8 12 16 20 En la tabla 1: Symetric: Por ejemplo una máquina con 64 procesadores sencillos que pueden trabajar (reconfigurarse) como 64 simples o 16 más complejos (4 veces más potentes “rápidos”) Asymetric: Muchos cores simples y además uno o más cores rápidos para acelerar la parte secuencial Dynamic: Muchos cores simples que pueden reconfigurarse como uno más potente

arqAva Clasificación de Flynn (1972) Introducción-105 Combina Flujo de Datos y Flujo de Instrucciones con (Single) Único y Múltiple, dando 4 combinaciones: Flujo de Datos Múltiple Único Flujo de Intrucc. SISD MISD MIMD SIMD SISD Una Instrucción un Dato Von Neumann SIMD Una Instrucción muchos Datos Vectoriales / Sistólicos MISD Muchas Instrucciones un Dato Pipeline? MIMD Muchas Instrucciones muchos Datos Multiprocesadores / Multicomputadores

arqAva Modelos SISD y MISD Introducción-106 SISD: Una Instrucción un Dato (Von Neumann) I UC UP MP D MISD: Muchas Instrucciones un Dato (Pipeline?) MP Programa Datos UC1 UC2 UCN UP1 UP2 UPN I1 In I2 D

arqAva Modelo SIMD Introducción-107 SIMD: Una Instrucción muchos Datos (Vectoriales, ....) UC UP1 MP UPi UPn Memoria Común R E D Host Síncronas LockStep UC UP1 UPi UPn ML1 MLn MLi Memoria Distribuida D1 Dn Di D1 Dn Di I I I I Cuello de botella Recordar que SIMD supone que el código secuencial: for (i=0; i<N; i++) A[i] = B[i] + C[i] Puede entenderse que se ejecutan todas las operaciones de suma a la vez (si hay Unidades de Procesamiento suficientes): A[ ] = B[ ] + C[ ] Es fundamental y así lo veremos en todo el curso, la distinción entre un único espacio de memoria común para todos los procesos o no. En el caso de la MP común habrá cuello de botella en la red (dependiendo de su topología será mayor o menor: lo veremos en el tema siguiente). La MP se suele implementar con módulos que permitirán más de un acceso paralelo a la memoria principal si se trata de accesos a módulos distintos. En el caso de la Memoria Distribuida que parece librarnos del cuello de botella, el problema es cómo conseguir que los accesos de un proceso lo sean precisamente a datos que siempre se encuentran en su memoria local. Acoplamiento fuerte Acoplamiento débil No escalable

arqAva Modelo MIMD Introducción-108 MIMD: Muchas Instrucciones muchos Datos M. Común (Multiprocesador) UC1 UP1 M.P. UPi UPn BUS │ RED D1 Dn Di I1 UCi UCn In Ii M. Distribuida (Multicomputador) M P Red a t1 t2 aa a t1 t2 En el caso de Multiprocesadores (memoria común), los procesos se pueden pasar información unos a otros escribiendo y leyendo de posiciones comunes (globales) de memoria si ejecutamos procesos ligeros (threads). Hay que tener cuidado de evitar “Condiciones de Carrera” y hacer acceso seguro a memoria común con herramientas ya vistas en Programación Concurrente como semáforos, regiones críticas, monitores, etc. En el caso de Multicomputadores (no hay memoria común), no queda más remedio que pasarse información de un proceso a otro (que pueden estar en nodos distintos), mediante el envío y recepción de mensajes (así será en la primera parte de las prácticas: MPI). La mayoría de los sistemas de cierto tamaño son híbridos. Como ejemplo, nuestro cluster de prácticas del laboratorio 4401: 19 equipos conectados por red (no tienen memoria común entre ellos), pero dentro de cada PC hay 4 cores que comparten la memoria común de dicho PC. Acoplamiento Fuerte Acoplamiento Débil Memoria común vs Paso de mensajes

arqAva Clasificación de Flynn Ampliada Introducción-109 Arquitecturas Paralelas GRID Computing ? CLOUD Computing ? SISD SIMD MISD MIMD Procesadores Vectoriales Array de Procesadores Sistólicos Von Neumann ?? Multi-procesadores Multi-computadores UMA NUMA COMA Distintas formas de organizar la memoria común MPP COW NOW Beowulf Symetric Multi Processor Distributed Shared Memory

arqAva Perspectiva histórica Introducción-110 SIMD Se inicia en 1965, se vende en 1972 y funciona en 1975 Fiasco ILLIAC IV Presupuesto $6 Mill y costó $31 Mill 1/4 de máquina Se esperaban 1000 MF y se obtuvieron 15MF ¿Dormidas para propósito general?, pero tienen su nicho: Procesamiento de Imagen, Señal, Genética, Búsquedas http://ed-thelen.org/comp-hist/vs-illiac-iv.html

arqAva Perspectiva histórica Introducción-111 MIMD HWANG (1993) IDENTIFICA TRES GENERACIONES: 1983-1987 Hipercubo con Encaminamiento Sw 1988-1992 Malla con Encaminamiento Hw (Sw de grano medio) 1993-1997 µP y comunicaciones en el mismo chip (grano fino) 1983-1987 1988-1992 1993-1997 Multiprocessor systems-on-chips (MPSoCs) Hoy 4..16 núcleos ¿Se llegará a 400 en 2020?

arqAva Tendencias Introducción-112 MÁQUINAS BASADAS EN µP COMERCIALES ¿MUCHOS µP SENCILLOS O POCOS Y POTENTES? ¿QUÉ TIPO DE MÁQUINA PARALELA? MÁQUINAS MÁS POTENTES: ¿CUÁLES Y PARA QUÉ? ¿QUÉ SISTEMA OPERATIVO?

arqAva Las máquinas más potentes (Nov/2018) Introducción-113 www.top500.org ¿Qué micros se utilizan? Intel Intel 95% IBM POWER 3% Micros convencionales de gama alta Dell 98% Cray SUN/Oracle Cray Otros IBM

arqAva Las máquinas más potentes (Nov/2018) Introducción-114 www.top500.org ¿Cientos o miles de micros? Total Max Med Min 10.649.600 118.173 12.592 59.086.318 72.014 Sin TOP10

arqAva Las máquinas más potentes (Nov/2018) Introducción-115 www.top500.org ¿Qué arquitecturas dominan? MPP SMP Cluster Constelación SIMD Mono

arqAva Las máquinas más potentes (Nov/2018) Introducción-116 www.top500.org ¿Cuáles? N Ordenador Tflops Ubicación #Núcleos 1 Summit IBM Power + NVidia 143.500 Oak Ridge National Laboratory (USA) 2.397.824 2 Sierra IBM Power + NVidia 94.640 Lawrence Livermore National Laboratory (USA) 1.572.480 3 Sunway TaihuLight 93.015 National Super Computer Center (China) 10.649.600 4 Tianhe-2 (MilkyWay-2) 61.446 4.981.760 5 Piz Daint Cray XC50 Xeon 12 21.230 Swiss National Supercomputing Centre (Suiza) 387.872 25 MareNostrum 4 Xeon 24 6.471 Barcelona Supercomputer Center (España) 153.216 Centros: 3, 3, 1, 7, 6, 7, 5, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 2 Puesto: 424, 5, 11, 5, 9, 26, 60, 87, 118, 114, 36, 34, 57, 93, 129, 13, 16, 25

arqAva Las máquinas más potentes (Nov/2015) Introducción-117 www.top500.org ¿En qué se utilizan? ¿ Cada vez más en la industria ? Nov2018  Sin especificar 97% 485/500

arqAva Las máquinas más potentes (Nov/2018) Introducción-118 www.top500.org ¿Qué S.O. usan? CMOST HP-UX UNICOS UNIX Linux IRIX AIX Windows => 0 Otros OSF Solaris

arqAva ¿Quién se come a quién? Introducción-119 FIN now.cs.berkeley.edu/