La depuración de HPC redefinida - Calendae | Informática, Electrónica, CMS, Ciberseguridad

La depuración de HPC redefinida

Hola y mil gracias por leerme. Te escribe Simón Sánchez y en esta ocasión te voy a hablar sobre La depuración de HPC redefinida

A medida que el código y los sistemas en los que se ejecutan continúan aumentando en complejidad, los errores son cada vez más difíciles de encontrar. Los desafíos del subproceso, el multiproceso, la aceleración por hardware, la sincronización de mensajes y otras complejidades han requerido un nuevo conjunto de requisitos para la depuración. Para ayudar a abordar estos desafíos en evolución, Rogue Wave ha implementado una verdadera depuración inversa y CUDA admite funciones estándar en TotalView.

Muchos desarrolladores de HPC / Computación de alto rendimiento no se dan cuenta de cuánto tiempo se puede ahorrar utilizando técnicas avanzadas de depuración. A menudo, los desarrolladores dedican más tiempo a rastrear errores en su código que a escribirlo. El tiempo, el esfuerzo, el impacto de la planificación y, en última instancia, el dinero que se pierde cuando un código falla o genera resultados incorrectos es un problema grave tanto para el desarrollador como para las organizaciones que albergan los recursos de HPC. Los costos asociados con errores de programa inesperados en una supercomputadora pueden ser asombrosos. Es muy probable que el usuario esté trabajando con una asignación limitada de tiempo de ejecución, por lo que los defectos que pasan desapercibidos no solo son frustrantes, son un desperdicio de recursos valiosos tanto para el científico como para la institución que paga la factura del supercomputadora.

Teniendo en cuenta la enormidad de las consecuencias de los errores en tiempo de ejecución, se podría suponer que los desarrolladores de HPC insisten en utilizar las mejores herramientas del mercado. La dura realidad es que la mayoría de los programadores de hoy en día todavía confían en el método más probado y verdadero para depurar su código: usar una declaración de impresión. Las instrucciones de impresión funcionan, si tiene la paciencia para seguir agregando nuevas instrucciones, recompílelas, luego agregue más, luego vuelva a compilarlas, luego escríbalas para que sepa de qué hilo o proceso proviene, luego recompile y finalmente elimínelas una vez que comprenda lo que sucedió equivocado. Con el aumento de la complejidad mencionado anteriormente, el enfoque de fuerza bruta ya no lo corta. La buena noticia es que existe una forma mucho más sencilla de depurar.

Se podría argumentar que la adopción de cualquier tipo de depuración comercial será un gran paso adelante con respecto a los comunicados de prensa. Sin embargo, muchas veces este no es el caso y, de hecho, puede hacerlo más difícil. La mayoría de los depuradores estándar, tanto comerciales como de código abierto, no fueron diseñados para manejar la escala y las complejidades involucradas en el código HPC. Intentar usar uno de estos depuradores en un trabajo de varios nodos que usa aceleración de GPU puede ser una pérdida significativa de tiempo y esfuerzo. Si bien escribir aplicaciones de HPC paralelas con uso intensivo de datos es extremadamente desafiante, depurar y optimizar esas aplicaciones sin las herramientas adecuadas es aún más difícil.

Rogue Wave tiene una posición única en el espacio de herramientas de software de HPC, con experiencia y ofertas para depuración, matemáticas y estadísticas complejas, así como optimización. Al aprovechar nuestra experiencia combinada de cientos de años en el desarrollo de HPC, podemos satisfacer las necesidades del programador de HPC de formas nuevas y creativas. La complejidad del sistema y el software está aumentando a un ritmo increíble y la cantidad de datos generados es asombrosa. Las herramientas deben diseñarse para escalar y administrar grandes cantidades de datos. Rogue Wave es el mayor proveedor independiente de herramientas de desarrollo de software multiplataforma y componentes integrados para la próxima generación de aplicaciones HPC y se ha posicionado para establecer un nuevo estándar en depuración.

Los códigos HPC son paralelos, se ejecutan en varias máquinas con hardware heterogéneo y se comunican de acuerdo con esquemas y paradigmas complejos. Para depurar códigos HPC, necesita un depurador diseñado desde cero teniendo en cuenta las necesidades de los entornos de supercomputación en todas las etapas. Para depurar estos códigos de manera eficiente, necesita las siguientes características:

  • Iniciar o vincular a todo o parte de un gran trabajo paralelo en una sola sesión de depuración
  • Control total sobre el proceso y la ejecución de subprocesos individuales en múltiples nodos
  • Trabaje fácilmente con grupos de procesos definidos automáticamente según la estructura del programa
  • Defina fácilmente grupos de procesos basados ​​en criterios arbitrarios
  • Comparar datos en trabajo paralelo o entre subprocesos dentro de un proceso
  • Analiza el uso de la memoria en el proceso paralelo y detecta automáticamente fugas y daños
  • Depurar al revés: haga una copia de seguridad de un error o bloqueo para encontrar la causa raíz
  • Visualización de ejecución y estado en el hardware del acelerador.
  • Scripting de sesión de depuración para ejecución larga y por lotes
  • Vista de depuración remota en escritorios

En pocas palabras, la depuración de HPC no solo detiene la ejecución, ejecuta algunas líneas de código y examina más los valores de las variables. Un depurador de clase HPC necesita hacer mucho más para permitir que el desarrollador de HPC se concentre en aquello en lo que debería dedicar su tiempo: resolver problemas que antes no tenían solución sin capacidades de supercomputación. Ola gigante está a la vanguardia para habilitar al desarrollador de HPC con estas capacidades, y está dedicado y es capaz de proporcionar herramientas de HPC de la más alta calidad en el mercado.

Recuerda compartir en tu Facebook para que tus amigos lo vean

??? ? ? ???

Comparte