sistemas multiprocesadores
MULTITHREADING
Sergio Nesmachnow (sergion@fing.edu.uy)
Gerardo Ares (gares@fing.edu.uy)
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ÓNCONTENIDO
•
•
•
•
•
•
•
•
•
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ÓNOBJETIVOS 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óninmediata 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.
Grandesvolú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
paralelo:50.000 op/s.
1948
1938
Zuse Z1 (Ale), primer
computador mecánico: 1 op/s.
1946
IBM NORC (Columbia U, USA),
reloj de 1 µs., 67.000 op/s.
ENIAC (USA), 5.000 op/s.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING
8
1954
1964
IBM 7030 “Stretch” (LANL, USA),
1.2 MFLOPS.
INTRODUCCIÓN
EVOLUCIÓN TECNOLÓGICA
M-13 (Nauchno-Issledovatesky Institute
Vychislitelnyh Kompleksov,URSS): 2.4 GFLOPS.
1985
1984
1997
Cray-2/8 (LANL, USA),
3.9 GFLOPS.
ECAR 2012 – PROGRAMACIÓN MULTITHREADING
Intel ASCI Red/9152 (Sandia NL,
USA, 1997): 1.338 TFLOPS.
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
• Similarcomportamiento 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:
–...
Regístrate para leer el documento completo.