Multiprocesadores
Transcripción
Multiprocesadores
Multiprocesadores Jesús Labarta CEPBA-UPC Objetivos n Conocer sobre multiprocesadores l Conceptos básicos l Terminología l Problemática (mas allá de la culturilla de taberna) n Experiencia práctica l Programación l Análisis del rendimiento Jesús Labarta, MP, 2002 1 Temas n Paralelismo y multiprocesadores n Modelos de programación n Herramientas n Implementación Memoria compartida l Coherencia/consistencia l Sincronización n Implementación paso de mensajes n Interconexión n Sistema Operativo Jesús Labarta, MP, 2002 Multiprocesadores ISU FPU IDU IDU LSU IFU BXU L3 Directory/Control n Hasta los ratones (super) ISU FXU FPU FXU n Desde los dinosaurios L2 LSU L2 IFU BXU L2 Jesús Labarta, MP, 2002 2 Multiprocesadores n Desde los grandes centros americanos l Simulación: física (nuclear), aerodinámica, biología, ... n Pasando por la industria l Diseño l Planificación producción l Bases de datos n Hasta la cocina Jesús Labarta, MP, 2002 Multiprocesadores n TOP 500 l http://www.top500.org/ Jesús Labarta, MP, 2002 3 Multiprocesadores n TOP 500 l http://www.top500.org/ Jesús Labarta, MP, 2002 Multiprocesadores n TOP 500 l http://www.top500.org/ Jesús Labarta, MP, 2002 4 Multiprocesadores n TOP 500 l http://www.top500.org/ Jesús Labarta, MP, 2002 Multiprocesadores n TOP 500 l http://www.top500.org/ Jesús Labarta, MP, 2002 5 Paralelismo n Expectativa l más currantes ü menos tiempo ü más trabajo en el mismo tiempo … .. lineal Jesús Labarta, MP, 2002 Paralelismo n Realidad l Reparto del trabajo (balanceo) ü A veces no hay ü A veces se repite l Sobrecarga (overhead) ü generación del trabajo ü sincronización n Resultado l El equipo rinde más que uno solo l No siempre de forma lineal l A veces mas que la suma de individualidades Jesús Labarta, MP, 2002 6 Paralelismo: uso n Capability computing l Abordar grandes problemas ü No solo tiempo (CPUs) ü Tambien Memoria, I/O,... n Capacity computing: l Throughput. Muchos problemas Jesús Labarta, MP, 2002 Multiprocesadores n Que tenemos nosotros l SGI Origin2000: l ü 64 MIPS R10000 l Cluster ü 64 Pentiums III ü 16 Pentiums II IBM SP: ü : 128 Power3 ü : 32 Power4 l HP (compaq): ü : 12 Alpha 21264 l SMPs pequeño ü 4 Pentiums ü 4 Itaniums ü : 16 Alpha 21264 … . no estamos en el mapa … pero se puede hacer mucho Jesús Labarta, MP, 2002 7 Modelos de rendimiento n Modelo l Relación entre ü parámetros del sistema ü Indicadores de rendimiento l Util ü Predecir rendimiento – Expectativas ü Entender funcionamiento Si se sabe utilizar … … mejor cuanto menos coincida con la realidad Jesús Labarta, MP, 2002 Modelos de rendimiento n Indicadores de rendimiento l Tiempo ü Speed-up ü Eficiencia l Throughput T(p) S(p) = T(1)/T(p) ?(p) = S(p)/p ??/T ??∈ {trabajos, iteraciones, problemas...} n Otros indicadores l Calidad precio ü MFLOP/$ ü MFLOP/Watio ü MFLOP/m2 Jesús Labarta, MP, 2002 8 Modelos de rendimiento n Ley de Amdahl l T(1) = Tseq + Tpar l T(P) = Tseq + Tpar/P l S(P) = 1/((1-f)+f/P) ü f=Tpar/T(1) l fracción paralelizable del programa Lo que no se paraleliza, no va mas rápido … . acaba siendo el factor que limita Jesús Labarta, MP, 2002 Speed-up: Amdahl’s Law Scalability for different sequential fraction 1000.00 100.00 Speedup 0.995 0.99 0.95 0.9 10.00 0.8 1.00 1 2 4 8 16 32 64 128 256 512 # processors S(p) = 1 / (1 - f + (f / p)) Jesús Labarta, MP, 2002 9 Speed-up: Overheads Scalability for different sequential fractions. Overhead 0.05 Scalability for different sequential fractions. Overhead 0.0005 100.00 100.00 10.00 10.00 0.995 0.99 0.95 1.00 0.9 1 2 4 8 16 32 64 128 256 512 0.99 Speedup Speedup 0.995 0.95 1.00 1 0.8 2 4 8 16 32 64 128 256 512 0.9 0.8 0.10 0.10 # processors S(p) = 1 / (1 - f + (f / p)+o) # processors S(p) = 1 / (1 - f + (f / p)+o*p) Jesús Labarta, MP, 2002 Architectures n Shared Memory l SMP l NUMA n Distributed Memory n Hierarchical mix l SMP nodes @ Distributed memory Jesús Labarta, MP, 2002 10 Shared Memory n SMP (symmetric multiprocessor): l UMA l Issues ü Interconnection network: – Aggregated bandwidth: bus, crossbar. – Latency ü Cache: coherency, consistency I/O Memory Interconnect Cache ... Processor Jesús Labarta, MP, 2002 Distributed Shared Memory Interconnect Node Memory Network Interface Cache ... Processor n Load/stores: local/remote depending on physical address n NUMA (non-uniform memory access): remote accesses may take 5-10 times longer Jesús Labarta, MP, 2002 11 Distributed Shared Memory Interconnect Node Memory Network Interface Cache ... Processor n Issues: l Interconnection network: latency, topology, bisection bandwidth l Cache: coherency, consistency !! l Locality of access Jesús Labarta, MP, 2002 Distributed Memory Interconnect Node Memory Network Interface Controller Cache ... Processor n Load/stores: local n I/O: send/receive (local address + node addressing mechanism) n Private / commodity networks Jesús Labarta, MP, 2002 12 Distributed Memory Interconnect Node Memory Network Interface Controller Cache ... Processor n Issues l Interconnection network: ü latency, topology, bisection bandwidth ü Injection mechanism n SMP nodes Jesús Labarta, MP, 2002 Modelos de programación n Mecanismos disponibles al programador para expresar la estructura lógica de un programa n Influye l Complejidad del programa ü Costo de desarrollo ü Legibilidad. Costo de mantenimiento l Rendimiento ü Influenciado por el modelo ü por la implementación del modelo ü Por la estructura de paralelización Jesús Labarta, MP, 2002 13 Modelos de programación n Componentes l Datos l Procesos l Comunicación l Sincronización l Entrada/salida Jesús Labarta, MP, 2002 Secuencial Variable globales: C D Variables dinámicas(locales): Visibilidad local Se puede pasar puntero al llamar funciones Vida limitada Librerias: malloc: Visible global S Problemas: Desbordamiento pilas Errores difíciles detectar (efecto variable y lejano) Jesús Labarta, MP, 2002 14 Memoria compartida: espacio @ C Variable globales: Unica copia D Variables dinámicas(locales): Acceso normal: privadas Accesibles globalmente (pasar puntero) Librerias: Exclusión mutua S1 malloc: Visible global Problemas: Desbordamiento pilas Errores difíciles detectar (efecto variable y lejano) S2 S3 Jesús Labarta, MP, 2002 Memoria Distribuida: espacio @ C C C D D D Variables globales: Replicadas: misma dirección lógica mantener consistencia Distribuidas: misma dirección, distinto objeto Variables dinámicas(locales): privadas (no posibilidad compartir) ~ mismas direcciones lógicas S S S Librerías: Locales. malloc: local ~ mismas direcciones lógicas Jesús Labarta, MP, 2002 15 Modelos n Memoria compartida l Pthreads l OpenMP ü http://www.openmp.org ü http://www.compunity.org n Memoria distribuida l MPI ü http://www.mpi.org ü http://www-unix.mcs.anl.gov/mpi/ Jesús Labarta, MP, 2002 Espectro Architecture DM-MP NUMA SMP MPI@T3E SVM OpenMP@O2000 shmem@T3E OpenMP@Alphasever Coherent SM MPI@O2000 MPI@Sun Non coherent SM MP Programming model Jesús Labarta, MP, 2002 16 Paralelización n Fases l Descomposición l Asignación l Orquestación l Mapeo Algorítmico, ideas Programación, sistema Jesús Labarta, MP, 2002 n Aspectos básicos de programación en los distintos modelos Jesús Labarta, MP, 2002 17 Pthreads: programación Memoria compartida Distribución de cálculo Double A(30,30) integer i,j Do j = 1,30 Do i =1,30 A(i,j) = 2* A(i,j) A(i,j) = j* A(i,j) A(i,j) = i* A(i,j) C D S1 Double A(30,30) interger thid, j main() { Do j = 1,30 Do thid=1,num_threads iinf = f(thid) isup = f(thid) create_thread(Loops_body,iinf,isup) } Loop_body(iinf,isup) { Do i =iinf,isup A(i,j) = 2* A(i,j) A(i,j) = j* A(i,j) A(i,j) = i* A(i,j) } S2 S3 Jesús Labarta, MP, 2002 OpenMP: programación Secuencial Distribución de cálculo Double A(30,30) integer i,j Do j = 1,30 Do i =1,30 A(i,j) = 2* A(i,j) A(i,j) = j* A(i,j) A(i,j) = i* A(i,j) C D S1 Double A(30,30) interger i,j Do j = 1,30 C$OMP PARALLEL DO C$OMP PRIVATE (i) Do i =1,30 A(i,j) = 2* A(i,j) A(i,j) = j* A(i,j) A(i,j) = i* A(i,j) S2 S3 Jesús Labarta, MP, 2002 18 MPI: programación Secuencial Memoria distribuida Distribución de datos Double A(30,30) integer i,j Do j = 1,30 Do i =1,30 A(i,j) = 2* A(i,j) A(i,j) = j* A(i,j) A(i,j) = i* A(i,j) C C C D D D S S S Double A(10,30) myrank = quien_soy() Do j = 1,30 Do li =1,10 i=li+myrank*10 A(li,j) = 2* A(li,j) A(li,j) = j* A(li,j) A(li,j) = i* A(li,j) Jesús Labarta, MP, 2002 Economía n Precio / rendimiento n Costes l Adquisición l Mantenimiento l Espacio y consumo l Gestión ü system s Jesús Labarta, MP, 2002 19 Que se puede esperar? Potencia (MFLOPS, MIPS) 1 Procesador Tamaño del problema Aceleracion (Speedup) Ideal Superlineal Paralelismo Ley Amdahl Overhead Sublineal Numero de procesadores Jesús Labarta, MP, 2002 Que se puede esperar? Utilidad = F( practica, imaginación) Utilidad Ideal Imaginación Superlineal Lineal Discreta Sublineal Tiempo de ejecución Costo r do uta p com per u la S sca ee les d nib ia o m p o n Dis Eco Numero de procesadores Jesús Labarta, MP, 2002 Numero de procesadores Utilidad la les sca or nib e o tad sp de i u p D a om mi no erc o p Ec Su Costo 20 Economía n Necesidad: l Usuario ≅ gas ü PV=nRT – P ∝ 1/ V l ⇒ Solo si esta muy comprimido empuja de verdad Usuario ≠ gas – Una vez expandido es difícil volver atrás l Tendencias ü COTS: procesadores, redes, software Jesús Labarta, MP, 2002 Economía: desarrollo n Memoria comparida n Memoria distribuida Sup Sup Effort Effort Jesús Labarta, MP, 2002 21 Herramientas n Analizar una aplicación (sweep3d) l Secuencial l Paralela n Profile l perfex l ssrun n Traceo l Paraver l Dimemas l Paradyn Jesús Labarta, MP, 2002 Herramientas n Analizar rendimiento de aplicaciones l Donde están sus cuellos de botella l Información para optimizarla n Fases: l Adquisición datos l Análisis Jesús Labarta, MP, 2002 22 Adquisición de datos n Instrumentación l Qué: ü código usuario ü librería ü sistema l Quien: ü manual ü compilador ü automático l Método: ü traceo / muestreo (correlado con … ) ü Post-mortem / on-line Jesús Labarta, MP, 2002 Adquisición de datos n A tener en cuenta l Perturbación de la ejecución: ü Causa: tiempo instrumentación, polución cache, almacenamiento,… ü Minimización: implementación, soporte hardware ü Efecto: conocerlo. Vivir con el. l Tamaño datos: ü Problema almacenamiento y postproceso ü Control de la instrumentación: manual, automático ü Procesado on-line – Overhead – Reducción información Jesús Labarta, MP, 2002 23 Análisis n Objetivo l Transmitir información al usuario: maximizar n Enfoque l Percepción l Cuantificación n Presentación l Qué: magnitudes => vista ü actividad temporal, fallos de cache, rutina, … l Cómo: modelo de presentación ü Textual ü Gráfico ü sonoro,... Jesús Labarta, MP, 2002 Aplicaciones n Solver iterativo n Radix sort n LU Jesús Labarta, MP, 2002 24