Skip to main content
Web oficial de la Unión EuropeaWeb oficial de la UE
Ir a la página de inicio de la Comisión Europea (se abrirá en una nueva ventana)
español español
CORDIS - Resultados de investigaciones de la UE
CORDIS
Contenido archivado el 2024-06-18
Exascale Programming Models

Article Category

Article available in the following languages:

Los modelos de programación se preparan para la computación a exaescala

Los ordenadores a exaescala estarán disponibles dentro de menos de una década. ¿Pero de qué sirve toda esta potencia sin modelos de programación que la aprovechen? El proyecto EPIGRAM identificó las carencias de los modelos actuales y las resolvió con éxito.

Imaginemos cien millones de procesos ejecutándose en paralelo en un solo ordenador, o cincuenta millones de ordenadores portátiles conectados entre sí con una red superrápida. Esto es lo que significa la exaescala. Mientras que los ordenadores actuales se pueden programar con lenguajes como Java o Python, se necesita un software especial para permitir el intercambio de datos entre todos estos procesos u ordenadores portátiles. Aquí es donde intervienen la transferencia de mensajes y PGAS. «Creemos que estos dos programas de software serán esenciales para permitir este intercambio de datos, ya que ya funcionan muy bien en los superordenadores contemporáneos de mayor tamaño», dice Stefano Markidis, director del proyecto EPIGRAM y profesor asistente de computación de alto rendimiento en KTH (Suecia). Sin embargo, ejecutar estos modelos de programación en ordenadores a exaescala es algo muy distinto. La cantidad de memoria necesaria para el proceso de almacenamiento sería inmensamente grande y el espacio necesario para ella plantearía un problema grave. Para lograr que estos procesos funcionen colectivamente o de forma sincronizada se necesitarían algoritmos mucho más avanzados que los disponibles actualmente. Además, un solo sistema en el que se combinasen modelos de programación existentes en la actualidad no podría funcionar eficientemente. Un grupo de investigadores abordó estas cuestiones cruciales (paralelismo extremo e interoperatividad) en el proyecto EPIGRAM (Exascale Programming Models). Esta iniciativa se centró en la transferencia de mensajes y PGAS y, más concretamente, en mejorar dos de los sistemas de programación asociados: MPI y GPI. «A menudo, las aplicaciones científicas utilizan varios puntos de sincronización en los cuales el ordenador portátil más rápido espera a que el más lento le alcance. Esto funciona con unos cuantos ordenadores portátiles, pero cuando se trata de cincuenta millones de ellos, es hora de empezar a pensar en la sincronización de algoritmos. Esto es lo que hicimos en EPIGRAM. Mejoramos el rendimiento de las operaciones de comunicación en una cantidad muy elevada de procesos reduciendo su consumo de energía, mejorando las operaciones colectivas e introduciendo modelos de computación emergentes», aclara Markidis. También se mejoró la interoperatividad de MPI y GPI integrándolos en una implementación de MPI llamada EMPIR4Re. Del clima espacial a la dinámica de fluidos Después del desarrollo, los conceptos de EPIGRAM se debían probar en aplicaciones a gran escala con potencial de exascala. El consorcio optó por el clima espacial y la dinámica de fluidos con el desarrollo de iPIC3D, un código de partícula-en-celda para simulaciones de física espacial y un kernel para Neck5000, un código de dinámica computacional de fluidos (DCF). Ambas aplicaciones se pueden escalar hasta un millón de núcleos y utilizan, respectivamente, C/C++ y Fortran, los lenguajes de programación que más se utilizan en computación de alto rendimiento. «Estamos sumamente satisfechos con nuestras aplicaciones piloto», explica Markidis. «iPIC3D mejoró el rendimiento en un factor tres respecto de la implementación anterior y conseguimos desarrollar un nuevo kernel de comunicaciones Nek5000 simplificado que se puede utilizar en otros proyectos». El trabajo realizado por EPIGRAM ya se utiliza en dos proyectos de Horizonte 2020: el proyecto INTERTWINE, que se desarrolla a partir del trabajo de interoperatividad de EPIGRAM y tiene iPIC3D como aplicación piloto, y el proyecto EXAFLOW, que utiliza Nek5000 y ha adoptado el nuevo kernel de comunicaciones Nek5000 de EPIGRAM. «Quisiéramos poner en marcha en breve un proyecto que ofrezca una continuidad directa», indica Markidis. «Pero mientras tanto ya podemos ver cómo los desarrolladores de aplicaciones de HPC ya aprovechan nuestro nuestro trabajo sobre MPI. Presentamos nuestros conceptos a los desarrolladores de aplicaciones de distintas áreas y esperamos que la comunidad adopte algunos de nuestros conceptos, como un colectivo isomórfico, en un futuro próximo». El trabajo del proyecto sobre normalización fue crucial para que quienes desarrollan códigos de aplicación para superordenadores puedan adoptar nuevas funciones de MPI y GPI. «Los desarrolladores de aplicaciones tienen la seguridad de que se van a implementar nuevas funciones y que no es probable que se modifiquen», afirma Markidis. Los conceptos de EPIGRAM, que se probaron utilizando valores de referencia, no solo aceleran el tiempo de ejecución de distintas operaciones de MPI y GPI sino que, además, reducen de forma considerable la cantidad de memoria necesaria para dichas operaciones. El proyecto mostró las limitaciones de algunos conceptos de MPI y tuvo un efecto muy importante sobre el trabajo de los implementadores de GPI-2, gracias al desarrollo de conexiones dinámicas escalables.

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