El documento describe los conceptos básicos de los algoritmos paralelos. Explica que diseñar algoritmos paralelos requiere dividir el problema en tareas independientes, determinar la comunicación necesaria entre ellas, agrupar tareas pequeñas cuando sea necesario, y asignar tareas a procesadores. También destaca que los algoritmos paralelos son cruciales para la computación de alto rendimiento al permitir resolver problemas complejos de ciencia e ingeniería de manera escalable.
2. ALGORITMOS
PARALELOS.
• Diseñar algoritmos paralelos no es tarea fácil y es un proceso altamente creativo.
• Inicialmente se deben explorar los aspectos independientes de la máquina
• Los aspectos específicos a la máquina deben ser dejados para más tarde.
3. ¿QUÉ SON ALGORITMOS
PARALELOS?
• Es un Algoritmo que podría ser
ejecutado por piezas en el mismo
momento de tiempo por numerosas
unidades de procesamiento, para al
final juntar cada una de las piezas y
obtener el resultado adecuado.
4. CUATRO ETAPAS DEL DISEÑO DE ALGORITMOS
Paralelos.
• El diseño involucra cuatro etapas las cuales se presentan como secuenciales pero que en la práctica
no lo son.
Particionamiento: Los datos que se desean operar se descomponen en tareas.
Comunicación:A través de estructuras y algoritmos de comunicación se determina de el tipo de
comunicación requerida para coordinar tarea.
Agrupamiento: Se evalúa la eficiencia de los dos pasos anteriores y de ser necesario se agrupan
algunas tareas pequeñas en tareas mas grandes.
Asignación: Cada tarea es asignada a un procesador tratando de aprovechar los recursos y reducir
el costo de la comunicación.
6. ALTO
RENDIMIENTO
• Los Algoritmos paralelos son claves en la computación de alto rendimiento debido a que
implica usar la potencia de calculo para resolver problemas complejos en ciencia, ingeniería y
gestión.
• William D. Gropp un profesor de ciencias de la computación en la universidad de Illinois en
Urbana-Champaign aprovechó esto desarrollando y analizando algoritmos paralelos escalables
clave para métodos de descomposición de dominios y refinamiento de mallas adaptativas, que
ahora se utilizan ampliamente en aplicaciones paralelas.
7. ARTICULO ALGORITMO
PARALELOS.
• Las menciones de honor para el premio de disertación doctoral ACM 2019 son para Jakub
Tarnawski, École polytechnique fédérale de Lausanne (EPFL) y JiaJun Wu, Instituto de Tecnología
de Massachusetts (MIT).
• La disertación de Jakub Tarnawski "Nuevos algoritmos gráficos a través de técnicas poliédricas"
hizo un progreso algorítmico innovador en dos de los problemas más centrales en la
optimización combinatoria: el problema de coincidencia y el problema del viajante de comercio.
El trabajo en algoritmos paralelos deterministas para el problema de emparejamiento está
motivado por uno de los misterios sin resolver de la informática: ¿ayuda la aleatoriedad a
acelerar los algoritmos? La disertación de Tarnawski hace un progreso significativo en esta
pregunta al desaleatorizar casi por completo un algoritmo de emparejamiento paralelo aleatorio
de tres décadas de Ketan Mulmuley, Umesh Vaziriani y Vijay Vazirani.
8. • El segundo resultado principal de la disertación de Tarnawski se relaciona con el problema del
viajante de comercio: encontrar el recorrido más corto de n ciudades dadas. Ya en 1956, George
Dantzig et al. usó un programa lineal para resolver una instancia especial del problema. Desde
entonces, la fuerza de su programa lineal se ha convertido en uno de los principales problemas
abiertos en la optimización combinatoria. La disertación de Tarnawski resuelve esta pregunta
asintóticamente y proporciona el primer algoritmo de aproximación de factor constante para el
problema asimétrico del viajante de comercio.
9. PRÁCTICA PRINCIPIOS ALGORITMOS PARALELOS.
En la práctica, existen varios principios en el diseño de algoritmos paralelos:
• El Principio de Programación del Brent: Este principio permite reducir el número de procesadores utilizados en
los algoritmos paralelos existentes, sin aumentar la tiempo total de ejecución.
• El principio de canalización: la canalización se puede utilizar en situaciones en las que desea realizar varias
operaciones en una secuencia {P1, ..., Pn}
• El principio divide y vencerás: este es el principio de dividir un problema en varios componentes
independientes pequeños y resolverlos en paralelo.
• El principio del gráfico de dependencia: creamos un gráfico dirigido en el que los nodos representan bloques
de operaciones independientes y los bordes representan situaciones en las que un bloque de operación
depende del resultado de realizar otros bloques.
• Principio de condición de carrera: si dos procesos intentan acceder al mismo datos, pueden interferir entre sí.
10. REFERENCIA
S.
• 20problem.
• https://awards.acm.org/about/2019-doctoral-dissertation
• http://webdelprofesor.ula.ve/ingenieria/gilberto/paralela/08_DisenoDeAlgoritmosParalelos.pdf
• https://programmerclick.com/article/3569840796/
• https://link.springer.com/chapter/10.1007/978-1-4612-1220-
1_5#:~:text=Algorithms%20in%20which%20several%20operations,to%20solve%20a%20given%