Publicado el 28 de Mayo del 2018
619 visualizaciones desde el 28 de Mayo del 2018
2,2 MB
59 paginas
Creado hace 9a (30/04/2014)
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Proyecto Universidad-Secundaria
Incorporación de contenidos de programación paralela en
la rama de tecnologías informáticas
Facultad Informática, Universidad de Murcia e
Instituto de Enseñanza Secundaria Ingeniero Juan de la Cierva
Introducción a la
Programación Paralela
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Posible utilización
Módulo de Programación, primero de Desarrollo de
Aplicaciones Multiplataforma
Módulo de Programación, primero de Desarrollo de
Aplicaciones Web
Tecnologías de la Información y de las Comunicaciones,
primero de Bachillerato
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Contenido
1 Tipos de Programación Paralela
2 Paradigmas de Programación Paralela
Programación con Memoria Compartida
Programación con Paso de Mensajes
Simple Instrucción Múltiple Dato (SIMD)
3 Entornos de Programación Paralela
Ejemplo de fork-join en C
Ejemplo de uso de hilos en Java
Ejemplo de paralelismo con Pthreads
Ejemplos de paralelismo con OpenMP
Ejemplos de paralelismo con MPI
Ejemplos de CUDA
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de 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
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de 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
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Tipos de paralelismo
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
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de 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...
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Paralelismo en sistemas secuenciales (I)
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
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Paralelismo en sistemas secuenciales (II)
División de memoria en bloques:
varios procesos pueden acceder a la vez a zonas de memoria distintas
Jerarqía de memorias:
varios niveles de cache,
acceso más rápido a las memorias más cercanas
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Paralelismo en sistemas secuenciales (III)
Múltiples unidades funcionales
por ejemplo varios sumadores o multiplicadores
Unidades vectoriales
se realizan operaciones simultáneas sobre conjuntos de datos
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Paralelismo en sistemas secuenciales (IV)
Multithreading
el sistema lanza varios threads (hilos) simultáneamente, que
comparten recursos
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Paralelismo en sistemas secuenciales (y V)
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
...
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de 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
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de 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
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de 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.
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de 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én para procesamiento de
propósito general (GPGPU).
Normalmente como coprocesadores con un sistema multicore, que dispone de una o
varias GPUs.
El programa se ejecuta en CPU y manda trabajos a la GPU.
Programación dependiente del fabricante (CUDA) y también hay software portable
(OpenCL).
Constan de muchos cores de GPU, organizados en bloques, y con organización
jerárquica de la memoria.
Varios tipos de tarjetas con distintas capacidades computacionales (Gforce, Tesla,
Kepler...)
Univ de Murcia-IES Ing. de la Cierva
Paralelismo en la rama de tecnologías informáticas
Tipos de Programación Paralela
Paradigmas de Programación Paralela
Entornos de Programación Paralela
Otros aceleradores
Los aceleradores computacionales o coprocesadores se utilizan normalmente
mandándoles trabajo desde la CPU para que se encarguen de realizar cálculos
computacionalmente costosos.
Además de las GPUs hay algunos tipos más:
Intel Xeon Phi:
Contiene hasta 61 cores, y cada core soporta 4 threads por hardware.
Programación más cercana que la de las GPUs a la estándar en paralelo.
FPGA (Field Programmable Gate Array):
Similares a circuitos integrados pero reprogramables.
Programación distinta a la paralela estándar.
DSP (Digital Signal Processor):
Para tratamiento de señ
Comentarios de: Introducción a la Programación Paralela - Proyecto Universidad-Secundaria - Incorporación de contenidos de programación paralela en la rama de tecnologías informáticas (0)
No hay comentarios