2. Que son los
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.
3. El diseño de algoritmos paralelos involucra cuatro
etapas principalmente:
Particionamiento: Aquí 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 las tareas
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 costos de la comunicación.
5. Computación de
alto rendimiento
Los algoritmos paralelos son claves para la
computación de alto rendimiento debido a
que implica usar la potencia de cálculo 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.
6. Gracias a este trabajo se llevo a cabo el desarrollo de una biblioteca numérica,
Portable, Extensible Toolkit for Scientific Computation (PETSc), que Gropp
desarrolló en colaboración con Barry Smith. PETSc se ha utilizado en una variedad
de aplicaciones, que incluyen nanosimulaciones, biología, fusión, geociencias,
modelado ambiental, dinámica de fluidos e ingeniería de software, entre otras.
Cabe destacar que gracias a esto William D. Gropp fue galardonado como receptor
del Premio Ken Kennedy de la Sociedad de Computación ACM / IEEE 2016 por sus
contribuciones altamente influyentes a la programabilidad de computadoras
distribuidas y paralelas de alto rendimiento.
7. Algoritmos paralelos: el problema de emparejamiento y
el problema del viajante de comercio.
Jakub Tarnawski investigador en Microsoft Research trabajó
con algoritmos paraleles para lograr un progreso algorítmico
revolucionario en dos de los problemas mas centrales en la
optimización combinatoria: el problema de emparejamiento y
el problema del viajante de comercio.
8. Tarnawski trabajó en algoritmos paralelos deterministas para el problema de
emparejamiento está motivado por uno de los misterios sin solucionar en la
informática:
¿ayuda la aleatoriedad a precipitar los algoritmos?
La disertación de Tarnawski consigue un incremento relevante en esta cuestión
al desaleatorizar casi por completo un algoritmo de emparejamiento paralelo
aleatorio de 3 décadas de Ketan Mulmuley, Umesh Vaziriani y Vijay Vazirani.
9. El segundo resultado importante de la disertación de Tarnawski se relaciona con el problema del
viajante de comercio:
Encontrar el recorrido más corto de n ciudades determinadas.
Ya en 1956, George Dantzig 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 cuestión de forma asintótica y proporciona el primer
algoritmo de aproximación de factor constante para el problema asimétrico del viajante de
comercio.
10. Jakub Tarnawski ganó el premio de tesis doctoral
ACM donde demostró que el problema de
emparejamiento está en quasi-NC, es decir, que un
algoritmo paralelo determinista que se ejecuta en
tiempo O (log3 n) en n O (log2 n) procesadores.
El resultado se obtiene mediante una
desaleatorización del Lema de aislamiento para
emparejamientos perfectos, que fue introducido
en el artículo clásico por Mulmuley, Vazirani y
Vazirani [MVV87] para obtener un algoritmo RNC.