April 05, 2023 - by CSCS

Scientific visualization and analysis are key ingredients in HPC simulation workflows. For decades, the dominant paradigm has been post-hoc visualization; simulation codes iterate and save files to disk, giving the domain scientists the opportunity to read the data back at a later time for analysis. In recent years though, this paradigm has been stressed by an ever-diverging rate of growth between I/O and compute speeds. In-situ processing helps mitigate these I/O bottlenecks, enabling simulation and visualization calculations to run in-memory, at higher spatial and temporal resolution, avoiding the transfer of raw data to disks. 

This full-day tutorial introduces ParaView Catalyst and Ascent, two open-source implementations enabling in-situ processing. Both packages share a common project, called Conduit, which provides an intuitive model for describing hierarchical scientific data in C++, C, Fortran, and Python. We will cover how to describe simulation data with Conduit and how Ascent or Catalyst can transform data, render images, and export results, discussing the pros and cons of both implementations.

Domain scientists and code developers and visualization practitioners in HPC will benefit from this tutorial by understanding the needs and advantages of integrating an in-situ visualization support into their code. They will have a brief overview of the current landscape of in-situ processing solutions, before focusing on two specific implementations. No particular knowledge of the implementation details of the data model used by the two libraries are required to follow the tutorial and to adopt the concepts learned. The two environments described are part of very active project developments by large teams with committed resources for future developments. Attendees can follow along, execute some tutorial examples using Jupyter Notebooks, and deploy two example mini-apps (mesh- and particle-based) to illustrate the ideas presented. Examples will require elementary knowledge of Python and C++.

Please find the full agenda and further information on the event page >