Computación de Altas Prestaciones
Sistemas computacionales
Javier Cuenca, Domingo Giménez
Departamento de Informática y Sistemas Universidad de Murcia, Spain
dis.um.es/~domingo
2
Francisco Almeida, Domingo Giménez, José Miguel Mantas, Antonio M. Vidal:
Introducción a la Programación Paralela Paraninfo Cengage Learning, 2008
Capítulo 1: Introducción a la programación paralela
Capítulo 2: Modelado de computadores paralelos
Motivación
Problemas de alto coste computacional:
Necesario abordarlos con sistemas
computacionales de altas prestaciones
Con programas paralelos eficientes
Con nuevos sistemas:
Resolución de problemas de mayor dimensión
Resolución de problemas previamente
Universidad de Murcia 4
Contenido y organización
Planificado:
Sistemas computacionales (1Te+0 Pr+3 Tr)
Paradigmas de programación paralela (1 Te+0 Pr+0 Tr)
Organización:
Presentación+sistemas+paradigmas: 1.5 horas
Trabajo sin evaluar: lectura sobre distintos
sistemas
Programación paralela
U so de varios procesadores trabajando juntos para resolver una tarea común :
Cada procesador trabaja en una porción del problema
Los procesos pueden intercambiar datos, a través de:
la memoria (Modelo de Memoria Compartida, OpenMP)
por una red de interconexión (Modelo de Paso de
Mensajes, MPI)
Universidad de Murcia 6
Necesidad de la programación paralela
Límites de sistemas secuenciales:
Memoria
Velocidad
Incremento coste superior al de prestaciones
Solución paralelismo:
Dificultades físicas: integración, velocidades acceso
Dificultades lógicas: uso, programación
Necesidad de la programación paralela
Sistemas paralelos permiten resolver:
Problemas mayores
Más rápidamente
Aplicación en:
Problemas de alto coste computacional
Problemas de gran dimensión
Problemas de tiempo real
Universidad de Murcia 8
Aspectos de la programación paralela
Dificultades físicas:
Mayor velocidad proceso que acceso a memoria y comunicación
Integración:
Límites velocidad de la luz
Disipación de calor
Aspectos de la programación paralela
Ley de Moore: el número de procesadores integrados se duplica cada 18 meses
Procesadores Intel
Paralelismo
10
Programación paralela
Paralelismo en monoprocesadores:
Segmentación encauzada. Pipeline
Jerarquía de memorias
División de memoria en bloques
Paralelismo a nivel de instrucción
Ejecución fuera de orden
Especulación
Múltiples unidades funcionales
Unidades vectoriales
Procesadores de E/S
...
Programación paralela
Posibilidades de computación paralela:
Varios procesadores en un chip
Procesadores embebidos
LAN de altas prestaciones
Procesadores gráficos
Computación de altas prestaciones
Computación grid
Computación web
Computación ubicua
Cloud computing
Universidad de Murcia 12
Programación paralela
Concurrente: varios procesos trabajando en la resolución de un problema
Heterogénea: procesadores con distintas características
Adaptativa: durante la ejecución el programa se adapta al estado del sistema
Distribuida: procesadores geográficamente distribuidos
En la web: necesidad de herramientas específicas
¿Cuántica o biológica?
Modelos de computadores paralelos
Procesador Memoria
SECUENCIAL (SISD) Modelo Von Neuman
Instrucciones:
de memoria a procesador Datos:
entre memoria
y procesador
14
Modelos de computadores paralelos
SIMD.
Una única Unidad de Control.
La misma instrucción se ejecuta síncronamente por todas las unidades de procesamiento.
Procesador Procesador Procesador
programa
instrucciones
datos
Modelos de computadores paralelos
MIMD.
Cada procesador ejecuta un programa diferente independientemente de los otros procesadores.
Procesador programa
instrucciones
Procesador programa
instrucciones
Procesador programa
instrucciones
16
Modelos de computadores paralelos
Memoria compartida – un único espacio de memoria. Todos los procesadores tienen acceso a la memoria a través de una red de conexión:
Bus
Red de barras cruzadas Red multietapa
Memoria distribuida – cada procesador tiene su propia memoria local. Se utiliza paso de mensajes para intercambiar datos.
P P P P P P
B U S
M e m o r y M
P
M P M
P M
P
M P
M P
Network
Sistemas de memoria compartida
Uniform memory access (UMA)
Cada procesador tiene acceso uniforme a memoria. También se llaman
symmetric multiprocessors (SMPs)
P P P P
BUS M em ory
Nonuniform memory access (NUMA) El tiempo de acceso depende de dónde están los datos. El acceso local es más
P P P P
BU S Me m o ry
P P P P
BUS Me m o ry
18
Sistemas de memoria compartida
NUMA: SGI Origin 2000
Sistemas de memoria distribuida
anillo
Diámetro: p/2
Malla
Diámetro: √p
Servidor
de ficheros Estaciones de trabajo
red
Hipercubo
20
Evolución de los sistemas paralelos
TOP500
En Murcia
– Personal:
• Uso de OpenMP y MPI en monoprocesadores, bipros, quad – Empresas y Administración:
• Redes o multiprocesadores de reducido tamaño
• Uso para manejo de volúmenes de datos grandes, sin programación paralela
• Uso de programas paralelos desarrollados por otros
• ¿Ibarabi?: supercomputador MC + clusters, en 2009, computación científica+empresas – Universidad:
• Cartagena: híbrido MC+MD, 12 nodos de 8 núcleos + 2 nodos de 16 núcleos
• Murcia: híbrido MC+MD, ¿12 nodos de 8 núcleos?
• Resolución de problemas científicos, uso mínimo de paralelismo
22