European Commission logo
español español
CORDIS - Resultados de investigaciones de la UE
CORDIS

An Exascale Programming, Multi-objective Optimisation and Resilience Management Environment Based on Nested Recursive Parallelism

Article Category

Article available in the following languages:

Una nueva cadena de herramientas de computación de alto rendimiento ofrece contrapartidas óptimas entre el rendimiento y la eficiencia de los recursos

El proyecto AllScale ofrece a los programadores de computación de alto rendimiento (HPC) una cadena de herramientas con la que impulsar el desarrollo, la productividad, la portabilidad y la eficacia de ejecución de las aplicaciones en paralelo. Sus prototipos se han utilizado ya en simulaciones de meteorología espacial, peligros medioambientales y dinámica de fluidos.

Economía digital icon Economía digital

El mercado de la HPC no deja de crecer y esta nueva era de la computación no se centra únicamente en el «hardware»: para que la HPC esté a la altura de las expectativas, se debe aprovechar todo su potencial de computación paralela en una nueva generación de aplicaciones en paralelo. Este tipo de aplicaciones deberán equilibrar el rendimiento con un consumo menor de energía, lo cual no resulta sencillo, sobre todo teniendo en cuenta que el entre 5 y 10 % final de las mejoras en el rendimiento que necesitan los programadores para su aplicación puede aumentar el consumo energético en un 30 % o más. En la HPC, la optimización gira en torno a las contrapartidas entre estos dos objetivos. El proyecto AllScale se propone subsanar lagunas al respecto. Su cadena de herramientas podría impulsar la productividad, la portabilidad y la eficacia de ejecución, y al mismo tiempo la eficiencia en el consumo de recursos de sistemas paralelos a escalas de pequeña a extrema. «Nuestro entorno de programación se basa en un estándar muy común (C++) que permite expresar paralelismo con un grado de abstracción elevado. En lugar de asociar distintos paradigmas de programación (método propenso a la pérdida de información y que, en consecuencia, reduce el rendimiento), aprovechamos paralelismos recursivos con los que reducir la sincronización global». De esta forma, se da paso a una gran cantidad de tareas en paralelo para aplicaciones que precisan mantener activas las arquitecturas paralelas a escala extrema en todos los procesadores», explica el profesor Thomas Fahringer, coordinador del proyecto para la Universidad de Innsbruck. El entorno de AllScale soluciona fallos de «hardware» y su sistema de tiempo de ejecución subyacente puede optimizarse en función de factores como el tiempo de ejecución, la eficiencia en el consumo de recursos y el consumo de energía. A diferencia de otros métodos de programación en paralelo que acoplan distintos paradigmas de programación existentes como MPI y OpenMP, AllScale hace hincapié en un entorno de desarrollo de «fuente única a cualquier escala» («single-source-to-anyscale»). De este modo, se ofrece a los programadores una interfaz de programación de aplicaciones (API) unificada que expresa paralelismo con un grado elevado de abstracción mediante plantillas C++ estándares. Otra de las mejoras importantes reside en el uso del paralelismo recursivo anidado para reducir la sincronización y la comunicación globales, factor importante si se tiene en cuenta que la primera provoca problemas graves de escalabilidad en sistemas de HPC a gran escala. Por último, mientras que la optimización de aplicaciones y la autocalibración de programas en paralelo solía estar basada casi únicamente en la reducción de los tiempos de ejecución, AllScale se ocupa de la necesidad que surge en las arquitecturas modernas de gestionar de forma inteligente los presupuestos energéticos y los perfiles de potencia. «AllScale ofrece un componente de optimización y programación multiobjetivo capaz de orientar la ejecución hacia contrapartidas de optimización dinámicas satisfactorias y controladas por el usuario con eficiencia en el consumo de energía, recursos y tiempo de ejecución», aclara el profesor Fahringer. AllScale se ha sometido a ensayos exhaustivos y se ha ejecutado en pilotos dedicados a la meteorología espacial, los peligros medioambientales (como la marea negra de Deepwater) y la dinámica de fluidos. Estas tres aplicaciones implican sistemas de HPC complicados tanto en materia de complejidad computacional como de productividad. Según detalla el profesor Fahringer: «En simulaciones de meteorología espacial, AllScale obtuvo resultados superiores para la formación del dipolo magnético terrestre en sistemas de HPC de memoria distribuida y compartida con gran cantidad de núcleos. El código empleado para las dinámicas de fluidos permitió reducir el tiempo de ejecución en serie, con una escalabilidad de memoria compartida similar a la implementación MPI. Por último, en el caso de los peligros medioambientales, demostramos la capacidad de AllScale para escalar a sistemas a petaescala. En las tres aplicaciones logramos una eficiencia mucho mayor en cuanto a tiempo hasta la solución, lo que supone una mejora de la productividad». El proyecto ya ha llegado a su fin y todas las aplicaciones piloto seguirán empleando la tecnología de AllScale a fin de mejorar aún su rendimiento. La cadena de herramientas de AllScale cuenta con una licencia de código abierto, y varios grupos en colaboraciones y proyectos nuevos por toda Europa siguen ampliando y mejorando el «software».

Palabras clave

AllScale, HPC, computación de alto rendimiento, «software», aplicaciones, eficacia, paralelismo, programación en paralelo, tiempo de ejecución, meteorología espacial, Deepwater, dinámica de fluidos

Descubra otros artículos del mismo campo de aplicación