  High-Performance Computing (HPC) systems provide input/output (IO)
performance growing relatively slowly compared to peak computational
performance and have limited storage capacity. Computational Fluid Dynamics
(CFD) applications aiming to leverage the full power of Exascale HPC systems,
such as the solver Nek5000, will generate massive data for further processing.
These data need to be efficiently stored via the IO subsystem. However, limited
IO performance and storage capacity may result in performance, and thus
scientific discovery, bottlenecks. In comparison to traditional post-processing
methods, in-situ techniques can reduce or avoid writing and reading the data
through the IO subsystem, promising to be a solution to these problems. In this
paper, we study the performance and resource usage of three in-situ use cases:
data compression, image generation, and uncertainty quantification. We
furthermore analyze three approaches when these in-situ tasks and the
simulation are executed synchronously, asynchronously, or in a hybrid manner.
In-situ compression can be used to reduce the IO time and storage requirements
while maintaining data accuracy. Furthermore, in-situ visualization and
analysis can save Terabytes of data from being routed through the IO subsystem
to storage. However, the overall efficiency is crucially dependent on the
characteristics of both, the in-situ task and the simulation. In some cases,
the overhead introduced by the in-situ tasks can be substantial. Therefore, it
is essential to choose the proper in-situ approach, synchronous, asynchronous,
or hybrid, to minimize overhead and maximize the benefits of concurrent
execution.
