PDF de programación - 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

Imágen de pdf 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

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áticasgráfica de visualizaciones

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ñ
  • Links de descarga
http://lwp-l.com/pdf11366

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
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad