D I S E Ñ O D E
A L G O R I T M O S
PA R A L E L O S
Sustentado por: Javier Mordan
Matricula: 22-0525
Dirigido a: Rina María Familia
¿ Q U È E S E L D I S E Ñ O D E
A L G O R I T M O S
PA R A L E L O S ?
• El diseño de algoritmos paralelos es un
área de la informática que se centra en el
desarrollo de algoritmos que se ejecutan de
manera simultánea en varios procesadores
o núcleos de procesamiento.
O B J E T I V O
• El objetivo de los algoritmos paralelos
es mejorar el rendimiento y la eficiencia
de la computación al aprovechar el
paralelismo inherente en las
arquitecturas de hardware modernas.
PA R A L E L I S M O D E
D AT O S
• Este tipo de paralelismo se utiliza
cuando una tarea se puede dividir en
sub-tareas independientes que
operan sobre diferentes conjuntos de
datos. Cada sub-tarea se asigna a un
procesador o núcleo de
procesamiento diferente para su
ejecución en paralelo. Ejemplos de
algoritmos que aprovechan el
paralelismo de datos son la
clasificación, la multiplicación de
matrices y la convolución.
PA R A L E L I S M O
D E TA R E A S
• Este tipo de paralelismo se utiliza
cuando una tarea se puede dividir en
sub-tareas que no necesariamente
operan sobre diferentes conjuntos de
datos, pero que se pueden ejecutar
simultáneamente para mejorar el
rendimiento. Cada sub-tarea se asigna
a un procesador o núcleo de
procesamiento diferente para su
ejecución en paralelo. Ejemplos de
algoritmos que aprovechan el
paralelismo de tareas son la búsqueda
binaria, el ordenamiento por mezcla y
la multiplicación de polinomios.
PA R A L E L I S M O D E
M E M O R I A
C O M PA R T I D A
• Este tipo de paralelismo se utiliza cuando
varios procesadores o núcleos de
procesamiento comparten una misma
memoria. Los procesadores pueden
acceder y modificar datos en la memoria
compartida de forma simultánea, lo que
puede resultar en una mejora de
rendimiento en algoritmos que acceden
frecuentemente a los mismos datos.
Ejemplos de algoritmos que aprovechan
el paralelismo de memoria compartida
son la reducción, el cálculo de la media y
la suma de vectores.
PA R A L E L I S M O D E
M E M O R I A
D I S T R I B U I D A
• Este tipo de paralelismo se utiliza cuando
varios procesadores o núcleos de
procesamiento tienen su propia memoria local
y se comunican a través de una red. Cada
procesador ejecuta una parte del algoritmo y se
comunica con otros procesadores para
compartir datos o realizar tareas en conjunto.
Ejemplos de algoritmos que aprovechan el
paralelismo de memoria distribuida son la
resolución de sistemas lineales, el cálculo de
valores propios y la simulación de sistemas
físicos.
• En general, la selección de la forma de paralelismo adecuada
depende del algoritmo específico, la arquitectura de hardware y
los recursos disponibles. Un buen diseño de algoritmos paralelos
debe considerar cuidadosamente la forma de paralelismo más
adecuada para la tarea a realizar.
R E F E R E N C I A S
B I B L I O G R À F I C A S
• Introduction to Parallel Algorithms" por Joseph JaJa
• Parallel Algorithm Design for Machine Learning" por Sebastian
Raschka y Joshua Patterson
• Parallel Algorithm Design for Network Science" por Mason A.
Porter, Jukka-Pekka Onnela y Petter Holme
• Parallel Algorithm Design" por Vivek Sarkar y Matthias Troyer