SlideShare una empresa de Scribd logo
UNIVERSIDAD IBEROAMERICANA
UNIBE
Emilio Jose De los santos Sanchez
21-0843
Tema
Diseño de Algoritmos Paralelos
Maestra
Rina Maria Familia
¿QUÉ SON LOS
ALGORITMOS
PARALELOS?
•Es el uso de varios procesadores
trabajando juntos para resolver una
tarea común, creando una forma
rápida y eficiente de trabajo.
•El modo de uso de los procesadores
puede ser diseñado por el
programador:
•– Cada procesador trabaja en una
porción del problema
•– Los procesos pueden intercambiar
datos, a través de la memoria o por
una red de interconexión
VENTAJAS DE
LA
COMPUTACIÓN
PARALELA
•Algunas de las ventajas de la programación paralela son las
siguientes:
•– Permiten resolver problemas que no caben en una CPU
•– Permiten resolver problemas que no se resuelven en un
tiempo razonable
•Estos también nos permiten ejecutar
•– Problemas mayores
•– Más rápidamente (aceleración)
•– Más problemas con mayor eficiencia
NECESIDAD DE
LA
COMPUTACIÓN
PARALELA
•-La velocidad de los computadores secuenciales convencionales
se ha incrementado continuamente para adaptarse a las
necesidades de las aplicaciones. Por esta razón se necesitan los
algoritmos paralelos para poder resolver el problema de las
computadoras convencionales.
•-Simultáneamente hay una demanda continua de un poder
computacional superior.
•-La relación coste/prestaciones se hace desfavorable si se
pretende incrementar más aún la potencia de los computadores
secuenciales.
•- Hay límites para una única CPU, como memoria y poder de
procesador, por eso se necesitan los algoritmos paralelos.
TECNOLOGÍAS QUE IMPLEMENTAN
LA PROGRAMACIÓN PARALELA
•Open MP (Open Multi-Processing)(Chapman et al., 2008; Pas, 2009): proporciona una API,
que mediante directivas del compilador y llamadas a sub-rutinas, proporciona paralelismo
de datos.
•Intel TTB (Intel Threading Building Blocks): Modelo de programación paralela basado en
rutinas que utilizan hilos. Provee una serie de plantillas, tipos de datos y algoritmos.
•Intel ArBB (Inter Array Building Blocks): biblioteca para C++ desarrollada para aprovechar
diferentes tipos de procesadores en la resolución de problemas paralelos.
•JP: Java Parallel (PJ) es una API de programación paralela cuyos principales objetivos son:
apoyar tanto a la programación paralela en memoria compartida (basadas en hilos de
ejecución) y el grupo de programación paralela (basado en paso de mensajes), en una sola
API unificada.
EJEMPLO - SUMA
DE N NÚMEROS
•Secuencial: t(n) = n − 1
•Paralelo con n/2 elementos de proceso, como mınimo
t(n) n/2 = 2
•En cada Pi, i = 0, 1, . . . , n/2 − 1
• inicio = 2 ∗ i
• desplazamiento = 1
• activo = true
• para k = 1, 2, . . . , log n
• si activo
• a[inicio] = a[inicio] + a[inicio +
desplazamiento]
• desplazamiento = desplazamiento ∗
2
• finsi
• si i mod desplazamiento 6= 0
• activo = false
• finsi
•finpara
LA TÉCNICA
MEMORIA
COMPARTIDA
•Necesita del uso de cerrojos en los datos para impedir que se
modifique simultáneamente por dos procesadores, por lo que se
produce un coste extra en ciclos de CPU desperdiciados y ciclos
de bus. También obliga a serializar alguna parte del algoritmo.
•La técnica paso de mensajes usa canales y mensajes pero esta
comunicación añade un coste al bus, memoria adicional para las
colas y los mensajes y latencia en el mensaje. Los diseñadores de
procesadores paralelos usan buses especiales para que el coste
de la comunicación sea pequeño pero siendo el algoritmo
paralelo el que decide el volumen del tráfico.
ALGORITMO DE PARALLEL_FOR
•El algoritmo Concurrency::p arallel_for realiza repetidamente la misma tarea
en paralelo. Cada una de estas tareas se parametriza mediante un valor de
iteración. Este algoritmo es útil cuando se tiene un cuerpo de bucle que no
comparten recursos entre iteraciones de ese bucle.
•El parallel_for algoritmo crea particiones de las tareas de forma óptima para
la ejecución en paralelo. Utiliza un algoritmo de robo de trabajo y un robo de
intervalo para equilibrar estas particiones cuando se desequilibran las cargas
de trabajo.
EJEMPLO
// parallel-for-structure.cpp
// compile with: /EHsc
#include <ppl.h>
#include <array>
#include <sstream>
#include <iostream>
using namespace concurrency;
using namespace std;
int wmain()
{
// Print each value from 1 to 5 in parallel.
parallel_for(1, 6, [](int value) {
wstringstream ss;
ss << value << L' ';
wcout << ss.str();
});
REFERENCIAS:
•http://informatica.uv.es/iiguia/ALP/materiales/1_1_a_ComputacionParalela.p
df
•http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-
18992017000200009
•http://dis.um.es/~domingo/apuntes/AlgProPar/1819/analisis.pdf
•https://es.wikipedia.org/wiki/Algoritmo_paralelo#:~:text=En%20las%20cienci
as%20de%20la,y%20obtener%20el%20resultado%20correcto.
•https://docs.microsoft.com/es-es/cpp/parallel/concrt/parallel-
algorithms?view=msvc-160

Más contenido relacionado

Similar a Diseño de Algoritmos Paralelos.pptx

Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptx
yadhirafelizfajardo
 
Actividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos ParalelosActividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos Paralelos
CarlosHung9
 
Arquitectura primer tutorial
Arquitectura primer tutorialArquitectura primer tutorial
Arquitectura primer tutorial
maiielo
 
Arqui hardware
Arqui hardwareArqui hardware
Computacion paralela
Computacion paralelaComputacion paralela
Computacion paralela
paolaanchicobenabides
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
YESENIA CETINA
 
Diseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdfDiseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdf
Marti44678
 
Algoritmos Paralelos
Algoritmos ParalelosAlgoritmos Paralelos
Algoritmos Paralelos
RayNunezEspino
 
Arquitectura tipos lupe
Arquitectura tipos lupeArquitectura tipos lupe
Arquitectura tipos lupe
Guadalupe González
 
Incremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-VectorIncremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-Vector
Sotero Ordones
 
computación paralela
computación paralelacomputación paralela
computación paralela
Yazmin Polanco
 
Tarea 1.1
Tarea 1.1Tarea 1.1
Tarea 1.1
Kike Paz
 
Algortimos paralelos.pptx
Algortimos paralelos.pptxAlgortimos paralelos.pptx
Algortimos paralelos.pptx
lunaaragon1
 
Segmentación
SegmentaciónSegmentación
Segmentación
Sakura Miyamoto
 
3 unidad so2
3 unidad so23 unidad so2
Paralelismo Concurrencia.ppt
Paralelismo Concurrencia.pptParalelismo Concurrencia.ppt
Paralelismo Concurrencia.ppt
PETERALEXANDERSAMUEL
 
Actividad#13_Diseño de Algoritmos Paralelos.pptx
Actividad#13_Diseño de Algoritmos Paralelos.pptxActividad#13_Diseño de Algoritmos Paralelos.pptx
Actividad#13_Diseño de Algoritmos Paralelos.pptx
IsaaK10
 
Diseño de Algoritmos Paralelos-220972.pptx
Diseño de Algoritmos Paralelos-220972.pptxDiseño de Algoritmos Paralelos-220972.pptx
Diseño de Algoritmos Paralelos-220972.pptx
PedroLuisRosarioDomi1
 
AlgoritmosParalelos.pptx
AlgoritmosParalelos.pptxAlgoritmosParalelos.pptx
AlgoritmosParalelos.pptx
Anon620673
 
ARQUITECTURA_DE_COMPUTADORAS.pdf
ARQUITECTURA_DE_COMPUTADORAS.pdfARQUITECTURA_DE_COMPUTADORAS.pdf
ARQUITECTURA_DE_COMPUTADORAS.pdf
MariuxiBayas3
 

Similar a Diseño de Algoritmos Paralelos.pptx (20)

Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptx
 
Actividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos ParalelosActividad 14: Diseño de Algoritmos Paralelos
Actividad 14: Diseño de Algoritmos Paralelos
 
Arquitectura primer tutorial
Arquitectura primer tutorialArquitectura primer tutorial
Arquitectura primer tutorial
 
Arqui hardware
Arqui hardwareArqui hardware
Arqui hardware
 
Computacion paralela
Computacion paralelaComputacion paralela
Computacion paralela
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Diseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdfDiseño de Algoritmos Paralelos.pdf
Diseño de Algoritmos Paralelos.pdf
 
Algoritmos Paralelos
Algoritmos ParalelosAlgoritmos Paralelos
Algoritmos Paralelos
 
Arquitectura tipos lupe
Arquitectura tipos lupeArquitectura tipos lupe
Arquitectura tipos lupe
 
Incremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-VectorIncremento en el desempeño de la multiplicación Matriz-Vector
Incremento en el desempeño de la multiplicación Matriz-Vector
 
computación paralela
computación paralelacomputación paralela
computación paralela
 
Tarea 1.1
Tarea 1.1Tarea 1.1
Tarea 1.1
 
Algortimos paralelos.pptx
Algortimos paralelos.pptxAlgortimos paralelos.pptx
Algortimos paralelos.pptx
 
Segmentación
SegmentaciónSegmentación
Segmentación
 
3 unidad so2
3 unidad so23 unidad so2
3 unidad so2
 
Paralelismo Concurrencia.ppt
Paralelismo Concurrencia.pptParalelismo Concurrencia.ppt
Paralelismo Concurrencia.ppt
 
Actividad#13_Diseño de Algoritmos Paralelos.pptx
Actividad#13_Diseño de Algoritmos Paralelos.pptxActividad#13_Diseño de Algoritmos Paralelos.pptx
Actividad#13_Diseño de Algoritmos Paralelos.pptx
 
Diseño de Algoritmos Paralelos-220972.pptx
Diseño de Algoritmos Paralelos-220972.pptxDiseño de Algoritmos Paralelos-220972.pptx
Diseño de Algoritmos Paralelos-220972.pptx
 
AlgoritmosParalelos.pptx
AlgoritmosParalelos.pptxAlgoritmosParalelos.pptx
AlgoritmosParalelos.pptx
 
ARQUITECTURA_DE_COMPUTADORAS.pdf
ARQUITECTURA_DE_COMPUTADORAS.pdfARQUITECTURA_DE_COMPUTADORAS.pdf
ARQUITECTURA_DE_COMPUTADORAS.pdf
 

Último

TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
JhenryHuisa1
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
KatiuskaDominguez2
 

Último (9)

TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
 

Diseño de Algoritmos Paralelos.pptx

  • 1. UNIVERSIDAD IBEROAMERICANA UNIBE Emilio Jose De los santos Sanchez 21-0843 Tema Diseño de Algoritmos Paralelos Maestra Rina Maria Familia
  • 2. ¿QUÉ SON LOS ALGORITMOS PARALELOS? •Es el uso de varios procesadores trabajando juntos para resolver una tarea común, creando una forma rápida y eficiente de trabajo. •El modo de uso de los procesadores puede ser diseñado por el programador: •– Cada procesador trabaja en una porción del problema •– Los procesos pueden intercambiar datos, a través de la memoria o por una red de interconexión
  • 3. VENTAJAS DE LA COMPUTACIÓN PARALELA •Algunas de las ventajas de la programación paralela son las siguientes: •– Permiten resolver problemas que no caben en una CPU •– Permiten resolver problemas que no se resuelven en un tiempo razonable •Estos también nos permiten ejecutar •– Problemas mayores •– Más rápidamente (aceleración) •– Más problemas con mayor eficiencia
  • 4. NECESIDAD DE LA COMPUTACIÓN PARALELA •-La velocidad de los computadores secuenciales convencionales se ha incrementado continuamente para adaptarse a las necesidades de las aplicaciones. Por esta razón se necesitan los algoritmos paralelos para poder resolver el problema de las computadoras convencionales. •-Simultáneamente hay una demanda continua de un poder computacional superior. •-La relación coste/prestaciones se hace desfavorable si se pretende incrementar más aún la potencia de los computadores secuenciales. •- Hay límites para una única CPU, como memoria y poder de procesador, por eso se necesitan los algoritmos paralelos.
  • 5. TECNOLOGÍAS QUE IMPLEMENTAN LA PROGRAMACIÓN PARALELA •Open MP (Open Multi-Processing)(Chapman et al., 2008; Pas, 2009): proporciona una API, que mediante directivas del compilador y llamadas a sub-rutinas, proporciona paralelismo de datos. •Intel TTB (Intel Threading Building Blocks): Modelo de programación paralela basado en rutinas que utilizan hilos. Provee una serie de plantillas, tipos de datos y algoritmos. •Intel ArBB (Inter Array Building Blocks): biblioteca para C++ desarrollada para aprovechar diferentes tipos de procesadores en la resolución de problemas paralelos. •JP: Java Parallel (PJ) es una API de programación paralela cuyos principales objetivos son: apoyar tanto a la programación paralela en memoria compartida (basadas en hilos de ejecución) y el grupo de programación paralela (basado en paso de mensajes), en una sola API unificada.
  • 6. EJEMPLO - SUMA DE N NÚMEROS •Secuencial: t(n) = n − 1 •Paralelo con n/2 elementos de proceso, como mınimo t(n) n/2 = 2 •En cada Pi, i = 0, 1, . . . , n/2 − 1 • inicio = 2 ∗ i • desplazamiento = 1 • activo = true • para k = 1, 2, . . . , log n • si activo • a[inicio] = a[inicio] + a[inicio + desplazamiento] • desplazamiento = desplazamiento ∗ 2 • finsi • si i mod desplazamiento 6= 0 • activo = false • finsi •finpara
  • 7. LA TÉCNICA MEMORIA COMPARTIDA •Necesita del uso de cerrojos en los datos para impedir que se modifique simultáneamente por dos procesadores, por lo que se produce un coste extra en ciclos de CPU desperdiciados y ciclos de bus. También obliga a serializar alguna parte del algoritmo. •La técnica paso de mensajes usa canales y mensajes pero esta comunicación añade un coste al bus, memoria adicional para las colas y los mensajes y latencia en el mensaje. Los diseñadores de procesadores paralelos usan buses especiales para que el coste de la comunicación sea pequeño pero siendo el algoritmo paralelo el que decide el volumen del tráfico.
  • 8. ALGORITMO DE PARALLEL_FOR •El algoritmo Concurrency::p arallel_for realiza repetidamente la misma tarea en paralelo. Cada una de estas tareas se parametriza mediante un valor de iteración. Este algoritmo es útil cuando se tiene un cuerpo de bucle que no comparten recursos entre iteraciones de ese bucle. •El parallel_for algoritmo crea particiones de las tareas de forma óptima para la ejecución en paralelo. Utiliza un algoritmo de robo de trabajo y un robo de intervalo para equilibrar estas particiones cuando se desequilibran las cargas de trabajo.
  • 9. EJEMPLO // parallel-for-structure.cpp // compile with: /EHsc #include <ppl.h> #include <array> #include <sstream> #include <iostream> using namespace concurrency; using namespace std; int wmain() { // Print each value from 1 to 5 in parallel. parallel_for(1, 6, [](int value) { wstringstream ss; ss << value << L' '; wcout << ss.str(); });