SlideShare una empresa de Scribd logo
1 de 11
Algoritmos Paralelos
Rayni Nuñez Espino, 22-1014
¿Qué es el
procesamiento
concurrente?
Antes de hablar sobre los algoritmos
paralelos, primero debemos entender el
concepto de concurrencia. La concurrencia
es la ejecución simultánea de múltiples
programas que están relacionados.
La concurrencia es utilizada en tareas
donde se deban procesar una gran cantidad
de datos compleja.
Algoritmos Paralelos
¿Qué es un
algoritmo
paralelo?
El problema es dividido en sub-
problemas y son ejecutados en
paralelo para conseguir salidas
individuales, luego, estas salidas se
combinan para conseguir la salida
deseada
No es fácil dividir grandes problemas en
subproblemas, debido a que estos
subproblemas pueden tener dependencias
entre ellos, por lo tanto, los procesadores
deben comunicarse entre sí para poder
resolver el problema.
Se ha encontrado que el tiempo que
necesitan los procesadores para
comunicarse es más grande que el tiempo
necesario para realizar las tareas
asignadas. Por lo que necesitamos una
utilización apropiada del CPU.
¿Qué es un algoritmo paralelo?
Un modelo multiprocesador es una
generalización del modelo secuencial RAM,
en donde hay más de un procesador. Los
modelos multiprocesadores pueden ser
clasificados en tres (3) tipos básicos:
1. Modelo de máquina con memoria local
2. Modelo de máquina con memoria
modular
3. Modelo de máquina con memoria de
acceso aleatorio paralela (PRAM)
Modelos multiprocesadores
Los tres tipos multiprocesadores difieren en la forma en la que acceden a la memoria. En un
modelo de máquina con memoria local, cada procesador puede acceder a su memoria local
directamente, pero solo se puede comunicar con la memoria de otro procesador enviando un
request de memoria a través de la red.
En un modelo modular, el procesador accede a la memoria en un módulo de memoria enviando
un request de memoria a través de la red. Normalmente los procesadores y módulos de
memoria están organizados en una forma que el tiempo de cada procesador en acceder a la
memoria sea equivalente.
El modelo PRAM es controversial debido a que no hay ninguna máquina que viva a su tiempo
ideal para acceder a la memoria.
Modelos multiprocesadores
El análisis de algoritmos paralelos es importante ya que ayuda a comprender los problemas de
escalabilidad. Hablando matemáticamente, si n es el tamaño de las entradas, p el número de
procesadores y Tseq (n) el tiempo de ejecución secuencial, entonces el tiempo de ejecución en
paralelo debería parecerse a O + (Tseq(n/p)) + f(n,p) ) donde f crece más lentamente que Tseq
para n grande. Esto significa que para entradas grandes, el algoritmo es rentable en comparación
con la solución secuencial. Si f crece lentamente, el algoritmo es escalable para valores grandes
de p incluso para valores pequeños de n/p. Para computación paralela masiva, podemos adoptar
el antiguo objetivo de los algoritmos PRAM para lograr una f que sea poli logarítmica en n y p
(es decir, O(logk (np)) para alguna constante k). En máquinas más pequeñas, los requisitos de
escalabilidad menos estrictos pueden conducir a algoritmos más simples o mejores factores
constantes.
A pesar de los enormes esfuerzos en los lenguajes de programación paralelos y en la
paralelización de compiladores, la implementación de algoritmos paralelos sigue siendo uno de los
principales desafíos en el ciclo de ingeniería de algoritmos. Hay varias razones para esto.
Primero, existen enormes brechas semánticas entre la descripción del algoritmo abstracto, las
herramientas de programación utilizadas y el hardware real. En particular, los códigos realmente
eficientes a menudo usan interfaces de programación de nivel bastante bajo, como MPI o
operaciones de memoria atómica para mantener manejables los gastos generales para la
interacción del procesador. Además, la depuración de programas paralelos es notoriamente
difícil. Dado que el rendimiento es la razón principal para usar computadoras paralelas en primer
lugar, y debido a la complejidad del hardware paralelo, el ajuste del rendimiento es una parte
importante de la fase de implementación.
Referencias
● Parallel Algorithm - Introduction (tutorialspoint.com)
● https://www.cs.cmu.edu/~guyb/papers/BM04.pdf
● https://cell-devs.sce.carleton.ca/publications/2007/JW07/PPL_Journal_revised.pdf
● Engineering Parallel Algorithms (acm.org)

Más contenido relacionado

Similar a Algoritmos Paralelos

Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmo
Gaston Demundo
 

Similar a Algoritmos Paralelos (20)

Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
 
algoritmosparalelos
algoritmosparalelosalgoritmosparalelos
algoritmosparalelos
 
Intro Mpi
Intro MpiIntro Mpi
Intro Mpi
 
Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptx
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Diseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra RinaDiseño de Algoritmos Paralelos con la maestra Rina
Diseño de Algoritmos Paralelos con la maestra Rina
 
Programacion en ambientes heterogeneos
Programacion en ambientes heterogeneosProgramacion en ambientes heterogeneos
Programacion en ambientes heterogeneos
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmo
 
DI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxDI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptx
 
Algoritmos paralelos
 Algoritmos paralelos Algoritmos paralelos
Algoritmos paralelos
 
ANÁLISIS Y DISEÑO DE ALGORITMOS_, Actividad 14.pdf
ANÁLISIS Y DISEÑO DE ALGORITMOS_, Actividad 14.pdfANÁLISIS Y DISEÑO DE ALGORITMOS_, Actividad 14.pdf
ANÁLISIS Y DISEÑO DE ALGORITMOS_, Actividad 14.pdf
 
DI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxDI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptx
 
AlgoritmosParalelos.pptx
AlgoritmosParalelos.pptxAlgoritmosParalelos.pptx
AlgoritmosParalelos.pptx
 
3 unidad so2
3 unidad so23 unidad so2
3 unidad so2
 
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
 
Manual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_gManual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_g
 
arquitectura del computador 1
arquitectura del computador 1arquitectura del computador 1
arquitectura del computador 1
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Algoritmos Paralelos

  • 3. Antes de hablar sobre los algoritmos paralelos, primero debemos entender el concepto de concurrencia. La concurrencia es la ejecución simultánea de múltiples programas que están relacionados. La concurrencia es utilizada en tareas donde se deban procesar una gran cantidad de datos compleja.
  • 5. ¿Qué es un algoritmo paralelo? El problema es dividido en sub- problemas y son ejecutados en paralelo para conseguir salidas individuales, luego, estas salidas se combinan para conseguir la salida deseada
  • 6. No es fácil dividir grandes problemas en subproblemas, debido a que estos subproblemas pueden tener dependencias entre ellos, por lo tanto, los procesadores deben comunicarse entre sí para poder resolver el problema. Se ha encontrado que el tiempo que necesitan los procesadores para comunicarse es más grande que el tiempo necesario para realizar las tareas asignadas. Por lo que necesitamos una utilización apropiada del CPU. ¿Qué es un algoritmo paralelo?
  • 7. Un modelo multiprocesador es una generalización del modelo secuencial RAM, en donde hay más de un procesador. Los modelos multiprocesadores pueden ser clasificados en tres (3) tipos básicos: 1. Modelo de máquina con memoria local 2. Modelo de máquina con memoria modular 3. Modelo de máquina con memoria de acceso aleatorio paralela (PRAM) Modelos multiprocesadores
  • 8. Los tres tipos multiprocesadores difieren en la forma en la que acceden a la memoria. En un modelo de máquina con memoria local, cada procesador puede acceder a su memoria local directamente, pero solo se puede comunicar con la memoria de otro procesador enviando un request de memoria a través de la red. En un modelo modular, el procesador accede a la memoria en un módulo de memoria enviando un request de memoria a través de la red. Normalmente los procesadores y módulos de memoria están organizados en una forma que el tiempo de cada procesador en acceder a la memoria sea equivalente. El modelo PRAM es controversial debido a que no hay ninguna máquina que viva a su tiempo ideal para acceder a la memoria. Modelos multiprocesadores
  • 9. El análisis de algoritmos paralelos es importante ya que ayuda a comprender los problemas de escalabilidad. Hablando matemáticamente, si n es el tamaño de las entradas, p el número de procesadores y Tseq (n) el tiempo de ejecución secuencial, entonces el tiempo de ejecución en paralelo debería parecerse a O + (Tseq(n/p)) + f(n,p) ) donde f crece más lentamente que Tseq para n grande. Esto significa que para entradas grandes, el algoritmo es rentable en comparación con la solución secuencial. Si f crece lentamente, el algoritmo es escalable para valores grandes de p incluso para valores pequeños de n/p. Para computación paralela masiva, podemos adoptar el antiguo objetivo de los algoritmos PRAM para lograr una f que sea poli logarítmica en n y p (es decir, O(logk (np)) para alguna constante k). En máquinas más pequeñas, los requisitos de escalabilidad menos estrictos pueden conducir a algoritmos más simples o mejores factores constantes.
  • 10. A pesar de los enormes esfuerzos en los lenguajes de programación paralelos y en la paralelización de compiladores, la implementación de algoritmos paralelos sigue siendo uno de los principales desafíos en el ciclo de ingeniería de algoritmos. Hay varias razones para esto. Primero, existen enormes brechas semánticas entre la descripción del algoritmo abstracto, las herramientas de programación utilizadas y el hardware real. En particular, los códigos realmente eficientes a menudo usan interfaces de programación de nivel bastante bajo, como MPI o operaciones de memoria atómica para mantener manejables los gastos generales para la interacción del procesador. Además, la depuración de programas paralelos es notoriamente difícil. Dado que el rendimiento es la razón principal para usar computadoras paralelas en primer lugar, y debido a la complejidad del hardware paralelo, el ajuste del rendimiento es una parte importante de la fase de implementación.
  • 11. Referencias ● Parallel Algorithm - Introduction (tutorialspoint.com) ● https://www.cs.cmu.edu/~guyb/papers/BM04.pdf ● https://cell-devs.sce.carleton.ca/publications/2007/JW07/PPL_Journal_revised.pdf ● Engineering Parallel Algorithms (acm.org)