# Catalyst V2 MPI example/documentation.

**URL:** https://discourse.paraview.org/t/catalyst-v2-mpi-example-documentation/8993
**Category:** In Situ Support
**Created:** [February 16, 2022, 11:42pm UTC](https://discourse.paraview.org/t/catalyst-v2-mpi-example-documentation/8993 "2022-02-16T23:42:13Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![YvanFournier](https://discourse.paraview.org/user_avatar/discourse.paraview.org/yvanfournier/32/2876_2.png) [@YvanFournier](https://discourse.paraview.org/u/YvanFournier)
#### Post date: [February 16, 2022, 11:42pm UTC](https://discourse.paraview.org/t/catalyst-v2-mpi-example-documentation/8993/1 "2022-02-16T23:42:13Z")

</div>

Hello,

I’m starting to look into upgrading the Catalyst support on the code\_saturne CDF code to Catalyst-2, and there are one or 2 things I can’t mange to find in the documentation and examples:

- I recall reading something about how an MPI communicator info can be passed to Catalyst-2 or a Conduit node, but can’t find it again. I don’t see anything about this grepping the examples. In most cases, we use MPI\_COMM\_WORLD, but in some cases (involving code coupling), we may use another communicator, so I assume being able to control this is important (in Catalyst “legacy”, we do control this).

- I see that ParaView uses its own Conduit C++ wrappers, and calls the Conduit C interface but not the c++ one. And the headers installed with Catalyst only include the C headers. Is this by design, or due to code maturity issues ? I was thinking that using Conduit, I could also easily add support in the future for other libraries (such as Sensei or Ascent) by sharing part of the code, but I guess for this I would need to use the C API ? Nothing urgent here, just trying to future-proof the code.

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.paraview.org/u/ben.boeckel)
#### Post date: [February 17, 2022, 1:57pm UTC](https://discourse.paraview.org/t/catalyst-v2-mpi-example-documentation/8993/2 "2022-02-17T13:57:56Z")

</div>

> [@YvanFournier](#):
>
> I see that ParaView uses its own Conduit C++ wrappers, and calls the Conduit C interface but not the c++ one. And the headers installed with Catalyst only include the C headers. Is this by design, or due to code maturity issues ? I was thinking that using Conduit, I could also easily add support in the future for other libraries (such as Sensei or Ascent) by sharing part of the code, but I guess for this I would need to use the C API ? Nothing urgent here, just trying to future-proof the code.

This is because we want to ensure that what is exposed is ABI compatible. Making the core Conduit C++ ABI compatible is not easy and it will be too hard to ensure that it stays compatible. Instead, we limit everything to the C wrappers and then rewrap those in C++ so that the ABI surface is far more easily controlled.

@utkarsh.ayachit for the first question.

---

<div class="post-metadata">

### Author: ![utkarsh.ayachit](https://discourse.paraview.org/user_avatar/discourse.paraview.org/utkarsh.ayachit/32/39_2.png) [@utkarsh.ayachit](https://discourse.paraview.org/u/utkarsh.ayachit)
#### Post date: [February 17, 2022, 8:19pm UTC](https://discourse.paraview.org/t/catalyst-v2-mpi-example-documentation/8993/3 "2022-02-17T20:19:31Z")

</div>

> [@YvanFournier](#):
>
> I recall reading something about how an MPI communicator info can be passed to Catalyst-2 or a Conduit node, but can’t find it again. I don’t see anything about this grepping the examples.

Communicator can be passed as `catalyst/mpi_comm`, see [ref](https://kitware.github.io/paraview-docs/nightly/cxx/ParaViewCatalystBlueprint.html). Note, you need to pass a fortran handle so use `MPI_Comm_c2f` to generate a fortran handle from a C handle.

---

<div class="post-metadata">

### Author: ![YvanFournier](https://discourse.paraview.org/user_avatar/discourse.paraview.org/yvanfournier/32/2876_2.png) [@YvanFournier](https://discourse.paraview.org/u/YvanFournier)
#### Post date: [February 17, 2022, 8:39pm UTC](https://discourse.paraview.org/t/catalyst-v2-mpi-example-documentation/8993/4 "2022-02-17T20:39:13Z")

</div>

Ok thanks. I had forgotten about the joys of how to ensure binary compatibility between different compiler and library versions…
