Las herramientas de software deberán actualizarse para la supercomputadora Titan de ORNL - Calendae | Informática, Electrónica, CMS, Ciberseguridad

Las herramientas de software deberán actualizarse para la supercomputadora Titan de ORNL

Hola y mil gracias por leerme. Soy Simón Sánchez y en esta ocasión te voy a hablar sobre Las herramientas de software deberán actualizarse para la supercomputadora Titan de ORNL

Herramientas de aplicación críticas cuando los programas avanzan hacia el procesamiento a exaescala

Laboratorio Nacional Oak Ridge (ORNL) El Centro Nacional de Ciencias Computacionales es un centro de supercomputación del Departamento de Energía (DOE) que alberga el Instalación de Computación de Liderazgo de Oak Ridge (OLCF) y la supercomputadora Jaguar, un Cray XT5 capaz de realizar más de 2,3 petaflops o 2,3 cuatrillones de cálculos por segundo. En 2012, la OLCF comenzará a actualizar Jaguar, aumentando su capacidad de cómputo hasta diez veces. La actualización llevará a Jaguar a convertirse en Titan, una computadora capaz de ejecutar de 10 a 20 petaflops y el próximo gran activo del centro para la computación científica. La llegada de Titan traerá cambios fundamentales en las operaciones de supercomputación de la OLCF, principalmente debido a la incorporación de arquitecturas de procesamiento híbridas que cuentan con unidades de procesamiento central y de gráficos (CPU y GPU).

Richard Graham dirige el Grupo de herramientas de rendimiento de aplicaciones de OLCF, que identifica las herramientas de software que faltan y las capacidades de las herramientas para ayudar a los investigadores de ciencia e ingeniería a mejorar el rendimiento de las aplicaciones que se ejecutan en computadoras de clase mundial. El grupo se centra en cuatro herramientas principales: compiladores, que transforman lenguajes de software como Fortran en instrucciones comprensibles para una computadora; depuradores, que ayudan a identificar errores en los códigos fuente de los usuarios; herramientas de análisis de rendimiento, que nos ayudan a comprender las características de rendimiento de las aplicaciones; y bibliotecas de comunicación, que dirigen las comunicaciones entre los diferentes nodos de computación en una computadora.

Antes de unirse a ORNL, Graham se desempeñó como empresa matriz interina del Laboratorio de Computación Avanzada en el Laboratorio Nacional de Los Alamos y cofundó su proyecto Open MPI, esforzándose por universalizar el software de interfaz de entrega de mensajes en múltiples plataformas. . Graham también trabajó Investigación de Cray es SGI.

En esta entrevista, Graham analiza los desafíos que presentan las nuevas arquitecturas informáticas híbridas como Titan. El objetivo de su grupo es garantizar que el OLCF esté preparado para ofrecer a los investigadores las herramientas más actualizadas y eficientes posibles para hacer un uso eficaz de un nuevo entorno informático de alto rendimiento (HPC).

Calendae: ¿Cómo se ensamblan las herramientas para cambiar las arquitecturas informáticas?

Richard Graham: En primer lugar, debemos determinar las características del hardware porque, en última instancia, estas determinan qué se puede hacer y qué puede hacer potencialmente el software. Este es el primer paso, comprender el nuevo hardware y en qué se diferencia del hardware anterior. Luego decidimos qué herramientas, piezas de software que permiten a los científicos de aplicaciones hacer el trabajo que desean, son de nuestro interés y si estas herramientas actuales son suficientes. Y por suficiente me refiero en el contexto de nuestro entorno de producción, Jaguar. Si no es así, debemos averiguar si podemos mejorar el conjunto de herramientas actual o si tenemos que salir y ver si hay algo más por ahí. Si no es así, obviamente tenemos que averiguar cómo llenar el vacío. Lo primero que intentamos hacer es decidir si hay un punto de partida que podamos usar, y si no lo hay, entonces necesitamos crear uno. Esto implica hablar con proveedores y universidades, comprender sus planes y comprender lo que tienen actualmente y que podría sernos útil.

En términos de características computacionales, necesita tener una gran cantidad de paralelismo vectorial disponible en su aplicación y poder hacer muchos de los mismos cálculos en paralelo, por lo que cualquier código que tenga bucles agradables y una falta de dependencia de datos entre los bucles es muy adecuado. para arquitecturas híbridas. También debe comprender cómo mapear el paralelismo con el hardware subyacente. Sin embargo, el gran problema es que mover datos de la CPU a la GPU lleva mucho tiempo. Idealmente, desea mantener ocupada la GPU [with large computation] para ocultar el costo de la transferencia de datos entre GPU y CPU. Entonces, o mantiene los datos permanentemente en la GPU para que no tenga que transferir mucho, o necesita tener suficiente trabajo para poder mantener la GPU ocupada y ocultar el costo de transferir datos a la GPU. Es necesario explorar nuevos datos o esquemas de desglose del trabajo.

Calendae: ¿Cómo cambiará la arquitectura de Titan la forma en que operan las supercomputadoras?

Graham: La gran diferencia es que tenemos dos capacidades de procesamiento muy diferentes en un solo nodo que consta de una CPU AMD y una GPU NVIDIA. La CPU es para cálculos generales. Estamos muy familiarizados con las CPU en el sentido de que sabemos cómo analizar lo que sucede en ellas hasta cierto punto. Por lo tanto, tiene un acelerador muy diferente en la GPU que tiene el potencial de un rendimiento muy alto pero tiene menos capacidad que la CPU genérica en el tipo de operaciones que puede realizar. La GPU planifica las operaciones de cierta manera e intenta posicionarse para poder trabajar en paralelo de manera efectiva. Entonces, el desafío es cómo usar tanto la CPU como la GPU de manera eficiente en un entorno informático general.

Desde la perspectiva de las herramientas, la principal diferencia es que hay mucho menos soporte para las herramientas de GPU que para las CPU en el entorno HPC, e incluso menos que se adapten a ambos. Esto se debe a que se han incorporado pocas herramientas al entorno de la GPU y las GPU ofrecen información menos detallada. Hay un «tejido» en la forma en que las aplicaciones tienden a usar estas cosas; utilizan CPU con GPU como aceleradores para realizar ciertas partes del trabajo, por lo que los datos de los dos tipos de procesadores deben fusionarse si desea observar el uso general y obtener una imagen general de cómo se ejecuta la aplicación.

Calendae: ¿Qué contribuyó al éxito de la petaescala y qué está dando forma al empuje de exaescala?

Graham: Creo que la principal herramienta que contribuyó al éxito de la petaescala fue tener buenos modelos de programación, lenguajes, bibliotecas y compiladores optimizados, que toman un lenguaje de programación abstracto y lo transforman en un conjunto de instrucciones que las computadoras puedan entender. Si lo miras desde el punto de vista de las herramientas, también se necesitan herramientas de análisis de rendimiento, pero sin compiladores no podríamos ejecutar código como ahora. Los depuradores son importantes, pero hasta hace un año, los depuradores no se ejecutaban a gran escala. Este es en realidad uno de los resultados que hemos logrado en un proyecto en la OLCF. Con uno de nuestros socios, Align, realmente cambiamos el paradigma de depuración al aumentar un depurador llamado DDT. Básicamente, pudimos depurar a gran escala en Jaguar, aunque hace tres años la gente decía que no era posible depurar en paralelo en varios cientos o miles de procesos. Ahora, mi grupo depura regularmente el código paralelo en más de 100.000 procesos que utilizan DDT. Esto es mucho más eficaz que intentar utilizar las técnicas antiguas. Ningún otro depurador puede siquiera acercarse al rendimiento de DDT, por lo que obviamente es un éxito entre los usuarios.

Como parte del proyecto OLCF 3, trabajamos con varios proveedores de software. Uno, CAPS Enterprise, es una empresa compiladora fuera de Francia que fabrica HMPP [hybrid multicore parallel programming] compilador, que apunta a las GPU. Hemos trabajado con ellos durante dos años para mejorar su compilador para satisfacer nuestras necesidades y estamos muy satisfechos con la asociación. El trabajo condujo a la adición de características significativas al compilador que nos ayudan a migrar de manera incremental nuestras aplicaciones existentes a computadoras basadas en aceleradores y condujo a algunas mejoras de rendimiento. Es uno de los varios compiladores que admitiremos en el sistema. También trabajamos en escalabilidad.

A medida que las arquitecturas informáticas se hacen más grandes, la escalabilidad se convierte en un problema. Otro elemento crítico es el conjunto de herramientas de análisis de rendimiento de Vampir. Estas herramientas provienen de la Universidad Técnica de Dresde y realizan lo que se denomina análisis de rendimiento basado en seguimiento, que recopila datos de rendimiento en el contexto de la pila de llamadas, no solo en el contador del programa. El énfasis está en agregar capacidades para recopilar datos de CPU y GPU simultáneamente, pero también están haciendo mucho trabajo de escalado. Recientemente decidieron trabajar con Terry Jones, un miembro de mi grupo, quien ayudó en el contexto de otro proyecto financiado por el DOE para transferir datos de los anfitriones a los recolectores. Básicamente, pudieron ejecutar aplicaciones basadas en rastreo en 200.000 procesos. El récord anterior era del orden de 100.000 y era muy lento.

Antes de este esfuerzo, la gente realmente no consideraba hacer este tipo de análisis más allá de tal vez varios miles de procesos, por lo que ha habido un avance significativo en las capacidades. Este grupo continúa trabajando para que la recopilación de datos sea más práctica. También destacamos la integración entre las diferentes herramientas del entorno de programación.

Un rasgo común detrás de estas tres colaboraciones es que fuimos con empresas que ya tenían un producto existente, por lo que no comenzamos desde cero. Y como eran empresas existentes, lo segundo es que ya contaban con una infraestructura de soporte. La tercera cosa es que estaban muy dispuestos a incluir mejoras para nuestras necesidades en sus productos, por lo que realmente estábamos financiando para mejorar su línea principal de productos, lo que también es muy beneficioso para nosotros.

Calendae: ¿Cómo ayudará a que los usuarios crezcan con Titan?

Graham: Creo que el primer problema está en los compiladores actuales y los entornos de ejecución, cosas que permiten a los usuarios acceder al sistema. Por el momento, la mayoría de estos componentes son muy primitivos y para muchos códigos hay muchas reestructuraciones de código que debe hacer manualmente. La necesidad real es un conjunto de herramientas de transformación de código basadas en compiladores que agilizarán el proceso y automatizarán tantas transformaciones como sea posible. Pero antes de llegar allí, un gran problema es la falta de modelos de programación ampliamente aceptados para que esto sea posible. Se están realizando algunos esfuerzos de estandarización, pero están lejos de ser completos y tendremos que ver cómo lo notan los usuarios. Hay lenguajes paralelos que la gente puede usar, pero no se usan ampliamente. Chapel es algo a lo que la gente sigue aspirando, ya que se desarrolló en el contexto de la informática de alto rendimiento. También tiene a Fortran tratando de introducir algunas versiones que podrían ayudar hasta cierto punto.

Históricamente, estos cambios en la informática no son nada nuevo. Ha sido así durante mucho tiempo, pero recuerdo la transición del procesamiento vectorial al tipo de procesamiento que hacemos ahora: procesamiento paralelo en microprocesadores. Tomó alrededor de 10 años hacer esa transición, y con eso me refiero a que un gran cuerpo de código funciona bien. Por lo tanto, las arquitecturas basadas en microprocesadores pueden tardar otros 10 años en transformarse por completo en una especie de sistema informático heterogéneo de varios núcleos. No será agradable. Será muy caro y realmente necesitan algo para ayudar con ese proceso.

Afortunadamente, existe una comunidad de investigadores que está interesada en investigar este tipo de problemas. La gente ha pensado en este tipo de problemas, por lo que definitivamente existe la necesidad de superar los obstáculos. Esto no es algo que se hará de la noche a la mañana y no es solo un desafío técnico. Los desarrolladores de aplicaciones también necesitan usar lo que producen. Estoy seguro de que existen diferentes puntos de vista sobre cómo proceder. Creo que hay buenas ideas por ahí. Es solo una cuestión de que la gente tenga tiempo para hacer algo con las ideas y luego esas ideas se conviertan en cosas que una empresa comercial está dispuesta a apoyar, porque sin eso, solo hay otro conjunto de ideas lindas que nunca influyen. la comunidad.

Deberías compartir en una historia de tu Instagram para que tus amigos lo vean

??? ? ? ???

Comparte