SENSEI is an open-source, generic in situ interface that allows parallel simulations or other data producers to code-couple to parallel third-party endpoints. These endpoints may be applications or tools/methods, including user-written code in C++ or Python and a growing class of data-intensive capabilities accessible through Python, capabilities such as AI/ML. Once a data producer is instrumented with the SENSEI interface, changing to a different endpoint is as simple as modifying an XML configuration file with a text editor. SENSEI fully supports configurations where the simulation and endpoint are run at differing levels of concurrency and will manage the potentially tricky process of partitioning and moving data from the M producer ranks to the N consumer ranks. The movement of data may be bidirectional, which means that a simulation sends data to an endpoint and has access to results computed from the endpoint. While initially designed and implemented for analysis, visualization, and other data-intensive in situ tasks, SENSEI's design and implementation support the coupling of arbitrary code. SENSEI is available as part of the DOE Exascale Computing Project (ECP) Data-Vis SDK.
SENSEI source code releases are tagged and downloadable here.
Tutorial materials, including slides and a virtual machine presented at Supercomputing.
SENSEI is tested as commits are merged.
Report a bug or request a feature.
Tell us what you think!