{"id":594,"date":"2026-07-22T08:17:32","date_gmt":"2026-07-22T08:17:32","guid":{"rendered":"https:\/\/matforge.org\/?p=594","raw":"https:\/\/matforge.org\/?p=594"},"modified":"2026-07-22T08:17:32","modified_gmt":"2026-07-22T08:17:32","slug":"in-situ-visualization-integration-computation","status":"publish","type":"post","link":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/","title":{"rendered":"Visualizaci\u00f3n in situ: integraci\u00f3n de la visualizaci\u00f3n durante el c\u00e1lculo","raw":"Visualizaci\u00f3n in situ: integraci\u00f3n de la visualizaci\u00f3n durante el c\u00e1lculo"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 13<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><h2>tl; dr<\/h2>\n<p>La visualizaci\u00f3n in situ procesa y analiza los datos de simulaci\u00f3n <strong>mientras que la simulaci\u00f3n se ejecuta<\/strong>, directamente en la memoria, en lugar de escribir resultados sin procesar en el disco para un posterior procesamiento. Este enfoque es esencial para la computaci\u00f3n Exascale donde el ancho de banda de E\/S no puede mantenerse al d\u00eda con la generaci\u00f3n de datos. Al integrar la visualizaci\u00f3n durante el c\u00e1lculo, puede:<\/p>\n<ul>\n<li>Evite los cuellos de botella de E\/S que paralizan los flujos de trabajo tradicionales<\/li>\n<li>Supervise las simulaciones en tiempo real y en los par\u00e1metros de direcci\u00f3n sobre la marcha<\/li>\n<li>Reducir las necesidades de almacenamiento en \u00f3rdenes de magnitud<\/li>\n<li>Captura fen\u00f3menos transitorios que se perder\u00edan con instant\u00e1neas poco frecuentes<\/li>\n<\/ul>\n<p>La compensaci\u00f3n se agrega complejidad y contenci\u00f3n de recursos: debe decidir qu\u00e9 visualizar antes de la ejecuci\u00f3n, y la visualizaci\u00f3n compite con la simulaci\u00f3n para los ciclos de CPU\/GPU.<\/p>\n<h2>Introducci\u00f3n: por qu\u00e9 es importante la visualizaci\u00f3n in situ<\/h2>\n<p>Las simulaciones cient\u00edficas generan grandes cantidades de datos. Una sola ejecuci\u00f3n de ExaScale puede producir petabytes de salida, pero escribir esos datos en el disco se convierte en un cuello de botella fundamental: los sistemas de almacenamiento no pueden seguir el ritmo del rendimiento computacional. El resultado es una brecha cada vez mayor entre la rapidez con la que las simulaciones pueden producir datos y la rapidez con que se pueden guardar y analizar los datos.<\/p>\n<p>La visualizaci\u00f3n in situ (lat\u00edn para &#8216;en el lugar&#8217;) aborda esto realizando tareas de visualizaci\u00f3n y an\u00e1lisis <strong>al mismo tiempo que la simulaci\u00f3n<\/strong> accede a los datos directamente desde la memoria antes de escribirlos en el disco. Este paradigma cambia el flujo de trabajo de:<\/p>\n<pre><code>Simulation \u2192 Storage \u2192 Visualization\n<\/code><\/pre>\n<p>a:<\/p>\n<pre><code>Simulation + Visualization \u2192 Storage of images\/reduced data\n<\/code><\/pre>\n<p>A medida que las escalas de computaci\u00f3n de alto rendimiento (HPC) hacia ExaScale, las t\u00e9cnicas in situ ya no son opcionales, se est\u00e1n convirtiendo en una necesidad para el descubrimiento cient\u00edfico. Esta gu\u00eda explica c\u00f3mo funciona la visualizaci\u00f3n in situ, la compara con el postprocesamiento tradicional, las encuestas de herramientas disponibles y brinda consejos pr\u00e1cticos para adoptarlo en sus proyectos de investigaci\u00f3n.<\/p>\n<h2>C\u00f3mo funciona la visualizaci\u00f3n in situ: el flujo de trabajo principal<\/h2>\n<p>La visualizaci\u00f3n in situ aprovecha los mismos recursos computacionales que ejecutan la simulaci\u00f3n para realizar el an\u00e1lisis visual. Existen dos estrategias de acoplamiento primarios:<\/p>\n<h3>Visualizaci\u00f3n in situ estrechamente acoplada (en l\u00ednea)<\/h3>\n<p>El c\u00f3digo de visualizaci\u00f3n comparte el mismo espacio de memoria y ejecutable que la simulaci\u00f3n. A intervalos espec\u00edficos (por ejemplo, cada paso de tiempo o cuando se cumplen ciertos criterios), las pausas de simulaci\u00f3n, los datos se pasan a los algoritmos de visualizaci\u00f3n y se producen im\u00e1genes o datos derivados.<\/p>\n<p><strong>Pros:<\/strong><\/p>\n<ul>\n<li>Acceso de menor latencia a datos de simulaci\u00f3n<\/li>\n<li>Sin gastos generales de comunicaci\u00f3n en red<\/li>\n<li>Mapeo de datos m\u00e1s simple (la misma disposici\u00f3n de memoria)<\/li>\n<\/ul>\n<p><strong>Contras:<\/strong><\/p>\n<ul>\n<li>La visualizaci\u00f3n compite directamente con los ciclos de CPU\/GPU, lo que ralentiza la simulaci\u00f3n<\/li>\n<li>Aumento de la huella de memoria por nodo<\/li>\n<li>Un bloqueo en el c\u00f3digo de visualizaci\u00f3n puede bloquear toda la simulaci\u00f3n<\/li>\n<\/ul>\n<p><strong>Herramientas de ejemplo:<\/strong> Catalizador de paraview integrado directamente en el binario de simulaci\u00f3n.<\/p>\n<h3>Visualizaci\u00f3n in situ sueltamente acoplada (en tr\u00e1nsito)<\/h3>\n<p>La simulaci\u00f3n se ejecuta en un conjunto de nodos de c\u00f3mputo, mientras que la visualizaci\u00f3n se ejecuta en un conjunto de nodos separados coasignados. Los datos se transfieren a trav\u00e9s de la red (a menudo a trav\u00e9s de MPI) a los procesos de visualizaci\u00f3n.<\/p>\n<p><strong>Pros:<\/strong><\/p>\n<ul>\n<li>La visualizaci\u00f3n no interfiere directamente con el c\u00e1lculo de la simulaci\u00f3n<\/li>\n<li>Puede escalar la visualizaci\u00f3n de forma independiente<\/li>\n<li>Mejor aislamiento de fallas<\/li>\n<\/ul>\n<p><strong>Contras:<\/strong><\/p>\n<ul>\n<li>Sobrecarga de transferencia de red<\/li>\n<li>Requiere m\u00e1s recursos totales (nodos separados)<\/li>\n<li>Es posible que sea necesario volver a particionar los datos para la visualizaci\u00f3n<\/li>\n<\/ul>\n<p><strong>Marcos de ejemplo:<\/strong> Damaris, que utiliza n\u00facleos dedicados para el an\u00e1lisis as\u00edncrono.<\/p>\n<h3>Enfoques h\u00edbridos<\/h3>\n<p>Muchas implementaciones del mundo real utilizan una estrategia h\u00edbrida: acoplados estrechamente dentro de un nodo (usando la misma CPU\/GPU) pero acoplados vagamente a trav\u00e9s de nodos, o empleando canalizaciones as\u00edncronas donde la visualizaci\u00f3n se ejecuta antes de la simulaci\u00f3n en los mismos recursos.<\/p>\n<h2>In-situ vs posprocesamiento: un an\u00e1lisis comparativo<\/h2>\n<table>\n<thead>\n<tr>\n<th>Caracter\u00edstica<\/th>\n<th>Visualizaci\u00f3n in situ<\/th>\n<th>Visualizaci\u00f3n posterior al procesamiento<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Tiempo<\/strong><\/td>\n<td>En tiempo real, durante la simulaci\u00f3n<\/td>\n<td>Retrasado (despu\u00e9s de la simulaci\u00f3n)<\/td>\n<\/tr>\n<tr>\n<td><strong>Flujo de datos<\/strong><\/td>\n<td>Procesa datos en memoria<\/td>\n<td>Escribe datos en el disco, luego los lee<\/td>\n<\/tr>\n<tr>\n<td><strong>Sobrecarga de E\/S<\/strong><\/td>\n<td>Muy bajo (minimiza las escrituras en disco)<\/td>\n<td>Muy alto (Cuello de disco)<\/td>\n<\/tr>\n<tr>\n<td><strong>Necesidades de almacenamiento<\/strong><\/td>\n<td>Bajo (solo im\u00e1genes\/res\u00famenes guardados)<\/td>\n<td>Extremadamente alto (datos sin procesar completos)<\/td>\n<\/tr>\n<tr>\n<td><strong>Resoluci\u00f3n temporal<\/strong><\/td>\n<td>Alto (cada paso de tiempo posible)<\/td>\n<td>Bajo (limitado por la capacidad de almacenamiento)<\/td>\n<\/tr>\n<tr>\n<td><strong>Flexibilidad<\/strong><\/td>\n<td>Bajo (decisiones fijas antes de ejecutar)<\/td>\n<td>Alto (puede volver a analizar los datos guardados)<\/td>\n<\/tr>\n<tr>\n<td><strong>Impacto de c\u00e1lculo<\/strong><\/td>\n<td>Comparte recursos con simulaci\u00f3n<\/td>\n<td>Sin impacto en el tiempo de ejecuci\u00f3n de la simulaci\u00f3n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Cu\u00e1ndo usar la visualizaci\u00f3n in situ<\/h3>\n<ul>\n<li><strong>Simulaciones de ExaScale<\/strong> donde el ancho de banda de E\/S es el factor limitante<\/li>\n<li><strong>Fen\u00f3menos transitorios<\/strong> que requieren una alta fidelidad temporal (por ejemplo, frentes de movimiento r\u00e1pido, turbulencia)<\/li>\n<li><strong>Depuraci\u00f3n<\/strong>: debe detectar errores antes de perder millones de horas centrales.<\/li>\n<li><strong>Direcci\u00f3n de simulaci\u00f3n<\/strong>\u2014Desea ajustar par\u00e1metros sobre la marcha en funci\u00f3n de los resultados intermedios<\/li>\n<li><strong>Reducci\u00f3n de datos<\/strong>: necesita extraer funciones, estad\u00edsticas o im\u00e1genes y descartar datos sin procesar<\/li>\n<\/ul>\n<h3>Cuando el posprocesamiento todav\u00eda tiene sentido<\/h3>\n<ul>\n<li><strong>Conjuntos de datos peque\u00f1os a moderados<\/strong> que se pueden almacenar de forma asequible<\/li>\n<li><strong>An\u00e1lisis exploratorio<\/strong> donde debe probar muchas t\u00e9cnicas de visualizaci\u00f3n diferentes despu\u00e9s del hecho<\/li>\n<li><strong>Renderizado de alta fidelidad<\/strong> que requiere el conjunto de datos completo y no se puede realizar con representaciones reducidas<\/li>\n<li><strong>Objetivos de archivo<\/strong>\u2014preservar datos sin procesar para futuras reproducibilidad<\/li>\n<\/ul>\n<p>En la pr\u00e1ctica, muchos equipos adoptan una <strong>estrategia h\u00edbrida<\/strong>: usan in-situ para producir conjuntos de datos reducidos (por ejemplo, bases de datos de cine, estad\u00edsticas, isosuperficies) y conservar suficientes datos sin procesar para seleccionar pasos de tiempo, luego realizar un procesamiento posterior detallado en el conjunto reducido.<\/p>\n<h2>Herramientas y marcos populares para la visualizaci\u00f3n in situ<\/h2>\n<p>Varios frameworks de c\u00f3digo abierto maduros admiten la integraci\u00f3n in situ:<\/p>\n<h3>Catalizador de paravista<\/h3>\n<p>Paraview Catalyst es una biblioteca ligera que permite el an\u00e1lisis in situ utilizando la canalizaci\u00f3n VTK. Proporciona una peque\u00f1a API que las simulaciones en C++, C, Fortran o Python pueden llamar para pasar datos a los algoritmos de visualizaci\u00f3n de ParaView. Catalyst puede generar im\u00e1genes, extraer caracter\u00edsticas o producir bases de datos de cine para su posterior exploraci\u00f3n.<\/p>\n<p><strong>Fuerzas clave:<\/strong><\/p>\n<ul>\n<li>Aprovecha todo el poder de VTK y Paraview<\/li>\n<li>Admite modos de acoplamiento firme y suelto<\/li>\n<li>Desarrollo activo y amplia documentaci\u00f3n<\/li>\n<\/ul>\n<p><strong>Recursos:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/docs.paraview.org\/en\/latest\/Catalyst\/index.html\">Documentaci\u00f3n de Paraview Catalyst<\/a><\/li>\n<li><a href=\"https:\/\/petrvalenta.eu\/posts\/introduction_to_in_situ_visualization_and_paraview_catalyst\/\">Introducci\u00f3n a la visualizaci\u00f3n in situ y catalizador de paraview<\/a><\/li>\n<\/ul>\n<h3>Visita Libsim<\/h3>\n<p>Visit ofrece libsim, un conjunto de bibliotecas que permiten que las simulaciones se conecten al motor de visualizaci\u00f3n de Visit. Al igual que Catalyst, admite modos en l\u00ednea y en tr\u00e1nsito. La visita es particularmente fuerte para la visualizaci\u00f3n paralela a gran escala y se ha utilizado en muchos sistemas de clase de liderazgo.<\/p>\n<p><strong>Fuerzas clave:<\/strong><\/p>\n<ul>\n<li>Altamente escalable a cientos de miles de n\u00facleos<\/li>\n<li>Rico conjunto de operadores de visualizaci\u00f3n<\/li>\n<li>Fuerte soporte para los datos de refinamiento de malla adaptativa (AMR)<\/li>\n<\/ul>\n<p><strong>Recursos:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/groupe-calcul.cnrs.fr\/attachments\/spip\/Documents\/Manifestations\/CIRA2011\/JFavre.pdf\">Visualizaci\u00f3n in situ con visita<\/a><\/li>\n<\/ul>\n<h3>Ascenso<\/h3>\n<p>Ascent es una biblioteca in situ ligera y con capacidad de muchos n\u00facleos dise\u00f1ada para entornos con recursos limitados. Es especialmente efectivo para aplicaciones aceleradas por GPU y puede ejecutarse de manera eficiente en un peque\u00f1o subconjunto de nodos.<\/p>\n<p><strong>Fuerzas clave:<\/strong><\/p>\n<ul>\n<li>Sobrecarga m\u00ednima<\/li>\n<li>Buen soporte de GPU<\/li>\n<li>Parte del proyecto de computaci\u00f3n EXASCALE de EE. UU.<\/li>\n<\/ul>\n<h3>dama<\/h3>\n<p>Damaris se enfoca en el uso de n\u00facleos dedicados para el an\u00e1lisis in situ asincr\u00f3nico, aislando la visualizaci\u00f3n de la simulaci\u00f3n principal para minimizar el impacto del rendimiento. Es compatible con los backends de visita y paraview.<\/p>\n<p><strong>Fuerzas clave:<\/strong><\/p>\n<ul>\n<li>La ejecuci\u00f3n as\u00edncrona reduce la interferencia de simulaci\u00f3n<\/li>\n<li>Maneja el movimiento de datos y la repartici\u00f3n<\/li>\n<li>Adecuado para simulaciones de estado estacionario de larga duraci\u00f3n<\/li>\n<\/ul>\n<h3>sensei y conducto<\/h3>\n<p>Sensei proporciona una interfaz gen\u00e9rica que desacopla las simulaciones de herramientas in situ espec\u00edficas. Conduit maneja la descripci\u00f3n y el intercambio de datos. Esta abstracci\u00f3n permite que el mismo c\u00f3digo de simulaci\u00f3n funcione con Catalyst, Ascent u otros backends sin cambios de c\u00f3digo.<\/p>\n<p><strong>Cu\u00e1ndo elegir:<\/strong> Si desea evitar el bloqueo del proveedor y admitir m\u00faltiples marcos in situ.<\/p>\n<h2>Desaf\u00edos de implementaci\u00f3n: \u00bfQu\u00e9 puede salir mal?<\/h2>\n<p>La integraci\u00f3n de la visualizaci\u00f3n in situ en una base de c\u00f3digo de simulaci\u00f3n existente no es trivial. Est\u00e9 preparado para estos desaf\u00edos comunes:<\/p>\n<h3>Contenci\u00f3n de recursos y sobrecarga de rendimiento<\/h3>\n<p>La visualizaci\u00f3n consume ciclos de CPU, tiempo de GPU y memoria que de otro modo estar\u00edan disponibles para la simulaci\u00f3n. Los estudios han demostrado que las tuber\u00edas in situ mal optimizadas pueden retrasar las simulaciones en un 20-50% o m\u00e1s. La clave es <strong>measure<\/strong> y <strong>atada<\/strong> la sobrecarga.<\/p>\n<p><strong>Estrategias de mitigaci\u00f3n:<\/strong><\/p>\n<ul>\n<li>Use modos asincr\u00f3nicos o en tr\u00e1nsito para separar recursos<\/li>\n<li>Limite la frecuencia de visualizaci\u00f3n (por ejemplo, cada 10\u00ba paso de tiempo)<\/li>\n<li>Emplear algoritmos de reducci\u00f3n de datos para reducir el volumen de procesamiento<\/li>\n<li>Dedicar un subconjunto de n\u00facleos\/GPU exclusivamente a la visualizaci\u00f3n<\/li>\n<\/ul>\n<h3>Huella de memoria<\/h3>\n<p>Carga de bibliotecas de visualizaci\u00f3n junto con la simulaci\u00f3n Aumenta el uso de memoria por nodo. En los sistemas vinculados a la memoria, esto puede forzar una reducci\u00f3n en el tama\u00f1o del problema por nodo.<\/p>\n<p><strong>Mitigaci\u00f3n:<\/strong><\/p>\n<ul>\n<li>Elija marcos ligeros (Ascent est\u00e1 dise\u00f1ado para esto)<\/li>\n<li>Suelte la memoria de visualizaci\u00f3n inmediatamente despu\u00e9s de su uso<\/li>\n<li>Considere los modos en tr\u00e1nsito donde la visualizaci\u00f3n se ejecuta en nodos separados<\/li>\n<\/ul>\n<h3>Conversi\u00f3n de datos e interoperabilidad<\/h3>\n<p>Los c\u00f3digos de simulaci\u00f3n a menudo utilizan estructuras de datos personalizadas optimizadas para los solucionadores de PDE. Las herramientas in situ como VTK esperan datos en formatos espec\u00edficos (por ejemplo, cuadr\u00edculas estructuradas, mallas no estructuradas). Los adaptadores de escritura para traducir entre estas representaciones pueden ser complejos y pueden implicar copias profundas costosas.<\/p>\n<p><strong>Soluci\u00f3n:<\/strong><\/p>\n<ul>\n<li>Use capas de abstracci\u00f3n como Sensei\/Conduit para definir un modelo de datos com\u00fan<\/li>\n<li>Explore las interfaces de copia cero si su simulaci\u00f3n y visualizaci\u00f3n comparten el mismo dise\u00f1o subyacente<\/li>\n<li>C\u00f3digo adaptador de factor en un m\u00f3dulo separado para aislar la complejidad<\/li>\n<\/ul>\n<h3>Escalabilidad paralela<\/h3>\n<p>Los algoritmos de visualizaci\u00f3n deben escalar al mismo tama\u00f1o que la simulaci\u00f3n (potencialmente millones de rangos MPI). Las operaciones globales como la representaci\u00f3n volum\u00e9trica o la extracci\u00f3n de Isosurface en todos los datos pueden convertirse en cuellos de botella de comunicaci\u00f3n.<\/p>\n<p><strong>Soluci\u00f3n:<\/strong><\/p>\n<ul>\n<li>Utilice algoritmos de visualizaci\u00f3n distribuida que minimicen la comunicaci\u00f3n entre nodos<\/li>\n<li>Emplear la reducci\u00f3n o el muestreo de datos para reducir el volumen de datos efectivo<\/li>\n<li>Considere los enfoques jer\u00e1rquicos: primero el an\u00e1lisis local, luego los resultados agregados<\/li>\n<\/ul>\n<h3>El problema &#8216;a priori&#8217;<\/h3>\n<p>La visualizaci\u00f3n in situ requiere que decidas <strong>antes de ejecutar<\/strong> qu\u00e9 visualizar. Si luego se da cuenta de que necesita examinar una variable diferente o aplicar un filtro diferente, los datos sin procesar desaparecen. Esta es la inflexibilidad fundamental del in-situ.<\/p>\n<p><strong>Soluciones alternativas:<\/strong><\/p>\n<ul>\n<li>Guarde un conjunto de datos reducido pero flexible (por ejemplo, una base de datos de cine) que admite la renderizaci\u00f3n posterior desde diferentes puntos de vista<\/li>\n<li>Guarde peri\u00f3dicamente peque\u00f1as instant\u00e1neas de datos sin procesar en pasos de tiempo clave<\/li>\n<li>Use la direcci\u00f3n de simulaci\u00f3n para ajustar din\u00e1micamente los par\u00e1metros de visualizaci\u00f3n a medida que avanza la carrera<\/li>\n<\/ul>\n<h3>Complejidad del c\u00f3digo y fragilidad<\/h3>\n<p>El acoplamiento ajustado significa que la biblioteca de visualizaci\u00f3n se convierte en parte del ejecutable de simulaci\u00f3n. Un error en el c\u00f3digo de visualizaci\u00f3n puede bloquear toda la simulaci\u00f3n. La integraci\u00f3n tambi\u00e9n aumenta la complejidad del c\u00f3digo y la carga de mantenimiento.<\/p>\n<p><strong>Mejores pr\u00e1cticas:<\/strong><\/p>\n<ul>\n<li>Encapsular todas las llamadas in situ detr\u00e1s de una interfaz limpia<\/li>\n<li>Mantenga el c\u00f3digo de visualizaci\u00f3n separado de los solucionadores principales<\/li>\n<li>Proporcione la configuraci\u00f3n de tiempo de ejecuci\u00f3n para habilitar\/deshabilitar in situ f\u00e1cilmente<\/li>\n<li>Prueba con visualizaci\u00f3n deshabilitada para garantizar la estabilidad de la simulaci\u00f3n<\/li>\n<\/ul>\n<h2>Mejores pr\u00e1cticas para la adopci\u00f3n in situ exitosa<\/h2>\n<p>Basado en la experiencia de la comunidad de HPC, siga estas pautas para maximizar el \u00e9xito:<\/p>\n<h3>1. Comience con un prototipo<\/h3>\n<p>Antes de comprometerse a una integraci\u00f3n completa, cree un peque\u00f1o prototipo que ejerza la canalizaci\u00f3n b\u00e1sica: Simulaci\u00f3n \u2192 Herramienta in situ \u2192 Imagen de salida. Esto valida la cadena de herramientas y revela los obst\u00e1culos de integraci\u00f3n con anticipaci\u00f3n.<\/p>\n<h3>2. Adopte arquitecturas as\u00edncronas o h\u00edbridas<\/h3>\n<p>Evite los modos estrechamente acoplados a menos que tenga una fuerte evidencia de que los gastos generales ser\u00e1n aceptables. Prefiere enfoques en tr\u00e1nsito o as\u00edncronos donde la visualizaci\u00f3n se ejecuta en n\u00facleos o nodos dedicados. Esto a\u00edsla la interferencia de rendimiento.<\/p>\n<h3>3. Definir objetivos claros de reducci\u00f3n de datos<\/h3>\n<p>El in-situ es m\u00e1s efectivo cuando reduce los datos <em>antes<\/em> para guardarlos. Decide por adelantado:<\/p>\n<ul>\n<li>\u00bfQu\u00e9 im\u00e1genes o pel\u00edculas necesitas?<\/li>\n<li>\u00bfQu\u00e9 cantidades derivadas (por ejemplo, flujos integrados, valores m\u00e1ximos) son esenciales?<\/li>\n<li>\u00bfPuedes usar bases de datos de cine para una exploraci\u00f3n post-hoc flexible?<\/li>\n<\/ul>\n<h3>4. Mide todo<\/h3>\n<p>Instruye su c\u00f3digo para medir:<\/p>\n<ul>\n<li>Tiempo de simulaci\u00f3n con y sin habilitado in situ<\/li>\n<li>Uso de memoria por nodo<\/li>\n<li>Frecuencia y duraci\u00f3n de las pausas de visualizaci\u00f3n<\/li>\n<li>Calidad y utilidad de los productos producidos<\/li>\n<\/ul>\n<p>Sin m\u00e9tricas, no puede saber si in situ est\u00e1 ayudando o sufriendo.<\/p>\n<h3>5. Aprovechar la infraestructura existente<\/h3>\n<p>No reinvente la rueda. Use marcos establecidos (catalizador, ascent, damaris) en lugar de escribir c\u00f3digo in situ personalizado desde cero. Manejan muchos detalles de bajo nivel (comunicaci\u00f3n MPI, repartici\u00f3n de datos, celdas fantasma) que son propensas a errores de implementarse.<\/p>\n<h3>6. Plan de direcci\u00f3n de simulaci\u00f3n<\/h3>\n<p>Si desea dirigir las simulaciones de forma interactiva, dise\u00f1e su canalizaci\u00f3n in situ para aceptar mensajes de control externos. Las herramientas como Icarus (para Paraview) brindan capacidades de direcci\u00f3n con cambios de c\u00f3digo m\u00ednimos.<\/p>\n<h3>7. Usar celdas fantasma para l\u00edmites paralelos<\/h3>\n<p>Cuando su dominio de simulaci\u00f3n se descompone en los rangos de MPI, los algoritmos de visualizaci\u00f3n que necesitan datos vecinos (por ejemplo, gradientes, isosuperficies) deben comunicarse a trav\u00e9s de los l\u00edmites de subdominio. Pre-compute y almacene \u00abc\u00e9lulas fantasma\u00bb para evitar la comunicaci\u00f3n repetida durante la visualizaci\u00f3n.<\/p>\n<h3>8. Mantenga la visualizaci\u00f3n opcional<\/h3>\n<p>Envuelva todas las llamadas in situ detr\u00e1s de un indicador de tiempo de ejecuci\u00f3n. La simulaci\u00f3n debe ejecutarse normalmente con in-situ deshabilitado. Esto es esencial para la depuraci\u00f3n y para los escenarios en los que desea ejecutar sin la sobrecarga.<\/p>\n<h2>Aplicaciones del mundo real: donde brilla in situ<\/h2>\n<p>La visualizaci\u00f3n in situ se ha vuelto indispensable en varios dominios cient\u00edficos:<\/p>\n<h3>Din\u00e1mica de fluidos computacional (CFD)<\/h3>\n<p>Las simulaciones de flujo turbulento generan campos masivos de velocidad y presi\u00f3n en 3D. La visualizaci\u00f3n in situ puede extraer cortes 2D, aerodin\u00e1micas o n\u00facleos de v\u00f3rtice en tiempo real, lo que permite a los ingenieros monitorear la separaci\u00f3n del flujo, las ondas de choque o la inestabilidad de combusti\u00f3n a medida que se desarrollan.<\/p>\n<h3>Astrof\u00edsica y Cosmolog\u00eda<\/h3>\n<p>Las simulaciones cosmol\u00f3gicas con refinamiento de malla adaptativa (AMR) rastrean halos de materia oscura y densidades de gas durante miles de millones de a\u00f1os. El an\u00e1lisis in situ identifica halos, clasifica estructuras y rastrea las fusiones a alta resoluci\u00f3n temporal, tareas que ser\u00edan imposibles con instant\u00e1neas guardadas poco frecuentes.<\/p>\n<h3>Din\u00e1mica molecular y ciencia de materiales<\/h3>\n<p>Los conjuntos de ejecuciones de din\u00e1mica molecular se pueden monitorear in situ para detectar eventos raros como nucleaci\u00f3n, transiciones de fase o nucleaci\u00f3n de dislocaci\u00f3n. Los investigadores pueden detener las simulaciones temprano cuando ocurre un evento, guardando recursos computacionales.<\/p>\n<h3>Clima y computaci\u00f3n urgente<\/h3>\n<p>Las previsiones meteorol\u00f3gicas de conjuntos para huracanes o incendios forestales requieren ejecutar docenas de simulaciones en paralelo. El an\u00e1lisis topol\u00f3gico in situ identifica el resultado m\u00e1s probable del conjunto, proporcionando informaci\u00f3n cr\u00edtica para las decisiones de emergencia antes de escribir el conjunto de datos completo.<\/p>\n<h3>Visualizaci\u00f3n del rendimiento<\/h3>\n<p>Ir\u00f3nicamente, tambi\u00e9n se utilizan t\u00e9cnicas in situ para visualizar el rendimiento del propio sistema HPC: monitorear el ancho de banda de la memoria, los patrones de comunicaci\u00f3n y el equilibrio de carga durante la ejecuci\u00f3n para guiar la optimizaci\u00f3n.<\/p>\n<h2>Primeros pasos: una lista de verificaci\u00f3n pr\u00e1ctica<\/h2>\n<p>Si est\u00e1 considerando agregar visualizaci\u00f3n in situ a su c\u00f3digo de simulaci\u00f3n, siga este plan paso a paso:<\/p>\n<h3>Fase 1: Evaluaci\u00f3n (1-2 semanas)<\/h3>\n<ul>\n<li>[ ] <strong>cuantificar su problema de E\/S<\/strong>: \u00bfcu\u00e1ntos datos genera? \u00bfCu\u00e1nto tiempo lleva escribir? \u00bfReducir la producci\u00f3n ahorrar\u00eda mucho tiempo?<\/li>\n<li>[ ] <strong>Identificar objetivos de visualizaci\u00f3n<\/strong>: \u00bfQu\u00e9 im\u00e1genes o an\u00e1lisis espec\u00edficos necesita durante la ejecuci\u00f3n? (p. ej., \u00ab2d rebanada de temperatura cada 100 pasos\u00bb, \u00abPresi\u00f3n m\u00e1xima en el tiempo\u00bb)<\/li>\n<li>[ ] <strong>Herramientas de encuesta<\/strong>: Revise Paraview Catalyst, Visite libsim, Ascent y Damaris. \u00bfCu\u00e1l se ajusta a su lenguaje de programaci\u00f3n y entorno HPC?<\/li>\n<li>[ ] <strong>Comprobaci\u00f3n de soporte del sistema<\/strong>: \u00bfSu supercomputaci\u00f3n admite flujos de trabajo in situ? \u00bfEst\u00e1n instaladas las bibliotecas requeridas?<\/li>\n<\/ul>\n<h3>Fase 2: prototipo (2-4 semanas)<\/h3>\n<ul>\n<li>[ ] <strong>Configure un ejemplo m\u00ednimo<\/strong>: tome un peque\u00f1o caso de prueba (por ejemplo, un simple solucionador de ecuaciones de calor) e integre el marco in situ elegido para producir una sola imagen.<\/li>\n<li>[ ] <strong>Medir los gastos generales de la l\u00ednea de base<\/strong>: compare el tiempo de ejecuci\u00f3n de la simulaci\u00f3n con y sin habilitado in situ. \u00bfEs aceptable la sobrecarga (&lt; 10-15%)?<\/li>\n<li>[ ] <strong>Reducci\u00f3n de datos de prueba<\/strong>: Experimente con diferentes estrategias de reducci\u00f3n (submuestreo, isosuperficies, agregados estad\u00edsticos). \u00bfEl producto satisface sus necesidades cient\u00edficas?<\/li>\n<li>[ ] <strong>Verificar escalabilidad<\/strong>: Ejecute el prototipo en 1, 10, 100 rangos. \u00bfLa escala a\u00e9rea escala linealmente o explota a escalas m\u00e1s grandes?<\/li>\n<\/ul>\n<h3>Fase 3: Integraci\u00f3n (4-8 semanas)<\/h3>\n<ul>\n<li>[ ] [ ] <strong>Dise\u00f1e una capa de abstracci\u00f3n<\/strong>: cree un m\u00f3dulo que encapsule todas las llamadas in situ detr\u00e1s de una API simple (por ejemplo, <code>beginTimestep()<\/code>, <code>addData(field)<\/code>, <code>execute()<\/code>, <code>endTimestep()<\/code>). Esto hace que sea f\u00e1cil intercambiar marcos m\u00e1s adelante.<\/li>\n<li>[ ] <strong>Agregar configuraci\u00f3n<\/strong>: use banderas de tiempo de ejecuci\u00f3n o variables de entorno para controlar la frecuencia in situ, los formatos de salida y qu\u00e9 variables capturar.<\/li>\n<li>[ ] <strong>Implementar una degradaci\u00f3n elegante<\/strong>: aseg\u00farese de que la simulaci\u00f3n contin\u00fae incluso si falla in situ (por ejemplo, escriba una advertencia pero no se canse).<\/li>\n<li>[ ] <strong>Integrar con las E\/S existentes<\/strong>: decida c\u00f3mo coexisten las salidas in situ (im\u00e1genes, bases de datos) con cualquier volcado de datos de procesamiento posterior existente.<\/li>\n<li>[ ] <strong>Agregar direcci\u00f3n si es necesario<\/strong>: si la direcci\u00f3n interactiva es un objetivo, implemente devoluciones de llamada o pase de mensajes para permitir cambios de par\u00e1metros externos.<\/li>\n<\/ul>\n<h3>Fase 4: Validaci\u00f3n y Producci\u00f3n (2-4 semanas)<\/h3>\n<ul>\n<li>[ ] <strong>Ejecutar pruebas de extremo a extremo<\/strong>: Ejecute una simulaci\u00f3n cient\u00edfica completa con in situ habilitado. Verifique que las salidas sean correctas y que la simulaci\u00f3n se complete en un tiempo aceptable.<\/li>\n<li>[ ] <strong>Prueba de estr\u00e9s<\/strong>: Empuje los l\u00edmites: ejecute el n\u00famero completo de n\u00facleos previstos, con el tama\u00f1o m\u00e1ximo del problema. Monitorear la memoria, la comunicaci\u00f3n y la estabilidad.<\/li>\n<li>[ ] <strong>Documente el flujo de trabajo<\/strong>: escriba instrucciones claras para los usuarios: c\u00f3mo habilitar in situ, qu\u00e9 opciones est\u00e1n disponibles, d\u00f3nde se escriben los resultados, c\u00f3mo interpretarlas.<\/li>\n<li>[ ] <strong>Train de usuarios<\/strong>: aseg\u00farese de que los miembros del equipo entiendan el flujo de trabajo in situ y puedan solucionar problemas comunes.<\/li>\n<\/ul>\n<h2>Trampas comunes y c\u00f3mo evitarlas<\/h2>\n<table>\n<thead>\n<tr>\n<th>Trampa<\/th>\n<th>S\u00edntoma<\/th>\n<th>Prevenci\u00f3n \/ Arreglo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Overhead ilimitado<\/strong><\/td>\n<td>La simulaci\u00f3n se ralentiza por &gt; 30%<\/td>\n<td>limitar la frecuencia in situ; usar en tr\u00e1nsito; Perfil para encontrar cuellos de botella<\/td>\n<\/tr>\n<tr>\n<td><strong>Agotamiento de la memoria<\/strong><\/td>\n<td>Empleos asesinados por el asesino de OOM<\/td>\n<td>reducir el volumen de datos pasado; Use menos n\u00facleos dedicados; Cambiar al modo de acoplamiento suelto<\/td>\n<\/tr>\n<tr>\n<td><strong>Variables faltantes<\/strong><\/td>\n<td>M\u00e1s tarde se da cuenta de que necesita ahorrar cantidad x<\/td>\n<td>Guarde peque\u00f1as instant\u00e1neas sin procesar peri\u00f3dicamente; Usar formato de cine para flexibilidad<\/td>\n<\/tr>\n<tr>\n<td><strong>Escala deficiente<\/strong><\/td>\n<td>El tiempo in situ aumenta con el recuento de n\u00facleos<\/td>\n<td>utilizar algoritmos de visualizaci\u00f3n distribuida; datos de repartici\u00f3n; Agr\u00e9guese localmente primero<\/td>\n<\/tr>\n<tr>\n<td><strong>Simulaci\u00f3n de bloqueos de visualizaci\u00f3n<\/strong><\/td>\n<td>Una mala llamada de visualizaci\u00f3n aborta toda la ejecuci\u00f3n<\/td>\n<td>Envolver llamadas in situ en try-catch; deshabilitar in situ en caso de falla; Mantenga el c\u00f3digo de simulaci\u00f3n separado<\/td>\n<\/tr>\n<tr>\n<td><strong>Los archivos de salida se sobrescriben<\/strong><\/td>\n<td>M\u00faltiples ejecuciones escribir en las mismas im\u00e1genes<\/td>\n<td>Incluya marcas de tiempo o identificaciones de trabajo en los nombres de archivo de salida; Usar directorios de salida separados<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Conclusi\u00f3n: \u00bfEs la visualizaci\u00f3n in situ adecuada para usted?<\/h2>\n<p>La visualizaci\u00f3n in situ es un poderoso paradigma para abordar el diluvio de datos de la computaci\u00f3n cient\u00edfica moderna. Al procesar datos en la memoria durante las ejecuciones de simulaci\u00f3n, puede superar los cuellos de botella de E\/S, reducir los costos de almacenamiento y obtener informaci\u00f3n en tiempo real de sus modelos. Sin embargo, no es una bala de plata: introduce complejidad, requiere decisiones de dise\u00f1o por adelantado y puede afectar el rendimiento de la simulaci\u00f3n si se implementa de manera deficiente.<\/p>\n<p>Para los grupos de investigaci\u00f3n que ejecutan simulaciones de PDE a gran escala en sistemas HPC, especialmente aquellos que se acercan a ExaScale, es cada vez m\u00e1s esencial aprender y adoptar t\u00e9cnicas in situ. Comience poco a poco con un prototipo, mida rigurosamente y ampl\u00ede deliberadamente. La inversi\u00f3n vale la pena en ciclos de iteraci\u00f3n m\u00e1s r\u00e1pidos, informaci\u00f3n cient\u00edfica m\u00e1s rica y la capacidad de ejecutar simulaciones que de otro modo ser\u00edan imposibles debido al volumen de datos.<\/p>\n<h2>Gu\u00edas relacionadas<\/h2>\n<ul>\n<li><a href=\"\/visualizing-simulation-results-effectively\/\">Visualizar los resultados de la simulaci\u00f3n de manera efectiva<\/a>: principios generales para convertir los datos de simulaci\u00f3n en im\u00e1genes procesables.<\/li>\n<li><a href=\"\/illuminator-distributed-visualization-library\/\">librer\u00eda de visualizaci\u00f3n distribuida de iluminador<\/a>: descripci\u00f3n general de una herramienta especializada para renderizado y almacenamiento en paralelo.<\/li>\n<li><a href=\"\/managing-large-scale-pde-problems-strategies-solvers-and-hpc-case-studies\/\">gesti\u00f3n de problemas de PDE a gran escala<\/a>: estrategias para resolver sistemas masivos de manera eficiente.<\/li>\n<li><a href=\"\/understanding-phase-field-models-in-materials-science\/\">Comprender modelos de campo de fase<\/a>: un \u00e1rea de aplicaci\u00f3n com\u00fan para las simulaciones PDE.<\/li>\n<li><a href=\"\/using-fipy-for-phase-field-modeling\/\">usando fipy para el modelado de campo de fase<\/a>: implementaci\u00f3n pr\u00e1ctica en Python.<\/li>\n<\/ul>\n<h2>Pr\u00f3ximos pasos<\/h2>\n<p>\u00bfListo para probar la visualizaci\u00f3n in situ? Comience por:<\/p>\n<ol>\n<li><strong>Evaluar sus cuellos de botella de E\/S actuales<\/strong>: ejecute una herramienta de creaci\u00f3n de perfiles (por ejemplo, Darshan) en una simulaci\u00f3n existente para cuantificar el tiempo dedicado a escribir datos.<\/li>\n<li><strong>Instalar Paraview Catalyst o Ascent<\/strong> en su sistema de desarrollo y ejecutar los tutoriales.<\/li>\n<li><strong>Construyendo un prototipo m\u00ednimo<\/strong> con un simple caso de prueba para medir la sobrecarga y validar la cadena de herramientas.<\/li>\n<li><strong>Llegar a &lt;<\/strong> al equipo de soporte de HPC de su instituci\u00f3n; a menudo tienen c\u00f3digos de experiencia y ejemplos para comenzar.<\/li>\n<\/ol>\n<p>Si necesita ayuda para integrar la visualizaci\u00f3n in situ en su software de investigaci\u00f3n, cont\u00e1ctenos para consultas y capacitaci\u00f3n adaptadas a los equipos de computaci\u00f3n cient\u00edfica.<\/p>\n","protected":false,"raw":"<h2>tl; dr<\/h2>\n<p>La visualizaci\u00f3n in situ procesa y analiza los datos de simulaci\u00f3n <strong>mientras que la simulaci\u00f3n se ejecuta<\/strong>, directamente en la memoria, en lugar de escribir resultados sin procesar en el disco para un posterior procesamiento. Este enfoque es esencial para la computaci\u00f3n Exascale donde el ancho de banda de E\/S no puede mantenerse al d\u00eda con la generaci\u00f3n de datos. Al integrar la visualizaci\u00f3n durante el c\u00e1lculo, puede:<\/p>\n<ul>\n<li>Evite los cuellos de botella de E\/S que paralizan los flujos de trabajo tradicionales<\/li>\n<li>Supervise las simulaciones en tiempo real y en los par\u00e1metros de direcci\u00f3n sobre la marcha<\/li>\n<li>Reducir las necesidades de almacenamiento en \u00f3rdenes de magnitud<\/li>\n<li>Captura fen\u00f3menos transitorios que se perder\u00edan con instant\u00e1neas poco frecuentes<\/li>\n<\/ul>\n<p>La compensaci\u00f3n se agrega complejidad y contenci\u00f3n de recursos: debe decidir qu\u00e9 visualizar antes de la ejecuci\u00f3n, y la visualizaci\u00f3n compite con la simulaci\u00f3n para los ciclos de CPU\/GPU.<\/p>\n<h2>Introducci\u00f3n: por qu\u00e9 es importante la visualizaci\u00f3n in situ<\/h2>\n<p>Las simulaciones cient\u00edficas generan grandes cantidades de datos. Una sola ejecuci\u00f3n de ExaScale puede producir petabytes de salida, pero escribir esos datos en el disco se convierte en un cuello de botella fundamental: los sistemas de almacenamiento no pueden seguir el ritmo del rendimiento computacional. El resultado es una brecha cada vez mayor entre la rapidez con la que las simulaciones pueden producir datos y la rapidez con que se pueden guardar y analizar los datos.<\/p>\n<p>La visualizaci\u00f3n in situ (lat\u00edn para 'en el lugar') aborda esto realizando tareas de visualizaci\u00f3n y an\u00e1lisis <strong>al mismo tiempo que la simulaci\u00f3n<\/strong> accede a los datos directamente desde la memoria antes de escribirlos en el disco. Este paradigma cambia el flujo de trabajo de:<\/p>\n<pre><code>Simulation \u2192 Storage \u2192 Visualization\n<\/code><\/pre>\n<p>a:<\/p>\n<pre><code>Simulation + Visualization \u2192 Storage of images\/reduced data\n<\/code><\/pre>\n<p>A medida que las escalas de computaci\u00f3n de alto rendimiento (HPC) hacia ExaScale, las t\u00e9cnicas in situ ya no son opcionales, se est\u00e1n convirtiendo en una necesidad para el descubrimiento cient\u00edfico. Esta gu\u00eda explica c\u00f3mo funciona la visualizaci\u00f3n in situ, la compara con el postprocesamiento tradicional, las encuestas de herramientas disponibles y brinda consejos pr\u00e1cticos para adoptarlo en sus proyectos de investigaci\u00f3n.<\/p>\n<h2>C\u00f3mo funciona la visualizaci\u00f3n in situ: el flujo de trabajo principal<\/h2>\n<p>La visualizaci\u00f3n in situ aprovecha los mismos recursos computacionales que ejecutan la simulaci\u00f3n para realizar el an\u00e1lisis visual. Existen dos estrategias de acoplamiento primarios:<\/p>\n<h3>Visualizaci\u00f3n in situ estrechamente acoplada (en l\u00ednea)<\/h3>\n<p>El c\u00f3digo de visualizaci\u00f3n comparte el mismo espacio de memoria y ejecutable que la simulaci\u00f3n. A intervalos espec\u00edficos (por ejemplo, cada paso de tiempo o cuando se cumplen ciertos criterios), las pausas de simulaci\u00f3n, los datos se pasan a los algoritmos de visualizaci\u00f3n y se producen im\u00e1genes o datos derivados.<\/p>\n<p><strong>Pros:<\/strong><\/p>\n<ul>\n<li>Acceso de menor latencia a datos de simulaci\u00f3n<\/li>\n<li>Sin gastos generales de comunicaci\u00f3n en red<\/li>\n<li>Mapeo de datos m\u00e1s simple (la misma disposici\u00f3n de memoria)<\/li>\n<\/ul>\n<p><strong>Contras:<\/strong><\/p>\n<ul>\n<li>La visualizaci\u00f3n compite directamente con los ciclos de CPU\/GPU, lo que ralentiza la simulaci\u00f3n<\/li>\n<li>Aumento de la huella de memoria por nodo<\/li>\n<li>Un bloqueo en el c\u00f3digo de visualizaci\u00f3n puede bloquear toda la simulaci\u00f3n<\/li>\n<\/ul>\n<p><strong>Herramientas de ejemplo:<\/strong> Catalizador de paraview integrado directamente en el binario de simulaci\u00f3n.<\/p>\n<h3>Visualizaci\u00f3n in situ sueltamente acoplada (en tr\u00e1nsito)<\/h3>\n<p>La simulaci\u00f3n se ejecuta en un conjunto de nodos de c\u00f3mputo, mientras que la visualizaci\u00f3n se ejecuta en un conjunto de nodos separados coasignados. Los datos se transfieren a trav\u00e9s de la red (a menudo a trav\u00e9s de MPI) a los procesos de visualizaci\u00f3n.<\/p>\n<p><strong>Pros:<\/strong><\/p>\n<ul>\n<li>La visualizaci\u00f3n no interfiere directamente con el c\u00e1lculo de la simulaci\u00f3n<\/li>\n<li>Puede escalar la visualizaci\u00f3n de forma independiente<\/li>\n<li>Mejor aislamiento de fallas<\/li>\n<\/ul>\n<p><strong>Contras:<\/strong><\/p>\n<ul>\n<li>Sobrecarga de transferencia de red<\/li>\n<li>Requiere m\u00e1s recursos totales (nodos separados)<\/li>\n<li>Es posible que sea necesario volver a particionar los datos para la visualizaci\u00f3n<\/li>\n<\/ul>\n<p><strong>Marcos de ejemplo:<\/strong> Damaris, que utiliza n\u00facleos dedicados para el an\u00e1lisis as\u00edncrono.<\/p>\n<h3>Enfoques h\u00edbridos<\/h3>\n<p>Muchas implementaciones del mundo real utilizan una estrategia h\u00edbrida: acoplados estrechamente dentro de un nodo (usando la misma CPU\/GPU) pero acoplados vagamente a trav\u00e9s de nodos, o empleando canalizaciones as\u00edncronas donde la visualizaci\u00f3n se ejecuta antes de la simulaci\u00f3n en los mismos recursos.<\/p>\n<h2>In-situ vs posprocesamiento: un an\u00e1lisis comparativo<\/h2>\n<table>\n<thead>\n<tr>\n<th>Caracter\u00edstica<\/th>\n<th>Visualizaci\u00f3n in situ<\/th>\n<th>Visualizaci\u00f3n posterior al procesamiento<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Tiempo<\/strong><\/td>\n<td>En tiempo real, durante la simulaci\u00f3n<\/td>\n<td>Retrasado (despu\u00e9s de la simulaci\u00f3n)<\/td>\n<\/tr>\n<tr>\n<td><strong>Flujo de datos<\/strong><\/td>\n<td>Procesa datos en memoria<\/td>\n<td>Escribe datos en el disco, luego los lee<\/td>\n<\/tr>\n<tr>\n<td><strong>Sobrecarga de E\/S<\/strong><\/td>\n<td>Muy bajo (minimiza las escrituras en disco)<\/td>\n<td>Muy alto (Cuello de disco)<\/td>\n<\/tr>\n<tr>\n<td><strong>Necesidades de almacenamiento<\/strong><\/td>\n<td>Bajo (solo im\u00e1genes\/res\u00famenes guardados)<\/td>\n<td>Extremadamente alto (datos sin procesar completos)<\/td>\n<\/tr>\n<tr>\n<td><strong>Resoluci\u00f3n temporal<\/strong><\/td>\n<td>Alto (cada paso de tiempo posible)<\/td>\n<td>Bajo (limitado por la capacidad de almacenamiento)<\/td>\n<\/tr>\n<tr>\n<td><strong>Flexibilidad<\/strong><\/td>\n<td>Bajo (decisiones fijas antes de ejecutar)<\/td>\n<td>Alto (puede volver a analizar los datos guardados)<\/td>\n<\/tr>\n<tr>\n<td><strong>Impacto de c\u00e1lculo<\/strong><\/td>\n<td>Comparte recursos con simulaci\u00f3n<\/td>\n<td>Sin impacto en el tiempo de ejecuci\u00f3n de la simulaci\u00f3n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Cu\u00e1ndo usar la visualizaci\u00f3n in situ<\/h3>\n<ul>\n<li><strong>Simulaciones de ExaScale<\/strong> donde el ancho de banda de E\/S es el factor limitante<\/li>\n<li><strong>Fen\u00f3menos transitorios<\/strong> que requieren una alta fidelidad temporal (por ejemplo, frentes de movimiento r\u00e1pido, turbulencia)<\/li>\n<li><strong>Depuraci\u00f3n<\/strong>: debe detectar errores antes de perder millones de horas centrales.<\/li>\n<li><strong>Direcci\u00f3n de simulaci\u00f3n<\/strong>\u2014Desea ajustar par\u00e1metros sobre la marcha en funci\u00f3n de los resultados intermedios<\/li>\n<li><strong>Reducci\u00f3n de datos<\/strong>: necesita extraer funciones, estad\u00edsticas o im\u00e1genes y descartar datos sin procesar<\/li>\n<\/ul>\n<h3>Cuando el posprocesamiento todav\u00eda tiene sentido<\/h3>\n<ul>\n<li><strong>Conjuntos de datos peque\u00f1os a moderados<\/strong> que se pueden almacenar de forma asequible<\/li>\n<li><strong>An\u00e1lisis exploratorio<\/strong> donde debe probar muchas t\u00e9cnicas de visualizaci\u00f3n diferentes despu\u00e9s del hecho<\/li>\n<li><strong>Renderizado de alta fidelidad<\/strong> que requiere el conjunto de datos completo y no se puede realizar con representaciones reducidas<\/li>\n<li><strong>Objetivos de archivo<\/strong>\u2014preservar datos sin procesar para futuras reproducibilidad<\/li>\n<\/ul>\n<p>En la pr\u00e1ctica, muchos equipos adoptan una <strong>estrategia h\u00edbrida<\/strong>: usan in-situ para producir conjuntos de datos reducidos (por ejemplo, bases de datos de cine, estad\u00edsticas, isosuperficies) y conservar suficientes datos sin procesar para seleccionar pasos de tiempo, luego realizar un procesamiento posterior detallado en el conjunto reducido.<\/p>\n<h2>Herramientas y marcos populares para la visualizaci\u00f3n in situ<\/h2>\n<p>Varios frameworks de c\u00f3digo abierto maduros admiten la integraci\u00f3n in situ:<\/p>\n<h3>Catalizador de paravista<\/h3>\n<p>Paraview Catalyst es una biblioteca ligera que permite el an\u00e1lisis in situ utilizando la canalizaci\u00f3n VTK. Proporciona una peque\u00f1a API que las simulaciones en C++, C, Fortran o Python pueden llamar para pasar datos a los algoritmos de visualizaci\u00f3n de ParaView. Catalyst puede generar im\u00e1genes, extraer caracter\u00edsticas o producir bases de datos de cine para su posterior exploraci\u00f3n.<\/p>\n<p><strong>Fuerzas clave:<\/strong><\/p>\n<ul>\n<li>Aprovecha todo el poder de VTK y Paraview<\/li>\n<li>Admite modos de acoplamiento firme y suelto<\/li>\n<li>Desarrollo activo y amplia documentaci\u00f3n<\/li>\n<\/ul>\n<p><strong>Recursos:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/docs.paraview.org\/en\/latest\/Catalyst\/index.html\">Documentaci\u00f3n de Paraview Catalyst<\/a><\/li>\n<li><a href=\"https:\/\/petrvalenta.eu\/posts\/introduction_to_in_situ_visualization_and_paraview_catalyst\/\">Introducci\u00f3n a la visualizaci\u00f3n in situ y catalizador de paraview<\/a><\/li>\n<\/ul>\n<h3>Visita Libsim<\/h3>\n<p>Visit ofrece libsim, un conjunto de bibliotecas que permiten que las simulaciones se conecten al motor de visualizaci\u00f3n de Visit. Al igual que Catalyst, admite modos en l\u00ednea y en tr\u00e1nsito. La visita es particularmente fuerte para la visualizaci\u00f3n paralela a gran escala y se ha utilizado en muchos sistemas de clase de liderazgo.<\/p>\n<p><strong>Fuerzas clave:<\/strong><\/p>\n<ul>\n<li>Altamente escalable a cientos de miles de n\u00facleos<\/li>\n<li>Rico conjunto de operadores de visualizaci\u00f3n<\/li>\n<li>Fuerte soporte para los datos de refinamiento de malla adaptativa (AMR)<\/li>\n<\/ul>\n<p><strong>Recursos:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/groupe-calcul.cnrs.fr\/attachments\/spip\/Documents\/Manifestations\/CIRA2011\/JFavre.pdf\">Visualizaci\u00f3n in situ con visita<\/a><\/li>\n<\/ul>\n<h3>Ascenso<\/h3>\n<p>Ascent es una biblioteca in situ ligera y con capacidad de muchos n\u00facleos dise\u00f1ada para entornos con recursos limitados. Es especialmente efectivo para aplicaciones aceleradas por GPU y puede ejecutarse de manera eficiente en un peque\u00f1o subconjunto de nodos.<\/p>\n<p><strong>Fuerzas clave:<\/strong><\/p>\n<ul>\n<li>Sobrecarga m\u00ednima<\/li>\n<li>Buen soporte de GPU<\/li>\n<li>Parte del proyecto de computaci\u00f3n EXASCALE de EE. UU.<\/li>\n<\/ul>\n<h3>dama<\/h3>\n<p>Damaris se enfoca en el uso de n\u00facleos dedicados para el an\u00e1lisis in situ asincr\u00f3nico, aislando la visualizaci\u00f3n de la simulaci\u00f3n principal para minimizar el impacto del rendimiento. Es compatible con los backends de visita y paraview.<\/p>\n<p><strong>Fuerzas clave:<\/strong><\/p>\n<ul>\n<li>La ejecuci\u00f3n as\u00edncrona reduce la interferencia de simulaci\u00f3n<\/li>\n<li>Maneja el movimiento de datos y la repartici\u00f3n<\/li>\n<li>Adecuado para simulaciones de estado estacionario de larga duraci\u00f3n<\/li>\n<\/ul>\n<h3>sensei y conducto<\/h3>\n<p>Sensei proporciona una interfaz gen\u00e9rica que desacopla las simulaciones de herramientas in situ espec\u00edficas. Conduit maneja la descripci\u00f3n y el intercambio de datos. Esta abstracci\u00f3n permite que el mismo c\u00f3digo de simulaci\u00f3n funcione con Catalyst, Ascent u otros backends sin cambios de c\u00f3digo.<\/p>\n<p><strong>Cu\u00e1ndo elegir:<\/strong> Si desea evitar el bloqueo del proveedor y admitir m\u00faltiples marcos in situ.<\/p>\n<h2>Desaf\u00edos de implementaci\u00f3n: \u00bfQu\u00e9 puede salir mal?<\/h2>\n<p>La integraci\u00f3n de la visualizaci\u00f3n in situ en una base de c\u00f3digo de simulaci\u00f3n existente no es trivial. Est\u00e9 preparado para estos desaf\u00edos comunes:<\/p>\n<h3>Contenci\u00f3n de recursos y sobrecarga de rendimiento<\/h3>\n<p>La visualizaci\u00f3n consume ciclos de CPU, tiempo de GPU y memoria que de otro modo estar\u00edan disponibles para la simulaci\u00f3n. Los estudios han demostrado que las tuber\u00edas in situ mal optimizadas pueden retrasar las simulaciones en un 20-50% o m\u00e1s. La clave es <strong>measure<\/strong> y <strong>atada<\/strong> la sobrecarga.<\/p>\n<p><strong>Estrategias de mitigaci\u00f3n:<\/strong><\/p>\n<ul>\n<li>Use modos asincr\u00f3nicos o en tr\u00e1nsito para separar recursos<\/li>\n<li>Limite la frecuencia de visualizaci\u00f3n (por ejemplo, cada 10\u00ba paso de tiempo)<\/li>\n<li>Emplear algoritmos de reducci\u00f3n de datos para reducir el volumen de procesamiento<\/li>\n<li>Dedicar un subconjunto de n\u00facleos\/GPU exclusivamente a la visualizaci\u00f3n<\/li>\n<\/ul>\n<h3>Huella de memoria<\/h3>\n<p>Carga de bibliotecas de visualizaci\u00f3n junto con la simulaci\u00f3n Aumenta el uso de memoria por nodo. En los sistemas vinculados a la memoria, esto puede forzar una reducci\u00f3n en el tama\u00f1o del problema por nodo.<\/p>\n<p><strong>Mitigaci\u00f3n:<\/strong><\/p>\n<ul>\n<li>Elija marcos ligeros (Ascent est\u00e1 dise\u00f1ado para esto)<\/li>\n<li>Suelte la memoria de visualizaci\u00f3n inmediatamente despu\u00e9s de su uso<\/li>\n<li>Considere los modos en tr\u00e1nsito donde la visualizaci\u00f3n se ejecuta en nodos separados<\/li>\n<\/ul>\n<h3>Conversi\u00f3n de datos e interoperabilidad<\/h3>\n<p>Los c\u00f3digos de simulaci\u00f3n a menudo utilizan estructuras de datos personalizadas optimizadas para los solucionadores de PDE. Las herramientas in situ como VTK esperan datos en formatos espec\u00edficos (por ejemplo, cuadr\u00edculas estructuradas, mallas no estructuradas). Los adaptadores de escritura para traducir entre estas representaciones pueden ser complejos y pueden implicar copias profundas costosas.<\/p>\n<p><strong>Soluci\u00f3n:<\/strong><\/p>\n<ul>\n<li>Use capas de abstracci\u00f3n como Sensei\/Conduit para definir un modelo de datos com\u00fan<\/li>\n<li>Explore las interfaces de copia cero si su simulaci\u00f3n y visualizaci\u00f3n comparten el mismo dise\u00f1o subyacente<\/li>\n<li>C\u00f3digo adaptador de factor en un m\u00f3dulo separado para aislar la complejidad<\/li>\n<\/ul>\n<h3>Escalabilidad paralela<\/h3>\n<p>Los algoritmos de visualizaci\u00f3n deben escalar al mismo tama\u00f1o que la simulaci\u00f3n (potencialmente millones de rangos MPI). Las operaciones globales como la representaci\u00f3n volum\u00e9trica o la extracci\u00f3n de Isosurface en todos los datos pueden convertirse en cuellos de botella de comunicaci\u00f3n.<\/p>\n<p><strong>Soluci\u00f3n:<\/strong><\/p>\n<ul>\n<li>Utilice algoritmos de visualizaci\u00f3n distribuida que minimicen la comunicaci\u00f3n entre nodos<\/li>\n<li>Emplear la reducci\u00f3n o el muestreo de datos para reducir el volumen de datos efectivo<\/li>\n<li>Considere los enfoques jer\u00e1rquicos: primero el an\u00e1lisis local, luego los resultados agregados<\/li>\n<\/ul>\n<h3>El problema 'a priori'<\/h3>\n<p>La visualizaci\u00f3n in situ requiere que decidas <strong>antes de ejecutar<\/strong> qu\u00e9 visualizar. Si luego se da cuenta de que necesita examinar una variable diferente o aplicar un filtro diferente, los datos sin procesar desaparecen. Esta es la inflexibilidad fundamental del in-situ.<\/p>\n<p><strong>Soluciones alternativas:<\/strong><\/p>\n<ul>\n<li>Guarde un conjunto de datos reducido pero flexible (por ejemplo, una base de datos de cine) que admite la renderizaci\u00f3n posterior desde diferentes puntos de vista<\/li>\n<li>Guarde peri\u00f3dicamente peque\u00f1as instant\u00e1neas de datos sin procesar en pasos de tiempo clave<\/li>\n<li>Use la direcci\u00f3n de simulaci\u00f3n para ajustar din\u00e1micamente los par\u00e1metros de visualizaci\u00f3n a medida que avanza la carrera<\/li>\n<\/ul>\n<h3>Complejidad del c\u00f3digo y fragilidad<\/h3>\n<p>El acoplamiento ajustado significa que la biblioteca de visualizaci\u00f3n se convierte en parte del ejecutable de simulaci\u00f3n. Un error en el c\u00f3digo de visualizaci\u00f3n puede bloquear toda la simulaci\u00f3n. La integraci\u00f3n tambi\u00e9n aumenta la complejidad del c\u00f3digo y la carga de mantenimiento.<\/p>\n<p><strong>Mejores pr\u00e1cticas:<\/strong><\/p>\n<ul>\n<li>Encapsular todas las llamadas in situ detr\u00e1s de una interfaz limpia<\/li>\n<li>Mantenga el c\u00f3digo de visualizaci\u00f3n separado de los solucionadores principales<\/li>\n<li>Proporcione la configuraci\u00f3n de tiempo de ejecuci\u00f3n para habilitar\/deshabilitar in situ f\u00e1cilmente<\/li>\n<li>Prueba con visualizaci\u00f3n deshabilitada para garantizar la estabilidad de la simulaci\u00f3n<\/li>\n<\/ul>\n<h2>Mejores pr\u00e1cticas para la adopci\u00f3n in situ exitosa<\/h2>\n<p>Basado en la experiencia de la comunidad de HPC, siga estas pautas para maximizar el \u00e9xito:<\/p>\n<h3>1. Comience con un prototipo<\/h3>\n<p>Antes de comprometerse a una integraci\u00f3n completa, cree un peque\u00f1o prototipo que ejerza la canalizaci\u00f3n b\u00e1sica: Simulaci\u00f3n \u2192 Herramienta in situ \u2192 Imagen de salida. Esto valida la cadena de herramientas y revela los obst\u00e1culos de integraci\u00f3n con anticipaci\u00f3n.<\/p>\n<h3>2. Adopte arquitecturas as\u00edncronas o h\u00edbridas<\/h3>\n<p>Evite los modos estrechamente acoplados a menos que tenga una fuerte evidencia de que los gastos generales ser\u00e1n aceptables. Prefiere enfoques en tr\u00e1nsito o as\u00edncronos donde la visualizaci\u00f3n se ejecuta en n\u00facleos o nodos dedicados. Esto a\u00edsla la interferencia de rendimiento.<\/p>\n<h3>3. Definir objetivos claros de reducci\u00f3n de datos<\/h3>\n<p>El in-situ es m\u00e1s efectivo cuando reduce los datos <em>antes<\/em> para guardarlos. Decide por adelantado:<\/p>\n<ul>\n<li>\u00bfQu\u00e9 im\u00e1genes o pel\u00edculas necesitas?<\/li>\n<li>\u00bfQu\u00e9 cantidades derivadas (por ejemplo, flujos integrados, valores m\u00e1ximos) son esenciales?<\/li>\n<li>\u00bfPuedes usar bases de datos de cine para una exploraci\u00f3n post-hoc flexible?<\/li>\n<\/ul>\n<h3>4. Mide todo<\/h3>\n<p>Instruye su c\u00f3digo para medir:<\/p>\n<ul>\n<li>Tiempo de simulaci\u00f3n con y sin habilitado in situ<\/li>\n<li>Uso de memoria por nodo<\/li>\n<li>Frecuencia y duraci\u00f3n de las pausas de visualizaci\u00f3n<\/li>\n<li>Calidad y utilidad de los productos producidos<\/li>\n<\/ul>\n<p>Sin m\u00e9tricas, no puede saber si in situ est\u00e1 ayudando o sufriendo.<\/p>\n<h3>5. Aprovechar la infraestructura existente<\/h3>\n<p>No reinvente la rueda. Use marcos establecidos (catalizador, ascent, damaris) en lugar de escribir c\u00f3digo in situ personalizado desde cero. Manejan muchos detalles de bajo nivel (comunicaci\u00f3n MPI, repartici\u00f3n de datos, celdas fantasma) que son propensas a errores de implementarse.<\/p>\n<h3>6. Plan de direcci\u00f3n de simulaci\u00f3n<\/h3>\n<p>Si desea dirigir las simulaciones de forma interactiva, dise\u00f1e su canalizaci\u00f3n in situ para aceptar mensajes de control externos. Las herramientas como Icarus (para Paraview) brindan capacidades de direcci\u00f3n con cambios de c\u00f3digo m\u00ednimos.<\/p>\n<h3>7. Usar celdas fantasma para l\u00edmites paralelos<\/h3>\n<p>Cuando su dominio de simulaci\u00f3n se descompone en los rangos de MPI, los algoritmos de visualizaci\u00f3n que necesitan datos vecinos (por ejemplo, gradientes, isosuperficies) deben comunicarse a trav\u00e9s de los l\u00edmites de subdominio. Pre-compute y almacene \"c\u00e9lulas fantasma\" para evitar la comunicaci\u00f3n repetida durante la visualizaci\u00f3n.<\/p>\n<h3>8. Mantenga la visualizaci\u00f3n opcional<\/h3>\n<p>Envuelva todas las llamadas in situ detr\u00e1s de un indicador de tiempo de ejecuci\u00f3n. La simulaci\u00f3n debe ejecutarse normalmente con in-situ deshabilitado. Esto es esencial para la depuraci\u00f3n y para los escenarios en los que desea ejecutar sin la sobrecarga.<\/p>\n<h2>Aplicaciones del mundo real: donde brilla in situ<\/h2>\n<p>La visualizaci\u00f3n in situ se ha vuelto indispensable en varios dominios cient\u00edficos:<\/p>\n<h3>Din\u00e1mica de fluidos computacional (CFD)<\/h3>\n<p>Las simulaciones de flujo turbulento generan campos masivos de velocidad y presi\u00f3n en 3D. La visualizaci\u00f3n in situ puede extraer cortes 2D, aerodin\u00e1micas o n\u00facleos de v\u00f3rtice en tiempo real, lo que permite a los ingenieros monitorear la separaci\u00f3n del flujo, las ondas de choque o la inestabilidad de combusti\u00f3n a medida que se desarrollan.<\/p>\n<h3>Astrof\u00edsica y Cosmolog\u00eda<\/h3>\n<p>Las simulaciones cosmol\u00f3gicas con refinamiento de malla adaptativa (AMR) rastrean halos de materia oscura y densidades de gas durante miles de millones de a\u00f1os. El an\u00e1lisis in situ identifica halos, clasifica estructuras y rastrea las fusiones a alta resoluci\u00f3n temporal, tareas que ser\u00edan imposibles con instant\u00e1neas guardadas poco frecuentes.<\/p>\n<h3>Din\u00e1mica molecular y ciencia de materiales<\/h3>\n<p>Los conjuntos de ejecuciones de din\u00e1mica molecular se pueden monitorear in situ para detectar eventos raros como nucleaci\u00f3n, transiciones de fase o nucleaci\u00f3n de dislocaci\u00f3n. Los investigadores pueden detener las simulaciones temprano cuando ocurre un evento, guardando recursos computacionales.<\/p>\n<h3>Clima y computaci\u00f3n urgente<\/h3>\n<p>Las previsiones meteorol\u00f3gicas de conjuntos para huracanes o incendios forestales requieren ejecutar docenas de simulaciones en paralelo. El an\u00e1lisis topol\u00f3gico in situ identifica el resultado m\u00e1s probable del conjunto, proporcionando informaci\u00f3n cr\u00edtica para las decisiones de emergencia antes de escribir el conjunto de datos completo.<\/p>\n<h3>Visualizaci\u00f3n del rendimiento<\/h3>\n<p>Ir\u00f3nicamente, tambi\u00e9n se utilizan t\u00e9cnicas in situ para visualizar el rendimiento del propio sistema HPC: monitorear el ancho de banda de la memoria, los patrones de comunicaci\u00f3n y el equilibrio de carga durante la ejecuci\u00f3n para guiar la optimizaci\u00f3n.<\/p>\n<h2>Primeros pasos: una lista de verificaci\u00f3n pr\u00e1ctica<\/h2>\n<p>Si est\u00e1 considerando agregar visualizaci\u00f3n in situ a su c\u00f3digo de simulaci\u00f3n, siga este plan paso a paso:<\/p>\n<h3>Fase 1: Evaluaci\u00f3n (1-2 semanas)<\/h3>\n<ul>\n<li>[ ] <strong>cuantificar su problema de E\/S<\/strong>: \u00bfcu\u00e1ntos datos genera? \u00bfCu\u00e1nto tiempo lleva escribir? \u00bfReducir la producci\u00f3n ahorrar\u00eda mucho tiempo?<\/li>\n<li>[ ] <strong>Identificar objetivos de visualizaci\u00f3n<\/strong>: \u00bfQu\u00e9 im\u00e1genes o an\u00e1lisis espec\u00edficos necesita durante la ejecuci\u00f3n? (p. ej., \"2d rebanada de temperatura cada 100 pasos\", \"Presi\u00f3n m\u00e1xima en el tiempo\")<\/li>\n<li>[ ] <strong>Herramientas de encuesta<\/strong>: Revise Paraview Catalyst, Visite libsim, Ascent y Damaris. \u00bfCu\u00e1l se ajusta a su lenguaje de programaci\u00f3n y entorno HPC?<\/li>\n<li>[ ] <strong>Comprobaci\u00f3n de soporte del sistema<\/strong>: \u00bfSu supercomputaci\u00f3n admite flujos de trabajo in situ? \u00bfEst\u00e1n instaladas las bibliotecas requeridas?<\/li>\n<\/ul>\n<h3>Fase 2: prototipo (2-4 semanas)<\/h3>\n<ul>\n<li>[ ] <strong>Configure un ejemplo m\u00ednimo<\/strong>: tome un peque\u00f1o caso de prueba (por ejemplo, un simple solucionador de ecuaciones de calor) e integre el marco in situ elegido para producir una sola imagen.<\/li>\n<li>[ ] <strong>Medir los gastos generales de la l\u00ednea de base<\/strong>: compare el tiempo de ejecuci\u00f3n de la simulaci\u00f3n con y sin habilitado in situ. \u00bfEs aceptable la sobrecarga (&lt; 10-15%)?<\/li>\n<li>[ ] <strong>Reducci\u00f3n de datos de prueba<\/strong>: Experimente con diferentes estrategias de reducci\u00f3n (submuestreo, isosuperficies, agregados estad\u00edsticos). \u00bfEl producto satisface sus necesidades cient\u00edficas?<\/li>\n<li>[ ] <strong>Verificar escalabilidad<\/strong>: Ejecute el prototipo en 1, 10, 100 rangos. \u00bfLa escala a\u00e9rea escala linealmente o explota a escalas m\u00e1s grandes?<\/li>\n<\/ul>\n<h3>Fase 3: Integraci\u00f3n (4-8 semanas)<\/h3>\n<ul>\n<li>[ ] [ ] <strong>Dise\u00f1e una capa de abstracci\u00f3n<\/strong>: cree un m\u00f3dulo que encapsule todas las llamadas in situ detr\u00e1s de una API simple (por ejemplo, <code>beginTimestep()<\/code>, <code>addData(field)<\/code>, <code>execute()<\/code>, <code>endTimestep()<\/code>). Esto hace que sea f\u00e1cil intercambiar marcos m\u00e1s adelante.<\/li>\n<li>[ ] <strong>Agregar configuraci\u00f3n<\/strong>: use banderas de tiempo de ejecuci\u00f3n o variables de entorno para controlar la frecuencia in situ, los formatos de salida y qu\u00e9 variables capturar.<\/li>\n<li>[ ] <strong>Implementar una degradaci\u00f3n elegante<\/strong>: aseg\u00farese de que la simulaci\u00f3n contin\u00fae incluso si falla in situ (por ejemplo, escriba una advertencia pero no se canse).<\/li>\n<li>[ ] <strong>Integrar con las E\/S existentes<\/strong>: decida c\u00f3mo coexisten las salidas in situ (im\u00e1genes, bases de datos) con cualquier volcado de datos de procesamiento posterior existente.<\/li>\n<li>[ ] <strong>Agregar direcci\u00f3n si es necesario<\/strong>: si la direcci\u00f3n interactiva es un objetivo, implemente devoluciones de llamada o pase de mensajes para permitir cambios de par\u00e1metros externos.<\/li>\n<\/ul>\n<h3>Fase 4: Validaci\u00f3n y Producci\u00f3n (2-4 semanas)<\/h3>\n<ul>\n<li>[ ] <strong>Ejecutar pruebas de extremo a extremo<\/strong>: Ejecute una simulaci\u00f3n cient\u00edfica completa con in situ habilitado. Verifique que las salidas sean correctas y que la simulaci\u00f3n se complete en un tiempo aceptable.<\/li>\n<li>[ ] <strong>Prueba de estr\u00e9s<\/strong>: Empuje los l\u00edmites: ejecute el n\u00famero completo de n\u00facleos previstos, con el tama\u00f1o m\u00e1ximo del problema. Monitorear la memoria, la comunicaci\u00f3n y la estabilidad.<\/li>\n<li>[ ] <strong>Documente el flujo de trabajo<\/strong>: escriba instrucciones claras para los usuarios: c\u00f3mo habilitar in situ, qu\u00e9 opciones est\u00e1n disponibles, d\u00f3nde se escriben los resultados, c\u00f3mo interpretarlas.<\/li>\n<li>[ ] <strong>Train de usuarios<\/strong>: aseg\u00farese de que los miembros del equipo entiendan el flujo de trabajo in situ y puedan solucionar problemas comunes.<\/li>\n<\/ul>\n<h2>Trampas comunes y c\u00f3mo evitarlas<\/h2>\n<table>\n<thead>\n<tr>\n<th>Trampa<\/th>\n<th>S\u00edntoma<\/th>\n<th>Prevenci\u00f3n \/ Arreglo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Overhead ilimitado<\/strong><\/td>\n<td>La simulaci\u00f3n se ralentiza por &gt; 30%<\/td>\n<td>limitar la frecuencia in situ; usar en tr\u00e1nsito; Perfil para encontrar cuellos de botella<\/td>\n<\/tr>\n<tr>\n<td><strong>Agotamiento de la memoria<\/strong><\/td>\n<td>Empleos asesinados por el asesino de OOM<\/td>\n<td>reducir el volumen de datos pasado; Use menos n\u00facleos dedicados; Cambiar al modo de acoplamiento suelto<\/td>\n<\/tr>\n<tr>\n<td><strong>Variables faltantes<\/strong><\/td>\n<td>M\u00e1s tarde se da cuenta de que necesita ahorrar cantidad x<\/td>\n<td>Guarde peque\u00f1as instant\u00e1neas sin procesar peri\u00f3dicamente; Usar formato de cine para flexibilidad<\/td>\n<\/tr>\n<tr>\n<td><strong>Escala deficiente<\/strong><\/td>\n<td>El tiempo in situ aumenta con el recuento de n\u00facleos<\/td>\n<td>utilizar algoritmos de visualizaci\u00f3n distribuida; datos de repartici\u00f3n; Agr\u00e9guese localmente primero<\/td>\n<\/tr>\n<tr>\n<td><strong>Simulaci\u00f3n de bloqueos de visualizaci\u00f3n<\/strong><\/td>\n<td>Una mala llamada de visualizaci\u00f3n aborta toda la ejecuci\u00f3n<\/td>\n<td>Envolver llamadas in situ en try-catch; deshabilitar in situ en caso de falla; Mantenga el c\u00f3digo de simulaci\u00f3n separado<\/td>\n<\/tr>\n<tr>\n<td><strong>Los archivos de salida se sobrescriben<\/strong><\/td>\n<td>M\u00faltiples ejecuciones escribir en las mismas im\u00e1genes<\/td>\n<td>Incluya marcas de tiempo o identificaciones de trabajo en los nombres de archivo de salida; Usar directorios de salida separados<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Conclusi\u00f3n: \u00bfEs la visualizaci\u00f3n in situ adecuada para usted?<\/h2>\n<p>La visualizaci\u00f3n in situ es un poderoso paradigma para abordar el diluvio de datos de la computaci\u00f3n cient\u00edfica moderna. Al procesar datos en la memoria durante las ejecuciones de simulaci\u00f3n, puede superar los cuellos de botella de E\/S, reducir los costos de almacenamiento y obtener informaci\u00f3n en tiempo real de sus modelos. Sin embargo, no es una bala de plata: introduce complejidad, requiere decisiones de dise\u00f1o por adelantado y puede afectar el rendimiento de la simulaci\u00f3n si se implementa de manera deficiente.<\/p>\n<p>Para los grupos de investigaci\u00f3n que ejecutan simulaciones de PDE a gran escala en sistemas HPC, especialmente aquellos que se acercan a ExaScale, es cada vez m\u00e1s esencial aprender y adoptar t\u00e9cnicas in situ. Comience poco a poco con un prototipo, mida rigurosamente y ampl\u00ede deliberadamente. La inversi\u00f3n vale la pena en ciclos de iteraci\u00f3n m\u00e1s r\u00e1pidos, informaci\u00f3n cient\u00edfica m\u00e1s rica y la capacidad de ejecutar simulaciones que de otro modo ser\u00edan imposibles debido al volumen de datos.<\/p>\n<h2>Gu\u00edas relacionadas<\/h2>\n<ul>\n<li><a href=\"\/visualizing-simulation-results-effectively\/\">Visualizar los resultados de la simulaci\u00f3n de manera efectiva<\/a>: principios generales para convertir los datos de simulaci\u00f3n en im\u00e1genes procesables.<\/li>\n<li><a href=\"\/illuminator-distributed-visualization-library\/\">librer\u00eda de visualizaci\u00f3n distribuida de iluminador<\/a>: descripci\u00f3n general de una herramienta especializada para renderizado y almacenamiento en paralelo.<\/li>\n<li><a href=\"\/managing-large-scale-pde-problems-strategies-solvers-and-hpc-case-studies\/\">gesti\u00f3n de problemas de PDE a gran escala<\/a>: estrategias para resolver sistemas masivos de manera eficiente.<\/li>\n<li><a href=\"\/understanding-phase-field-models-in-materials-science\/\">Comprender modelos de campo de fase<\/a>: un \u00e1rea de aplicaci\u00f3n com\u00fan para las simulaciones PDE.<\/li>\n<li><a href=\"\/using-fipy-for-phase-field-modeling\/\">usando fipy para el modelado de campo de fase<\/a>: implementaci\u00f3n pr\u00e1ctica en Python.<\/li>\n<\/ul>\n<h2>Pr\u00f3ximos pasos<\/h2>\n<p>\u00bfListo para probar la visualizaci\u00f3n in situ? Comience por:<\/p>\n<ol>\n<li><strong>Evaluar sus cuellos de botella de E\/S actuales<\/strong>: ejecute una herramienta de creaci\u00f3n de perfiles (por ejemplo, Darshan) en una simulaci\u00f3n existente para cuantificar el tiempo dedicado a escribir datos.<\/li>\n<li><strong>Instalar Paraview Catalyst o Ascent<\/strong> en su sistema de desarrollo y ejecutar los tutoriales.<\/li>\n<li><strong>Construyendo un prototipo m\u00ednimo<\/strong> con un simple caso de prueba para medir la sobrecarga y validar la cadena de herramientas.<\/li>\n<li><strong>Llegar a &lt;<\/strong> al equipo de soporte de HPC de su instituci\u00f3n; a menudo tienen c\u00f3digos de experiencia y ejemplos para comenzar.<\/li>\n<\/ol>\n<p>Si necesita ayuda para integrar la visualizaci\u00f3n in situ en su software de investigaci\u00f3n, cont\u00e1ctenos para consultas y capacitaci\u00f3n adaptadas a los equipos de computaci\u00f3n cient\u00edfica.<\/p>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 13<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>tl; dr La visualizaci\u00f3n in situ procesa y analiza los datos de simulaci\u00f3n mientras que la simulaci\u00f3n se ejecuta, directamente en la memoria, en lugar de escribir resultados sin procesar en el disco para un posterior procesamiento. Este enfoque es esencial para la computaci\u00f3n Exascale donde el ancho de banda de E\/S no puede mantenerse [&hellip;]<\/p>\n","protected":false,"raw":""},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"es_ES","_original_post":"https:\/\/matforge.org\/?p=238","iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-594","post","type-post","status-publish","format-standard","hentry","category-simulation-modeling-projects","es-ES"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Visualizaci\u00f3n in situ: an\u00e1lisis en tiempo real para simulaciones de HPC<\/title>\n<meta name=\"description\" content=\"Descubra c\u00f3mo la visualizaci\u00f3n in situ integra el an\u00e1lisis durante las ejecuciones de simulaci\u00f3n para superar los cuellos de botella de E\/S. Compare herramientas como Paraview Catalyst, aprenda las mejores pr\u00e1cticas y decida cu\u00e1ndo usar in situ frente a procesamiento posterior.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visualizaci\u00f3n in situ: an\u00e1lisis en tiempo real para simulaciones de HPC\" \/>\n<meta property=\"og:description\" content=\"Descubra c\u00f3mo la visualizaci\u00f3n in situ integra el an\u00e1lisis durante las ejecuciones de simulaci\u00f3n para superar los cuellos de botella de E\/S. Compare herramientas como Paraview Catalyst, aprenda las mejores pr\u00e1cticas y decida cu\u00e1ndo usar in situ frente a procesamiento posterior.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-22T08:17:32+00:00\" \/>\n<meta name=\"author\" content=\"steven\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"steven\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"21 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/in-situ-visualization-integration-computation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/in-situ-visualization-integration-computation\\\/\"},\"author\":{\"name\":\"steven\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"headline\":\"Visualizaci\u00f3n in situ: integraci\u00f3n de la visualizaci\u00f3n durante el c\u00e1lculo\",\"datePublished\":\"2026-07-22T08:17:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/in-situ-visualization-integration-computation\\\/\"},\"wordCount\":4099,\"commentCount\":0,\"articleSection\":[\"Simulaci\u00f3n &amp; Proyectos de modelado\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/es\\\/in-situ-visualization-integration-computation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/in-situ-visualization-integration-computation\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/es\\\/in-situ-visualization-integration-computation\\\/\",\"name\":\"Visualizaci\u00f3n in situ: an\u00e1lisis en tiempo real para simulaciones de HPC\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-07-22T08:17:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"description\":\"Descubra c\u00f3mo la visualizaci\u00f3n in situ integra el an\u00e1lisis durante las ejecuciones de simulaci\u00f3n para superar los cuellos de botella de E\\\/S. Compare herramientas como Paraview Catalyst, aprenda las mejores pr\u00e1cticas y decida cu\u00e1ndo usar in situ frente a procesamiento posterior.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/in-situ-visualization-integration-computation\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/es\\\/in-situ-visualization-integration-computation\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/es\\\/in-situ-visualization-integration-computation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Visualizaci\u00f3n in situ: integraci\u00f3n de la visualizaci\u00f3n durante el c\u00e1lculo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\",\"name\":\"steven\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"caption\":\"steven\"},\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/steven\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Visualizaci\u00f3n in situ: an\u00e1lisis en tiempo real para simulaciones de HPC","description":"Descubra c\u00f3mo la visualizaci\u00f3n in situ integra el an\u00e1lisis durante las ejecuciones de simulaci\u00f3n para superar los cuellos de botella de E\/S. Compare herramientas como Paraview Catalyst, aprenda las mejores pr\u00e1cticas y decida cu\u00e1ndo usar in situ frente a procesamiento posterior.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/","og_locale":"es_ES","og_type":"article","og_title":"Visualizaci\u00f3n in situ: an\u00e1lisis en tiempo real para simulaciones de HPC","og_description":"Descubra c\u00f3mo la visualizaci\u00f3n in situ integra el an\u00e1lisis durante las ejecuciones de simulaci\u00f3n para superar los cuellos de botella de E\/S. Compare herramientas como Paraview Catalyst, aprenda las mejores pr\u00e1cticas y decida cu\u00e1ndo usar in situ frente a procesamiento posterior.","og_url":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/","og_site_name":"matforge.org","article_published_time":"2026-07-22T08:17:32+00:00","author":"steven","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"steven","Tiempo de lectura":"21 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/"},"author":{"name":"steven","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"headline":"Visualizaci\u00f3n in situ: integraci\u00f3n de la visualizaci\u00f3n durante el c\u00e1lculo","datePublished":"2026-07-22T08:17:32+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/"},"wordCount":4099,"commentCount":0,"articleSection":["Simulaci\u00f3n &amp; Proyectos de modelado"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/","url":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/","name":"Visualizaci\u00f3n in situ: an\u00e1lisis en tiempo real para simulaciones de HPC","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-07-22T08:17:32+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"description":"Descubra c\u00f3mo la visualizaci\u00f3n in situ integra el an\u00e1lisis durante las ejecuciones de simulaci\u00f3n para superar los cuellos de botella de E\/S. Compare herramientas como Paraview Catalyst, aprenda las mejores pr\u00e1cticas y decida cu\u00e1ndo usar in situ frente a procesamiento posterior.","breadcrumb":{"@id":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/es\/in-situ-visualization-integration-computation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/es\/"},{"@type":"ListItem","position":2,"name":"Visualizaci\u00f3n in situ: integraci\u00f3n de la visualizaci\u00f3n durante el c\u00e1lculo"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03","name":"steven","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","caption":"steven"},"url":"https:\/\/matforge.org\/author\/steven\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=594"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/594\/revisions"}],"predecessor-version":[{"id":695,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/594\/revisions\/695"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}