PROGRAMACIÓN
MULTITHREADING
Sergio Nesmachnow (
[email protected])
Gerardo Ares (
[email protected])
Escuela de Computación de Alto Rendimiento
(ECAR 2012)
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 1
INTRODUCCIÓN
TEMA 1: INTRODUCCIÓN
PROGRAMACIÓN MULTITHREADING
Escuela de Computación de Alto Rendimiento
(ECAR 2012)
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 2
INTRODUCCIÓN
CONTENIDO
• Objetivos del curso
• Introducción
• Arquitecturas secuenciales y paralelas
• Medidas de performance
• Arquitecturas multinúcleo
• Conceptos a nivel del sistema operativo
• Mecanismos de programación paralela en lenguaje C
• Introducción a la programación con threads
• Ambiente de prácticos
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 3
INTRODUCCIÓN
OBJETIVOS DEL CURSO
OBJETIVOS DEL CURSO
• Presentar los fundamentos de la computación de alto desempeño y su
aplicación para la resolución eficiente de problemas con grandes
requisitos de cómputo y en escenarios realistas.
• Introducir los conceptos básicos de la computación paralela en
ambientes de memoria compartida.
• Presentar conceptos, técnicas y herramientas de desarrollo de
aplicación inmediata en la practica.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 4
INTRODUCCIÓN
PROGRAMACIÓN PARALELA
INTRODUCCIÓN A LA COMPUTACIÓN
DE ALTO DESEMPEÑO
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 5
INTRODUCCIÓN
INTRODUCCIÓN
• Importancia de poder satisfacer los requisitos crecientes de poder de
cómputo
– Problemas complicados.
– Modelos complejos.
– Grandes volúmenes de datos.
– Capacidad de respuesta en tiempo limitado (sistemas de tiempo real).
• Procesamiento paralelo
– Varios procesos cooperan para resolver problema común.
– Aplicación de técnicas de división de tareas o de datos para reducir el
tiempo de ejecución de un proceso o una aplicación, mediante la
resolución simultánea de algunos de los subproblemas generados.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 6
INTRODUCCIÓN
INTRODUCCIÓN
• Computador paralelo
– Conjunto de procesadores capaces de trabajar cooperativamente en la
resolución de problemas computacionales.
– La definición incluye un amplio espectro: supercomputadoras,
procesadores masivamente paralelos (MPP), clusters, etc.
– Característica fundamental: disponibilidad de múltiples recursos de
cómputo.
• Computación de alto desempeño
– Ha dejado de ser “exótica”.
– Posibilitada por avances en diferentes tecnologías:
– Poder de procesamiento (microprocesadores).
– Redes (comunicación de datos).
– Desarrollo de bibliotecas e interfaces para programación.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 7
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
Collosus 2 (UK), primer computador
1938
paralelo: 50.000 op/s.
1948
IBM NORC (Columbia U, USA),
reloj de 1 µs., 67.000 op/s.
1964
Zuse Z1 (Ale), primer
computador mecánico: 1 op/s.
1946
ENIAC (USA), 5.000 op/s.
1954
IBM 7030 “Stretch” (LANL, USA),
1.2 MFLOPS.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 8
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
M-13 (Nauchno-Issledovatesky Institute
Vychislitelnyh Kompleksov, URSS): 2.4 GFLOPS.
1985
1984
Cray-2/8 (LANL, USA),
3.9 GFLOPS.
1997
Intel ASCI Red/9152 (Sandia NL,
USA, 1997): 1.338 TFLOPS.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 9
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
Incremento de poder de cómputo en GFlops (Top500, escala logarítmica!).
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 10
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
• Similar comportamiento para otros indicadores.
– Frecuencia de relojes.
– Densidad de circuitos en chips de procesadores.
– Capacidad de almacenamiento secundario.
– Capacidad de transmisión por bus/red.
• Siguen el mismo comportamiento exponencial, con diferentes
pendientes.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 11
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
• Junio de 2008:
– Petaflop supercomputer (Peta = 1015 = 1000000000000000).
– Roadrunner (LANL), 1.026 petaflop/s.
• BladeCenter QS22 Cluster.
• PowerXCell 8i 3.2 Ghz / Opteron DC 1.8 GHz.
• Híbrido: 6,562 dual-core AMD Opteron® y 12,240 Cell chips.
• 98 terabytes de memoria.
• 278 IBM BladeCenter® racks (560 m2).
• 10,000 conexiones (Voltaire Infiniband y Gigabit Ethernet), 90 km de fibra óptica.
– Otros equipos del Top 5
• IBM BlueGene/L (ANL), 478.2 teraflop/s.
• IBM BlueGene/P (ANL), 450.3 teraflop/s.
• Ranger SunBlade x6420 (U. of Texas), 326 teraflop/s.
• Jaguar Cray XT4 (ORNL), 205 teraflop/s.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 12
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
Roadrunner
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 13
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
• Junio de 2010:
– Jaguar (Oak Ridge National Laboratory, USA), 1.75 petaflop/s.
• Pico teórico: 2.7 petaflop/s.
• Cray XT5-HE Cluster.
• 37.376 AMD x86, 64 bits, Opteron Six Core 2.6 GHz.
• 299 terabytes de memoria.
• 224.162 núcleos.
• 10.000 TB de disco, red de 240 Gb/s.
– Nebulae (National Supercomputing Centre, China), 1.27 petaflop/s.
• Pico teórico: 2.98 petaflop/s.
• Dawning TC3600 Blade.
• Híbrido: cuad-core Intel X5650 y 4.640 NVidia Tesla C2050 GPU .
• 120.640 núcleos.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 14
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
Jaguar
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 15
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
• Julio de 2011:
– K computer (RIKEN Advance Institute for Computational Science, Japón)
– Pico de desempeño real (LINPACK): 8.1 petaflops.
• Pico teórico: 8.8 petaflop/s.
• Fujistsu cluster.
• 68.544 SPARC64 VIIIfx procesadores, 8-core.
• 1032 terabytes de memoria.
• 548.352 núcleos de procesamiento.
• Red de interconexión seis-dimensional (Tofu), interfaz basada en Open MPI.
• Sistema operativo basado en Linux.
• File system paralelo basado en Lustre, optimizado para escalar hasta varios
cientos de petabytes.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 16
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
Kei
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 17
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
• Junio de 2012:
– Sequoia (DOE/NNSA/LLNL, EUA)
– Pico de desempeño real (LINPACK): 16.3 petaflops.
• Pico teórico: 20.1 petaflop/s.
• IBM cluster.
• 1572864 cores.
• 1572 terabytes de memoria.
• Red personalizada.
• Sistema operativo basado en Linux.
• Uno de los sistemas con mayor eficiencia energética.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 18
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
Sequoia
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 19
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA: ARQUITECTURAS
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 20
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA: SISTEMAS OPERATIVOS
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 21
INTRODUCCIÓN
INFRAESTRUCTURA
• La tecnología ha avanzado, permitiendo disponer de máquinas paralelas
“caseras”.
– Clusters de computadores de bajo costo.
• Internet surge como una fuente potencial de recursos de computación
ilimitados.
– Internet 2 amplía la banda y la potencia de comunicación entre equipos.
• Se ha desarrollando la tecnología grid (y recientemente cloud):
– Permiten compartir recursos informáticos (locales o remotos) como si
fueran parte de un único computador.
– Brinda capacidad de gestionar y distribuir la potencia de cálculo disponible
en la mediana empresa.
– Empresas de renombre e investigadores trabajan en diseño de soluciones
tecnológicas en este sentido.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 22
INTRODUCCIÓN
INFRAESTRUCTURA
• Las alternativas mencionadas constituyen opciones realistas para
tratar de lograr capacidad de cómputo competitivo.
– Obviamente, sin llegar a los límites de los mejores supercomputadores
del Top500.
• Sin embargo, permiten resolver problemas interesantes en los
entornos académicos, industriales y empresariales, con una
infraestructura de bajo costo.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 23
INTRODUCCIÓN
CLUSTERS
Cluster FING, Facultad de Ingeniería, Universidad de la República, Uruguay
ECAR 2012 – PROGRAMACIÓN MULTITHREADING 24
INTRODUCCIÓN
CLUSTER FING
• TOTAL: 1364 núcleos de procesamiento
– 404 nú
Comentarios de: Programación Multithreading (0)
No hay comentarios