PDF de programación - Introducción a la Computación Paralela

Imágen de pdf Introducción a la Computación Paralela

Introducción a la Computación Paralelagráfica de visualizaciones

Publicado el 29 de Julio del 2018
147 visualizaciones desde el 29 de Julio del 2018
3,1 MB
61 paginas
Creado hace 3a (23/09/2016)
Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Metodología de la Programación Paralela

Facultad Informática, Universidad de Murcia

Introducción a la

Computación Paralela

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Bibliografía básica

Del curso, capítulos 1 a 6
De esta sesión, capítulos 1 y 2

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Contenido

1

Introducción

2 Sistemas y Programación Paralela

3 Paradigmas de Programación Paralela

Clasificaciones
Programación con Memoria Compartida
Programación con Paso de Mensajes
Simple Instrucción Múltiple Dato (SIMD)

4 Entornos de Programación Paralela
Ejemplo de uso de hilos en Java
Ejemplo de fork-join en C
Ejemplo de paralelismo con Pthreads

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Programación Paralela

Uso de varios elementos de proceso trabajando juntos para
resolver una tarea común:

Cada elemento de proceso trabaja en una porción del
problema
e intercambian datos, a través de la memoria o por una red de
interconexión

¿Diferencia con programación concurrente?
¿Qué visto en programación concurrente?
¿Y en arquitectura de ordenadores?

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Necesidad de la Programación Paralela

Límites de sistemas secuenciales:

Memoria
Velocidad
Incremento económico superior al de prestaciones

Solución ⇒ paralelismo:

Dificultades físicas: integración, velocidad de acceso a datos
Dificultades lógicas: uso, programación

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Necesidad de la Programación Paralela

Sistemas paralelos permiten resolver:

Problemas mayores (memoria)
Más rápidamente (velocidad)

Aplicación en:

Problemas de alto coste computacional
Problemas de gran dimensión
Problemas de tiempo real

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Aspectos de la Programación Paralela

Dificultades físicas:
Mayor velocidad
de proceso que de
acceso a memoria
y comunicación
Integración

Límites de
velocidad de la
luz
Disipación de
calor

Consultar TOP 500: www.top500.org

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Contenidos del curso

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Variedad de sistemas computacionales

Los sistemas computacionales actuales están constituidos por
varios componentes, por lo que son sistemas paralelos,
pero estos componentes están organizados de formas distintas:

Sistemas con varios cores y una memoria común a todos
Un sistema multicore con una tarjeta gráfica con su propia
memoria
Redes de multicores, cada uno con su memoria y
posiblemente su tarjeta gráfica
Varias redes conectadas entre sí de forma remota
etc

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Variedad de estilos de programación

Una única secuencia de ejecución de las instrucciones
(programación secuencial)
Una secuencia de ejecución, con algunas instrucciones que
mandan trabajo a realizar a otro componente computacional
Distintas secuencias que se ejecutarán en elementos
computacionales distintos colaborando a través de la
memoria
Distintas secuencias que se ejecutarán en elementos
computacionales distintos colaborando intercambiando
información por medio de mensajes
etc

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Conceptos de Programación Paralela

Paralelismo en sistemas secuenciales
Concurrencia - Programación Concurrente
Paralelismo - Programación Paralela
Sistemas de tiempo real - Programación en tiempo real
Sistemas multicore
Tarjetas gráficas, GPU
Aceleradores: Xeon Phi, FPGA, DSP...
Redes de ordenadores, Clusters
Computación heterogénea
Supercomputación
Computación de Altas Prestaciones, HPC
Programación adaptativa
Computación distribuida
Computación en la nube, Cloud
Computación ubicua
Virtualización
Otros tipos: Computación Cuántica, Biológica...

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Paralelismo en sistemas secuenciales (I)

Múltiples unidades funcionales
por ejemplo varios sumadores o multiplicadores

Unidades vectoriales
se realizan operaciones simultáneas sobre conjuntos de datos.
Hay librerías para vectorización (SSE, Streaming SIMD Extensions)

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Paralelismo en sistemas secuenciales (II)

Los procesadores actuales consiguen acelerar la ejecución haciendo uso del
paralelismo de forma interna. Ejemplos:

Segmentación encauzada (pipeline):
división de la ejecución de las instrucciones en etapas
una instrucción empieza a ejecutarse antes de que hayan terminado las anteriores
varias instrucciones se procesan simultáneamente

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Paralelismo en sistemas secuenciales (III)

Procesador supersegmentado:
cada etapa se divide en subetapas
y se lanzan subetapas sin completar el ciclo de reloj

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Paralelismo en sistemas secuenciales (IV)

Procesador superescalar:
lanzar varias instrucciones simultáneamente,
para ejecución fuera de orden o especulación

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Paralelismo en sistemas secuenciales (V)

Very Long Instruction Word
procesamiento de varias instrucciones en paralelo

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Paralelismo en sistemas secuenciales (VI)

División de memoria en bloques:
varios procesos pueden acceder a la vez a zonas de memoria distintas

Jerarquía de memorias:
varios niveles de cache,
acceso más rápido a las memorias más cercanas

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Paralelismo en sistemas secuenciales (VII)

Multithreading
el sistema lanza varios threads (hilos) simultáneamente, que
comparten recursos

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Paralelismo en sistemas secuenciales (y VIII)

Paralelismo a nivel de instrucción
reordenar las instrucciones para que se puedan ejecutar en
paralelo sin afectar al resultado
Ejecución fuera de orden
se capturan los datos para estar disponibles cuando puede
ejecutarse la instrucción
Especulación
determinar qué resultados se van a necesitar y generarlos
antes
Coprocesadores de E/S
permiten realizar entrada/salida mientras se computa
...

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Concurrencia - Paralelismo

Concurrencia, Programación Concurrente

cuando varios elementos de proceso (hilos,
procesos) trabajan de forma conjunta en la
resolución de un problema

Paralelismo, Programación Paralela

lo mismo, pero se usan estos términos cuando el
trabajo se utiliza para acelerar la resolución de los
problemas

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Sistemas de tiempo real, Programación de tiempo real

Para problemas que requieren respuesta en un espacio corto de
tiempo
para lo que se necesita usar de manera eficiente los recursos
computacionales,
y por tanto realizar computación paralela.
Ejemplos:

Vídeojuegos, Animaciones, que requieren generar al menos
24 imágenes por segundo
Control, con información recogida por sensores, y el sistema
tiene que dar respuesta rápida
Robótica

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Multicore

Los sistemas multicore (multinúcleo) contienen varios cores que tienen acceso a un
espacio de memoria común, organizado de forma jerárquica.
En la actualidad son los sistemas computacionales estándar, y sistemas más
complejos se obtienen combinando varios de ellos.
Se programan a través de hilos (threads), que comparten datos en la memoria
común.

Domingo Giménez (domingo@um.es)

Introducción
Sistemas y Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela

Tarjetas gráficas, GPU

Originariamente para vídeojuegos, en la actualidad tambi´
  • Links de descarga
http://lwp-l.com/pdf12790

Comentarios de: Introducción a la Computación Paralela (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad