11. TIPOS DE ALGORITMOS EN PARALELO
Algoritmos de paralelismo de datos
Algoritmos de paralelismo de tareas Algoritmos de paralelismo de
pipelining
Algoritmos de descomposición de problemas
Algoritmos de sincronización y comunicación
Yeily Gomez 23-0931
17. • Métricas de rendimiento:
Además de las métricas
mencionadas, otras como la
escalabilidad y la utilización de
recursos también son
importantes para evaluar el
rendimiento de los algoritmos
paralelos.
• Ley de Amdahl y Ley de
Gustafson: Estas leyes
proporcionan información crucial
sobre los límites y el potencial del
paralelismo en la mejora del
rendimiento de los algoritmos en
sistemas paralelos.
Andra Paulino (23-0040)
19. La escalabilidad es crucial ya que estos
algoritmos suelen implementarse en sistemas
distribuidos o en paralelo con un gran número
de unidades de procesamiento. Algunos
aspectos importantes de la escalabilidad en
algoritmos paralelos incluyen:
• Escalabilidad en términos de tamaño del
problema: Un algoritmo paralelo se
considera escalable si puede manejar
eficientemente problemas de diferentes
tamaños sin un deterioro significativo en su
rendimiento. Esto implica que el tiempo de
ejecución del algoritmo no aumenta
desproporcionadamente a medida que
crece el tamaño del problema.
Aspectos importantes
Laurialic Valerio (23-0329
20. • Escalabilidad en términos de número de
procesadores: La escalabilidad también
se refiere a la capacidad del algoritmo
para aprovechar de manera efectiva un
mayor número de procesadores.
Idealmente, un algoritmo paralelo
debería mostrar una mejora proporcional
en su rendimiento cuando se agregan
más procesadores, sin sufrir pérdidas
significativas de eficiencia debido a la
comunicación o la sincronización entre
los procesadores.
• Escalabilidad de la comunicación: En
sistemas paralelos distribuidos, la
comunicación entre los procesadores
puede convertirse en un cuello de botella
a medida que se aumenta el número de
nodos. Por lo tanto, es crucial diseñar
algoritmos que minimicen la cantidad y
la frecuencia de las comunicaciones
entre los procesadores para mantener
una escalabilidad óptima.
• Escalabilidad en arquitecturas
heterogéneas: Con la proliferación de
sistemas heterogéneos que combinan
diferentes tipos de procesadores (por
ejemplo, CPUs y GPUs), la escalabilidad
se convierte en un desafío aún mayor. Los
algoritmos paralelos deben ser diseñados
para aprovechar eficientemente las
características específicas de cada tipo
de procesador y escalar de manera
efectiva en este entorno diverso. Laurialic Valerio (23-0329)
22. 1. Búsqueda binaria paralela:
• Este algoritmo busca un elemento en un array ordenado dividiendo el
array en dos mitades y buscando en ambas mitades al mismo tiempo.
• Se puede usar para encontrar un elemento específico en una lista
grande de datos, como una lista de nombres o una lista de productos
en un inventario.
• La ventaja de este algoritmo es que puede ser mucho más rápido que
la búsqueda binaria secuencial, especialmente para arrays grandes.
2. Ordenación paralela:
• Este algoritmo ordena una lista de elementos dividiendo la lista en
subconjuntos y ordenando cada subconjunto al mismo tiempo.
• Luego, los subconjuntos ordenados se fusionan para obtener la
lista ordenada final.
• Existen diferentes algoritmos de ordenación paralela, como
MergeSort y QuickSort.
• La ventaja de la ordenación paralela es que puede ordenar listas
grandes de datos mucho más rápido que la ordenación secuencial.
Laurialic Valerio (23-0329)
23. 3. Multiplicación de matrices paralela:
• Este algoritmo multiplica dos matrices dividiendo las matrices en
submatrices y multiplicando las submatrices al mismo tiempo.
• Luego, las submatrices multiplicadas se suman para obtener la matriz
final multiplicada.
• La multiplicación de matrices se usa en muchas aplicaciones, como el
procesamiento de imágenes y el análisis de datos.
• La ventaja de la multiplicación de matrices paralela es que puede
multiplicar matrices grandes mucho más rápido que la multiplicación
de matrices secuencial.
4. Algoritmo de Floyd-Warshall para el
camino más corto:
• Este algoritmo encuentra el camino más corto entre todos los pares
de nodos en un grafo dirigido.
• Funciona dividiendo el grafo en subgrafos y calculando los caminos
más cortos entre todos los pares de nodos en cada subgrafo al mismo
tiempo.
• Luego, los caminos más cortos en los subgrafos se combinan para
obtener los caminos más cortos en el grafo completo.
• Este algoritmo se usa en muchas aplicaciones, como la planificación
de rutas y la logística.
Laurialic Valerio (23-0329)
25. Para concluir, los algoritmos paralelos son una herramienta poderosa para
resolver problemas complejos de manera eficiente. Permiten aprovechar
al máximo las capacidades de los sistemas modernos con múltiples
procesadores y memoria compartida o distribuida.
Existen diferentes tipos de algoritmos paralelos, cada uno con sus propias
ventajas y desventajas. La elección del algoritmo adecuado depende de las
características del problema a resolver, la arquitectura del sistema y las
necesidades específicas del usuario.
Para aprovechar al máximo el potencial de los algoritmos paralelos, es
importante tener en cuenta los siguientes aspectos:
• Descomposición del problema: Dividir el problema en subproblemas
independientes que puedan ser ejecutados en paralelo.
• Sincronización y comunicación: Implementar mecanismos eficientes
para coordinar la ejecución de los subprocesos y para intercambiar
datos entre ellos.
• Análisis del rendimiento: Evaluar el tiempo de ejecución, la
escalabilidad y la eficiencia del algoritmo en diferentes escenarios.
Los algoritmos paralelos son una tecnología en constante evolución con
un gran potencial para el futuro de la computación. A medida que las
arquitecturas de hardware y las técnicas de programación paralela
continúen evolucionando, podemos esperar que los algoritmos paralelos
sean cada vez más utilizados para resolver problemas cada vez más
complejos en una amplia gama de áreas.
Laurialic Valerio (23-0329)