¿Qué son los Algoritmos Paralelos?
• Un algoritmo paralelo es aquel tipo de algoritmo
cuyas partes pueden ser ejecutadas de forma
simultanea, realizando varios procesos cuyos
resultados son juntados más adelante.
• Los algoritmos paralelos se destacan por su
reducción en el tiempo de respuesta y por su
eficiencia.
Diseño de Algoritmos Paralelos
El diseño de algoritmos
paralelos se divide en
cuatro etapas.
Una vez se encuentre
un problema que
necesite un algoritmo,
se realizan los
siguientes procesos de
diseño:
• Particionamiento
• Comunicación
• Agrupamiento
• Asignación
Particionamiento
• Esta es la descomposición de
un problema mayor en
partes más pequeñas.
• Estas partes deben ser
suficientemente sencillas
como para ser resultas
rápidamente.
• Un ejemplo sería la división
de una ecuación en varios
problemas basados en los
paréntesis presentes en ella.
Comunicación • En esta etapa se determina la
comunicación que se llevará a cabo
entre los varios algoritmos diseñados en
el particionamiento.
• Se diseña la comunicación para aquellos
problemas en los que las particiones
necesitan información encontrada en
otras particiones para encontrar las
respuestas.
Agrupamiento
El agrupamiento consiste
en tomar dos o más
particiones que estén
estrechamente
relacionadas y juntar las
mismas.
Esto ocurre con aquellas
particiones que necesiten
varios actos de
comunicación entre sí. Al
agruparlas, se reduce el
tiempo de respuesta entre
ellas y se aumenta la
eficiencia.
Asignación
• En la etapa de asignación se
distribuyen los recursos
disponibles para resolver el
problema.
• Mientras más importante la
respuesta que deba calcular un
grupo, más recursos son dedicados
a este.
• Usualmente, se le da prioridad a
aquellos grupos que produzcan
información altamente
comunicable.
Precauciones
La clave para el diseño de algoritmos
paralelos es el balance entre los cuatro
pasos.
Se debe diseñar el algoritmo de tal forma
que cada una de sus partes no tenga
demasiada o muy poca carga para
resolver el problema.
Si ocurre esto, esta parte puede
bloquearse mientras espera por la
respuesta de las demás partes, reduciendo
la eficiencia de todo el algoritmo.
• Otra cosa que se debe tomar en
cuenta es la escalabilidad del
algoritmo.
• Par lograr una ala escalabilidad,
se den eliminar las partes
redundantes, balancear las cargas
de cada grupo y diseñar el
algoritmo de tal forma que este
pueda resolver problemas más
grandes si tiene más procesadores
disponibles.
Referencias
• Díaz, G. (n.d.). Facultad de Ingeniería, Escuela de
Sistemas. Recuperado de la página web de la
Universidad de Los Andes:
https://gc.scalahed.com/recursos/files/r161r/w25474
w/DisenoDeAlgoritmosParalelos.pdf
• Monografías. (n.d.). Recuperado de
Monografías.com:
https://www.monografias.com/trabajos106/diseno-
algoritmos-paralelos/diseno-algoritmos-paralelos