TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej:...

26
TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y PETICIONES (TLP, RLP) (tercera parte) SISTEMAS PARALELOS Y DISTRIBUIDOS www.atc.us.es Dpto. de Arquitectura y Tecnología de Computadores. Universidad de Sevilla 1

Transcript of TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej:...

Page 1: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

TEMA 5: PARALELISMO A

NIVEL DE HILOS, TAREAS Y

PETICIONES (TLP, RLP)

(tercera parte)

SISTEMAS PARALELOS Y DISTRIBUIDOS

www.atc.us.es

Dpto. de Arquitectura y Tecnología de

Computadores. Universidad de Sevilla

1

Page 2: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

INDICE

• 5.1. Conceptos básicos.

• 5.2. Taxonomía y modelos de procesamiento paralelo.

– 5.5. Multiprocesadores con memoria centralizada.

– 5.6. Multiprocesadores con memoria distribuida.

• 5.3. Caracterización de las aplicaciones y Modelos de

programación paralela.

• 5.4. Redes y topologías de interconexión.

• 5.7. Sincronización y consistencia de memoria.

• 5.8. Sistemas multicomputadores para HPC,

servicios y almacenamiento de datos (WSC).

• 5.9. Sistemas distribuidos.

SPD. Tema 5. (terc. parte). 2

Page 3: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Redes y topologías de interconexión • Correspondencia entre topología y patrón del algoritmo.

• Redes dinámicas (indirectas)

• Redes estáticas (directas)

Malla Hipercubo Estrella SPD. Tema 5 (terc. parte). 3

Page 4: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Tiempo de comunicación: mensajes

• Tiempo de comunicación («cut-through»: mensaje troceado y envío encadenado):

tmens = ts+ttransfer. = ts+ (L*tlatencia+ T / ABtransmision ) • ts: tiempo de preparación del mensaje en emisor

(>> que tr en receptor)

• L = distancia entre nodos

• tlatencia = latencia para el primer bit • T = tamaño en bytes

• Intentar ocultar el tiempo de comunicación (en paralelo con el de computación) – Ejemplo: usar mensajes no bloqueantes

– Ejemplo : Empaquetar varios datos en un solo mensaje

SPD. Tema 5 (terc. parte). 4

Page 5: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

5.8 Sistema multicomputador: Historia

– Años 1960, 70, 80: grandes “supercomutadores”

• Centros científicos

• Centros administrativos (bancos, Hacienda, etc)

– Modelos variados:

• Proc. Vectoriales clásicos

• UMA, NUMA, MPM

– Años 90: clusters (de computación)

– Años 2000: Sist. Distribuidos + virtualización +

herramientas de gestión

www.top500.org

• Rendimiento: tiempo solución sist. ecuaciones lineales

SPD. Tema 5 (terc. parte). 5

Page 6: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

www.top500.org (I)

• Constellations

– Un cluster que usa

SMP (UMA) como

bloque básico

• Clusters

• MPP

– “Massive Parallel

Processors”

– diseño específico

SPD. Tema 5 (terc. parte). 6

MPP

Clusters

Constellations

Page 7: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

www.top500.org (II)

SPD. Tema 5 (terc. parte). 7

En el socket conviene

MultiThreads o Multi-

tasks?

Page 8: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Ejemplo: IBM Blue Gene/L (2005)

SPD. Tema 5 (terc. parte). 8

Page 9: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Herramientas sw: Capa middleware Se extiende sobre múltiples máquinas

Cómo se identifican y se asignan los componentes del sistema

Cómo interactúan los componentes

La cantidad y granularidad de la comunicación que se necesita

Los protocolos usados para la comunicación

SPD. Tema 5 (terc. parte). 9

Page 10: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Aplicaciones de los multicomputadores • (Clusters) de Alto rendimiento (Performance) (HPC)

– Utilizado en aplicaciones que realizan cálculos intensivos: Simulaciones científicas, modelos meteorológicos, renderización de gráficos, etc.

– Pretenden sustituir a los grandes y costosos supercomputadores (MPP).

• (Clusters) de alta disponibilidad (HAC)

– Intenta mantener en todo momento la prestación del servicio.

– Bases de datos, sistemas de ficheros, servidores de correo y

servidores Web.

– Interesa: Fiabilidad: (MTTF, Mean Time To Failure),

Disponibilidad, Facilidad de Mantenimiento

• (Clusters) de balanceo de carga (LBC) o alta productividad (Throughput) (HTC)

– Servidores DNS, buscadores Web, etc.

– Gran número de tareas independientes

SPD. Tema 5 (terc. parte). 10

Page 11: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Modelos de multicomputadores

– Términos ambiguos, confusos

• Mucho por recorrer. Hoy 3 modelos aprox.

– Según de menos a más centralizado:

• Clusters:

– Suena a más científico

• Grid:

– IDEA: aprovechar los tiempos no usados. Ejecutar

procesos de forma totalmente transparente en máquinas

remotas que se encuentran inactivas (estaciones de

trabajo desperdicia cerca del 80% de ciclos totales de

CPU)

• Cloud Computing

– software como servicio p ej horas de CPU (virtualización)

SPD. Tema 5 (terc. parte). 11

Page 12: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Clusters (I)

– Arquitectura distribuida de un

– conjunto de computadores independientes

– interconectados

– que funcionan como un único sistema

• (single system image)

SPD. Tema 5 (terc. parte). 12

Page 13: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Clusters (II)

• Primeros clusters de PCs (commodity):

– Beowulf (1994, NASA): Linux, Sistema de

ficheros compartido, MPI, red 10 Mbps

• Hoy: racks o blade solutions

• Al principio nodo frontend simple

• Hoy frontend + middleware:

– Sistemas de gestión de colas (Ej: PBS).

– Tolerancia a fallos y backups

– Single system image, etc.

– Cualquier tipo: HPC, LBC, HTC, HAC…

SPD. Tema 5 (terc. parte). 13

Page 14: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Grids • Aplicaciones repetitivas

• Servicios • Gestión de procesos remotos

• Acceso al almacenamiento

• Descubrimiento en registro de información

• Seguridad

• Apoyo para dar calidad de servicio (QoS) como

reserva y adquisición de recursos

• Ej: BOINC (Berkeley Open Infrastructure for Network

Computing): Proyecto Seti@Home

• Ej: Proyecto Globus: código abierto para construir

infraestructuras grid

– Gestión de Recursos, de Datos y de Servicios de Información, de

red, de planificación de cluster (gestión de tareas, de colas)

SPD. Tema 5 (terc. parte). 14

Page 15: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Cloud computing (I)

• “Pool” compartido de recursos configurables (redes,

almacenamiento, aplicaciones y servicios) que pueden

ser rápidamente provisionados y liberados con un

esfuerzo mínimo del proveedor de servicios.

• Ventajas para el usuario

– Reducción de costes del equipamiento informático

– Reducción en los costes de mantenimiento

– Reducción en los costes de licencias de software

– Actualizaciones del software y administración

garantizadas por el servicio

– Mayor fiabilidad

– Acceso ubicuo

SPD. Tema 5 (terc. parte). 15

Page 16: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Cloud computing (II)

• Empresas con exceso de capacidad de cómputo

pueden de forma rentable dejar usar sus sistemas a

distintos clientes

SPD. Tema 5 (terc. parte). 16

Tres servicios:

-Almacenamiento

-Aplicaciones

-Computación

• Futuro: intercambio

de recursos (horas

de CPU,

almacenamiento,…)

Page 17: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Cloud computing (III)

• Máquinas virtuales

• Hypervisor: Dos tipos:

• Los que ejecutan directamente sobre el HW

– XenServer, XenClient, KVM

• Los que ejecutan sobre un SO

– Virtual Server, Vmware, Virtual BOX, Virtual PC

SPD. Tema 5 (terc. parte). 17

Page 18: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Cloud computing (IV)

• Niveles de contrato (acceso) para el

usuario – Sólo almacén de datos (útil como backup)

– Sólo usa aplicaciones

– Crea herramientas y librerías (Con apoyo del

servicio)

– Tiene acceso total a máquinas (virtuales)

SPD. Tema 5 (terc. parte). 18

Page 19: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Cloud computing (V)

• Nuevos paradigmas de programación paralela:

– No genérico (sólo vale para grandes conjuntos de

datos)

– Más móvil (middleware trasparentemente distribuye y

flexibiliza las ejecuciones)

• Ej: MapReduce (Google, Apache Hadoop, etc):

– Map()

• El maestro clasifica, subdivide y reparte datos

– Puede existir jerarquía de Maps()

• Los esclavos devuelven su respuesta

– Reduce()

• El maestro recolecta respuestas y las combina

SPD. Tema 5 (terc. parte). 19

Page 20: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

EJ: Amazon EC2 (Elastic Compute Cloud)

• factura por el uso de:

– Instancias de máquinas virtuales desplegadas:

• Distintos tipos de instancias: pequeña, grande,

extra-grande, etc..

– Transferencia de Datos:

• Tarifa por los datos transferidos a/desde EC2.

– Almacenamiento:

• Tarifa por las peticiones sobre los ficheros (GET,

PUT, LIST, etc.).

– Servicios adicionales:

• Almacenamiento, monitorización, direcciones IP,

reparto de carga, etc

SPD. Tema 5 (terc. parte). 20

Page 21: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Sistemas distribuidos

Desde punto de vista de estructura:

– Arquitecturas centralizadas

• Cliente-Servidor

– Arquitecturas descentralizadas

• Distribución horizontal

• Un cliente o un servidor puede estar físicamente

dividido; los nodos actúan como clientes y

servidores al mismo tiempo

• Sistemas peer-to-peer (P2P)

Desde punto de vista de la lógica de cooperación:

– Paradigma de publicación-suscripción

– Código Móvil SPD. Tema 5 (terc. parte). 21

Page 22: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Ejemplos de Sistemas Distribuidos

SPD. Tema 5 (terc. parte). 22

Finance and commerce eCommerce e.g. Amazon and eBay, PayPal,

online banking and trading

The information society Web information and search engines, ebooks,

Wikipedia; social networking: Facebook and MySpace.

Creative industries and

entertainment

online gaming, music and film in the home,

user-generated content, e.g. YouTube, Flickr

Healthcare health informatics, on online patient records,

monitoring patients

Education e-learning, virtual learning environments;

distance learning

Transport and logistics GPS in route finding systems, map services:

Google Maps, Google Earth

Science The Grid as an enabling technology for

collaboration between scientists

Environmental management sensor technology to monitor earthquakes,

floods or tsunamis

Page 23: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Arquitecturas centralizadas

• Los servidores mantienen bases de datos

replicadas o distribuidas

SPD. Tema 5 (terc. parte). 23

Server

Server

Server

Service

Client

Client

Page 24: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Arquitecturas descentralizadas (I)

• Inicio del fenómeno P2P Napster finales 90s

– Aparece contra la filosofía cliente-servidor que

dominaba internet en la época (web)

– Los usuarios ponían canciones al servicio de una

comunidad

SPD. Tema 5 (terc. parte). 24

Page 25: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Arquitecturas descentralizadas (II)

• Políticas de consulta no estructuradas:

– mecanismos de inundación: • Simples, pero sobrecargan la red y tienen

problemas de escalabilidad

– Caminos aleatorios (random walks) • Realizamos la búsqueda usando un número de

vecinos determinados y aleatorios: más escalable

– Caminos aleatorios adaptativos. • Según TTL (time to live)

• Políticas de consulta estructuradas: • Se usan tablas hash distribuidas (DHT)

• Varios algoritmos de reparto de claves (incluso

con Super-peers ) SPD. Tema 5 (terc. parte). 25

Page 26: TEMA 5: PARALELISMO A NIVEL DE HILOS, TAREAS Y … · Computing): Proyecto Seti@Home • Ej: Proyecto Globus: código abierto para construir infraestructuras grid – Gestión de

Lógica de cooperación – Paradigma de publicación-suscripción

– Código Móvil: ej. simple: Applets con fragmentos de

código. En general C: Componente de código, R: Recurso

SPD. Tema 5 (terc. parte). 26