SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
ANÁLISIS Y DISEÑO
DE ALGORITMOS
Prof. Rina Maria Familia
Saul De La Cruz García (22-1000)
Diseño de
Algoritmos
Paralelos
En las ciencias de la computación, un algoritmo
paralelo, en oposición a los algoritmos clásicos o
algoritmos secuenciales, es un algoritmo que puede ser
ejecutado por partes en el mismo instante de tiempo
por varias unidades de procesamiento, para finalmente
unir todas las partes y obtener el resultado correcto.
Diseño de Algoritmos
Paralelos
Hoy en día muchos problemas necesitan procesar grandes cantidades de datos y hacer
eficientes el tiempo de respuesta de cada una de estas aplicaciones. Para esto se cuenta
con la eficiencia de un computador, el cual depende directamente del tiempo requerido
para ejecutar una instrucción básica y del número de instrucciones que pueden ser
ejecutadas al mismo tiempo (Ananth et al., 2003). La programación paralela es un área
de la computación que permite aprovechar los recursos de hardware para mejorar el
tiempo de ejecución de los algoritmos.
EL DISEÑO
El diseño involucra cuatro etapas las cuales se presentan como
secuenciales pero que en la práctica no lo son.
❑Particionamiento
❑Comunicación
❑Agrupamiento
❑Asignación
Particionamiento: El cómputo y los datos sobre los cuales se opera se
descomponen en tareas. Se ignoran aspectos como el número de procesadores
de la máquina a usar y se concentra la atención en explotar oportunidades de
paralelismo.
-Proceso de dividir el cálculo y los datos en la mayor cantidad de porciones.
-Se trata de identificar las posibilidades de cálculo paralelo.
-Puede tomar la forma de particionamiento de datos o de un particionamiento
funcional. Ambos son complementarios.
PARTICIONAMIENTO
COMUNICACIÓN
Se determina la comunicación requerida para coordinar las tareas. Se
definen estructuras y algoritmos de comunicación.
Comunicación local: entre dos procesadores pasando datos de uno a otro.
Comunicación global: cuando muchos procesadores tienen que
comunicar a uno o viceversa. (ej: suma de datos)
La comunicación hace perder eficiencia paralela, hay que tratar de
disminuir el tiempo de comunicaciones.
En la programación paralela existen dos tipos de paralelismo
(Foster, 2003): paralelismo de control (descomposición funcional)
o paralelismo de datos (descomposición de dominio).
La descomposición de dominio o paralelismo de datos, como
también se le conoce, consiste en una secuencia de instrucciones
aplicadas a distintos datos.
Los datos son divididos en partes y las partes son asignadas a
diferentes procesadores.
Programación paralela
AGRUPAMIENTO
El resultado de las dos etapas anteriores es evaluado en términos de
eficiencia y costos de implementación.
De ser necesario, se agrupan tareas pequeñas en tareas más grandes.
ASIGNACIÓN
Cada tarea es asignada a un procesador tratando de maximizar la
utilización de los procesadores y de reducir el costo de comunicación.
La asignación puede ser estática (se establece antes de la ejecución del
programa) o en tiempo de ejecución mediante algoritmos de balanceo
de carga.
La asignación de tareas puede ser realizada de las siguientes
maneras:
• Estática: una tarea es asignada a un procesador desde su inicio
hasta su fin.
• Dinámica: una tarea puede ser migrada durante su ejecución.
Esto puede agregar un costo adicional.
Referencias
+ https://gc.scalahed.com/recursos/files/r161r/w25474w/
DisenoDeAlgoritmosParalelos.pdf
+ https://www.slideshare.net/JesuelFerreirasAcost/diseo-
de-algoritmos-paralelos-210336
+ http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2
227-18992017000200009
+ https://cimec.org.ar/cursos/moodledata/17/Transp_DBP
P-1x2.pdf

Más contenido relacionado

Similar a ANÁLISIS Y DISEÑO DE ALGORITMOS_, Actividad 14.pdf

Trabajo diego.exposición
Trabajo diego.exposiciónTrabajo diego.exposición
Trabajo diego.exposición
Diego032
 
Planificación de un_proceso
Planificación de un_procesoPlanificación de un_proceso
Planificación de un_proceso
siamu_evap
 

Similar a ANÁLISIS Y DISEÑO DE ALGORITMOS_, Actividad 14.pdf (20)

Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
 
Algoritmos paralelos
 Algoritmos paralelos Algoritmos paralelos
Algoritmos paralelos
 
Diseño de algoritmos paralelos.pptx
Diseño de algoritmos paralelos.pptxDiseño de algoritmos paralelos.pptx
Diseño de algoritmos paralelos.pptx
 
Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.
Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.
Análisis y Diseño de Algoritmos - Presentacion Algoritmos Paralelos.
 
computación paralela
computación paralelacomputación paralela
computación paralela
 
Caracterizacion del paralelismo
Caracterizacion del paralelismoCaracterizacion del paralelismo
Caracterizacion del paralelismo
 
Trabajo diego.exposición
Trabajo diego.exposiciónTrabajo diego.exposición
Trabajo diego.exposición
 
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
 
DI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxDI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptx
 
DI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptxDI. Algoritmo Paralelos.pptx
DI. Algoritmo Paralelos.pptx
 
Paralelismo
ParalelismoParalelismo
Paralelismo
 
Tarea 1.1
Tarea 1.1Tarea 1.1
Tarea 1.1
 
Algoritmos Paralelos
Algoritmos ParalelosAlgoritmos Paralelos
Algoritmos Paralelos
 
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
 
Computacion paralela
Computacion paralelaComputacion paralela
Computacion paralela
 
Procesos_so
Procesos_soProcesos_so
Procesos_so
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
Planificación de un_proceso
Planificación de un_procesoPlanificación de un_proceso
Planificación de un_proceso
 
Programacion en ambientes heterogeneos
Programacion en ambientes heterogeneosProgramacion en ambientes heterogeneos
Programacion en ambientes heterogeneos
 
Arquitectura tipos lupe
Arquitectura tipos lupeArquitectura tipos lupe
Arquitectura tipos lupe
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
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.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
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
 
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...
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
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
 

ANÁLISIS Y DISEÑO DE ALGORITMOS_, Actividad 14.pdf

  • 1. ANÁLISIS Y DISEÑO DE ALGORITMOS Prof. Rina Maria Familia Saul De La Cruz García (22-1000)
  • 2. Diseño de Algoritmos Paralelos En las ciencias de la computación, un algoritmo paralelo, en oposición a los algoritmos clásicos o algoritmos secuenciales, es un algoritmo que puede ser ejecutado por partes en el mismo instante de tiempo por varias unidades de procesamiento, para finalmente unir todas las partes y obtener el resultado correcto.
  • 3. Diseño de Algoritmos Paralelos Hoy en día muchos problemas necesitan procesar grandes cantidades de datos y hacer eficientes el tiempo de respuesta de cada una de estas aplicaciones. Para esto se cuenta con la eficiencia de un computador, el cual depende directamente del tiempo requerido para ejecutar una instrucción básica y del número de instrucciones que pueden ser ejecutadas al mismo tiempo (Ananth et al., 2003). La programación paralela es un área de la computación que permite aprovechar los recursos de hardware para mejorar el tiempo de ejecución de los algoritmos.
  • 4. EL DISEÑO El diseño involucra cuatro etapas las cuales se presentan como secuenciales pero que en la práctica no lo son. ❑Particionamiento ❑Comunicación ❑Agrupamiento ❑Asignación
  • 5. Particionamiento: El cómputo y los datos sobre los cuales se opera se descomponen en tareas. Se ignoran aspectos como el número de procesadores de la máquina a usar y se concentra la atención en explotar oportunidades de paralelismo. -Proceso de dividir el cálculo y los datos en la mayor cantidad de porciones. -Se trata de identificar las posibilidades de cálculo paralelo. -Puede tomar la forma de particionamiento de datos o de un particionamiento funcional. Ambos son complementarios. PARTICIONAMIENTO
  • 6. COMUNICACIÓN Se determina la comunicación requerida para coordinar las tareas. Se definen estructuras y algoritmos de comunicación. Comunicación local: entre dos procesadores pasando datos de uno a otro. Comunicación global: cuando muchos procesadores tienen que comunicar a uno o viceversa. (ej: suma de datos) La comunicación hace perder eficiencia paralela, hay que tratar de disminuir el tiempo de comunicaciones.
  • 7. En la programación paralela existen dos tipos de paralelismo (Foster, 2003): paralelismo de control (descomposición funcional) o paralelismo de datos (descomposición de dominio). La descomposición de dominio o paralelismo de datos, como también se le conoce, consiste en una secuencia de instrucciones aplicadas a distintos datos. Los datos son divididos en partes y las partes son asignadas a diferentes procesadores. Programación paralela
  • 8. AGRUPAMIENTO El resultado de las dos etapas anteriores es evaluado en términos de eficiencia y costos de implementación. De ser necesario, se agrupan tareas pequeñas en tareas más grandes.
  • 9. ASIGNACIÓN Cada tarea es asignada a un procesador tratando de maximizar la utilización de los procesadores y de reducir el costo de comunicación. La asignación puede ser estática (se establece antes de la ejecución del programa) o en tiempo de ejecución mediante algoritmos de balanceo de carga.
  • 10.
  • 11. La asignación de tareas puede ser realizada de las siguientes maneras: • Estática: una tarea es asignada a un procesador desde su inicio hasta su fin. • Dinámica: una tarea puede ser migrada durante su ejecución. Esto puede agregar un costo adicional.
  • 12. Referencias + https://gc.scalahed.com/recursos/files/r161r/w25474w/ DisenoDeAlgoritmosParalelos.pdf + https://www.slideshare.net/JesuelFerreirasAcost/diseo- de-algoritmos-paralelos-210336 + http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2 227-18992017000200009 + https://cimec.org.ar/cursos/moodledata/17/Transp_DBP P-1x2.pdf