PDF de programación - Sesión 6. Paralelismo. Conceptos y técnicas - Ingeniería de los Computadores

Imágen de pdf Sesión 6. Paralelismo. Conceptos y técnicas - Ingeniería de los Computadores

Sesión 6. Paralelismo. Conceptos y técnicas - Ingeniería de los Computadoresgráfica de visualizaciones

Publicado el 17 de Diciembre del 2018
377 visualizaciones desde el 17 de Diciembre del 2018
1,1 MB
55 paginas
Creado hace 11a (29/10/2012)
Sesión 6. Paralelismo. Conceptos y

técnicas

Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

• #1 TOP500 (6/2012) - Sequoia


 Manufacturer: IBM
 Núcleos: 1572864
 OS: Linux
 Interconexión: a medida
 Rendimiento máximo: 16324,8 TF
 Rendimiento pico: 20132,7 TF
 Consumo: 7890 kW
 Lugar: Lawrence Livermore National Laboratory (LLNL)
 https://computing.llnl.gov/
 Especificaciones detalladas:

https://computing.llnl.gov/?set=resources&page=OCF_resources#sequoia


Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

• #5 TOP500 (6/2012) – Tianhe 1A


 #1 TOP500 (11/2010)
 Manufacturer: NUDT (National University of Defense Technology)
 Núcleos: 186368
 OS: Linux
 Interconexión: propietaria
 Rendimiento máximo: 2566 TF
 Rendimiento pico: 4701 TF
 Consumo: 4040 kW
 Lugar: National Supercomputing Center in Tianjin
 http://www.nscc-tj.gov.cn/en/
 Especificaciones detalladas: http://www.nscc-

tj.gov.cn/en/resources/resources_1.asp


Introducción

Ingeniería de los Computadores
Sesión 6. Paralelismo

• #177 TOP500 (6/2012) – Barcelona Supercomputing Center


 Manufacturer: Bull
 Núcleos: 5544
 OS: Linux
 Interconexión: Infiniband
 Rendimiento máximo: 103,2 TF
 Rendimiento pico: 182,9 TF
 Consumo: 81,50 kW
 Lugar: Barcelona Supercomputing Center
 http://www.bsc.es/
 Especificaciones detalladas: http://www.bsc.es/marenostrum-support-

services/res



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

• Y todo esto…¿para qué?


 Defensa

 Terrorismo
 Programa armamentístico
 Programa espacial

 Energía

 Combustible basado en hidrógeno
 Prospección de energías (carbón, gas, petroleo)

 Ingeniería

 Nanotecnología
 Modelado biológico
 Análisis de imagen



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Uso de un supercomputador

 Procesamiento paralelo


Estudia los aspectos relacionados con la división de una aplicación en unidades

independientes y su ejecución en múltiples procesadores para reducir tiempo y/o

aumentar la complejidad del problema.



 Procesamiento distribuido


Estudia los aspectos relacionados con la ejecución de múltiples aplicaciones al

mismo tiempo utilizando múltiples recursos (procesadores, memorias, discos y

bases de datos) situados en distintas localizaciones físicas.



Introducción

Conceptos

Ingeniería de los Computadores
Sesión 6. Paralelismo

• Clasificación de computadores paralelos (según el sistema de

memoria)

 Multiprocesadores. Comparten el mismo espacio de memoria (el

programador no necesita saber dónde están los datos)


 Multicomputadores. Cada procesador (nodo) tiene su propio
espacio de direcciones (el programador necesita saber dónde
están los datos)



• Diseño de un computador paralelo

 Nodos de cómputo
 Sistema de memoria
 Sistema de comunicación
 Sistema de entrada/salida



Introducción

Conceptos

Ingeniería de los Computadores
Sesión 6. Paralelismo

• Multiprocesador con memoria centralizada (SMP – Symmetric

MultiProcessor)

 Mayor latencia
 Poco escalable
 Comunicación mediante variables compartidas (datos no duplicados en

memoria principal)

 Necesita implementar primitivas de sincronización
 No necesita distribuir código y datos
 Programación más sencilla (generalmente)



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Comunicación en un multiprocesador



Introducción

Conceptos

Ingeniería de los Computadores
Sesión 6. Paralelismo

• Multicomputador
 Menor latencia
 Mayor escalabilidad
 Comunicación mediante paso de mensajes (datos duplicados en

memoria)

 Sincronización mediante mecanismos de comunicación
 Distribución de carga de trabajo (código y datos) entre procesadores
 Programación más difícil



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Comunicación asíncrona en un multicomputador



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Comunicación síncrona en un multicomputador



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Redes de interconexión en multiprocesadores



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Redes de interconexión en multicomputadores



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Clasificación de computadores paralelos



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Otros tipos de computadores paralelos

 MPP (Massive Parallel Processor). Número de procesadores superior a

100. Sistemas con redes diseñadas a medida.

 Cluster. Computadores completos (PC’s, servidores, etc.) conectados

con alguna red comercial tipo LAN que se utiliza como recurso de
cómputo único. El tráfico de la red se reduce al ocasionado por la
aplicación ejecutada (no hay tráfico externo)

 Cluster Beowulf. Cluster con sistema operativo libre (Linux) y hardware

y software de amplia difusión

 Constelaciones. Cluster de SMP con un nº de procesadores en un nodo

mayor que el nº de nodos del cluster



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Otros tipos de computadores paralelos

 Redes de computadores. Conjunto de computadores conectados por
una LAN. Por la red circula tanto tráfico de la aplicación paralela como
externo

 GRID. Conjunto de recursos autónomos distribuidos geográficamente

conectados por infraestructura de telecomunicaciones y que conforman
un sistema de altas prestaciones virtual



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Tipos de paralelismo

 Paralelismo funcional


Se obtiene a través de la reorganización de la estructura lógica de una aplicación.

Existen diferentes niveles de paralelismo funcional según las estructuras que se

reorganicen.



 Paralelismo de datos


Implícito en operaciones con estructuras de datos tipo vector o matriz. Está

relacionado con operaciones realizadas sobre grandes volúmenes de datos que

sean independientes entre si.



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Paralelismo funcional

Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Tipos de paralelismo
 Paralelismo explícito


Paralelismo no presente de forma inherente en las estructuras de programación y

que se debe indicar expresamente.



 Paralelismo implícito


Paralelismo presente (aunque puede no estar ejecutándose de forma paralela)

debido a la propia estructura de los datos (vectores) o de la aplicación (bucle)



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

• Unidades de ejecución: hilos y procesos



 Hardware (procesador). Gestiona la ejecución de las instrucciones



 Software (SO). Gestiona la ejecución de hilos y procesos



 Proceso: espacio de direcciones virtuales propio



 Hilos: comparten direcciones virtuales, se crean y destruyen más rápido y

la comunicación también es más rápida


Introducción

Conceptos

Ingeniería de los Computadores
Sesión 6. Paralelismo

Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

Prog. Paralela

• Detección y extracción de paralelismo



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

Prog. Paralela

• Problemas introducidos por la programación paralela

 División en unidades de cómputo independientes (tareas)
 Agrupación de tareas (código y datos) en procesos/hebras
 Asignación a procesadores
 Sincronización y comunicación



• Situación inicial (normalmente)

 Se parte de una versión secuencial (no paralela)
 Se parte de una descripción de la aplicación
 Elementos de apoyo:

• Programa paralelo que resuelva un problema semejante
Librerías de funciones paralelas (BLAS, LAPACK, OpenMP)




Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

Prog. Paralela

• Modos de programación paralela

 SPMD (Single Program Multiple Data)



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

Prog. Paralela

• Modos de programación paralela

 SPMD (Single Program Multiple Data). Ejemplo



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

Prog. Paralela

• Modos de programación paralela

 MPMD (Multiple Program Multiple Data)



 Modo Mixto SPMD-MPMD



Introducción

Conceptos

Prog. Paralela

Ingeniería de los Computadores
Sesión 6. Paralelismo

• Herramientas que facilitan la programación paralela



 Compiladores paralelos. Extracción automática del paralelismo



 Directivas del compilador (OpenMP): lenguaje secuencial + directivas



 Lenguajes paralelos (HPF, Occam, Ada)



 Bibliotecas de funciones (Pthread, MPI, PVM): lenguaje secuencial +

funciones de biblioteca como interfaces



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

Prog. Paralela

• Comunicación. Alternativas



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

Prog. Paralela

• Comunicación: uno a todos



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

Prog. Paralela

• Comunicación: todos a uno



Ingeniería de los Computadores
Sesión 6. Paralelismo

Introducción

Conceptos

Prog. Paralela

• Comunicación: múltiple uno a uno



Ingeniería
  • Links de descarga
http://lwp-l.com/pdf14569

Comentarios de: Sesión 6. Paralelismo. Conceptos y técnicas - Ingeniería de los Computadores (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