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