PDF de programación - Programación Multithreading

Imágen de pdf Programación Multithreading

Programación Multithreadinggráfica de visualizaciones

Publicado el 22 de Junio del 2018
251 visualizaciones desde el 22 de Junio del 2018
4,0 MB
162 paginas
Creado hace 8a (31/07/2012)
PROGRAMACIÓN
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Ó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ú
  • Links de descarga
http://lwp-l.com/pdf12050

Comentarios de: Programación Multithreading (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad