2. Introducción
• Los algoritmos paralelos son algoritmos diseñados para
ejecutarse en sistemas paralelos, como
supercomputadoras, clústeres de computadoras y sistemas
de multiprocesamiento. Estos algoritmos se utilizan en
aplicaciones que requieren grandes cantidades de cómputo
y son importantes porque permiten que las aplicaciones se
ejecuten más rápido y manejen mayores cargas de trabajo.
Ejemplos de aplicaciones que se benefician de los
algoritmos paralelos incluyen simulaciones físicas,
procesamiento de imágenes y video, y análisis de big data.
3. Tipos de arquitecturas de computación
paralela
Existen dos tipos principales de arquitecturas de
computación paralela:
• Memoria compartida, todos los procesadores
comparten una sola memoria, lo que facilita el
intercambio de datos.
• Memoria distribuida, cada procesador tiene su propia
memoria, lo que significa que los procesadores deben
comunicarse explícitamente para intercambiar datos.
4. Ventajas y Desventajas
de cada tipo
Cada tipo de arquitectura tiene
ventajas y desventajas:
Las arquitecturas de memoria
compartida son más fáciles de
programar y manejar, pero pueden
ser menos escalables que las
arquitecturas de memoria
distribuida. Las arquitecturas de
memoria distribuida son más
escalables, pero pueden requerir
más trabajo para programar y
pueden tener un mayor costo de
comunicación.
5. Diseño de algoritmos
paralelos
El diseño de algoritmos paralelos implica la
identificación de oportunidades para la paralelización
y la creación de algoritmos que aprovechen esas
oportunidades. Las técnicas comunes de diseño son:
• División Y Conquista
• La Descomposición De Datos
• La Programación Dinámica Paralela
6. División Y Conquista
• La división y conquista implica dividir el
problema en subproblemas más pequeños
que pueden resolverse de forma
independiente
7. La Descomposición
De Datos
• La descomposición de datos implica
dividir los datos de entrada en partes
que se pueden procesar de forma
independiente.
9. Implementación de
algoritmos paralelos
La implementación de algoritmos
paralelos presenta desafíos únicos
debido a la necesidad de coordinar y
comunicar datos entre
procesadores. Las técnicas de
programación utilizadas para la
implementación de algoritmos
paralelos incluyen:
• La paralelización de bucles
• La asignación de tareas
• La sincronización de procesos.
10. Conclusión
El diseño de algoritmos paralelos es importante para la
computación de alto rendimiento y la mejora del rendimiento
de las aplicaciones. Los algoritmos paralelos aprovechan los
sistemas paralelos para permitir que las aplicaciones se
ejecuten más rápido y manejen mayores cargas de trabajo.
Las técnicas comunes de diseño y programación de
algoritmos paralelos incluyen la división y conquista, la
descomposición de datos y la programación dinámica
paralela. La implementación de algoritmos paralelos presenta
desafíos únicos debido a la necesidad de coordinar y
comunicar datos entre procesadores. Los ejemplos de
algoritmos paralelos incluyen la multiplicación de matrices, el
ordenamiento rápido y otras aplicaciones que requieren un
alto grado de paralelismo. En general, los algoritmos
paralelos ofrecen mejoras significativas en el rendimiento en
comparación con los algoritmos secuenciales y son esenciales
para muchas aplicaciones de alto rendimiento y gran escala.
11. Referencias
1. Grama, A., Gupta, A., Karypis, G., & Kumar, V. (2003). Introduction to parallel
computing (2nd ed.). Addison-Wesley.
2. Malek, M. A., & Fouda, M. M. (2018). Parallel algorithms: Principles and practice. CRC
Press.
3. Wilkinson, B., & Allen, M. (2017). Parallel programming: Techniques and applications
using networked workstations and parallel computers (2nd ed.). Pearson Education.
4. Kshemkalyani, A. D., & Singhal, M. (2011). Distributed computing: Principles,
algorithms, and systems. Cambridge University Press.
5. Solihin, Y. (2018). Fundamentals of parallel computer architecture: Multichip and
multicore systems. Cambridge University Press.