# Building ParaView with int64 MPI enabled

**URL:** https://discourse.paraview.org/t/building-paraview-with-int64-mpi-enabled/15561
**Category:** In Situ Support
**Created:** [October 15, 2024, 5:21pm UTC](https://discourse.paraview.org/t/building-paraview-with-int64-mpi-enabled/15561 "2024-10-15T17:21:35Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Alexandre\_Minot](https://discourse.paraview.org/user_avatar/discourse.paraview.org/alexandre_minot/32/7132_2.png) [@Alexandre\_Minot](https://discourse.paraview.org/u/Alexandre_Minot)
#### Post date: [October 15, 2024, 5:21pm UTC](https://discourse.paraview.org/t/building-paraview-with-int64-mpi-enabled/15561/1 "2024-10-15T17:21:35Z")

</div>

Hello,

We got the following error saving a slice of a large case with Catalyst. The error seems to be coming from the CGNS writer, which would have been called by the CGNS Extractor.

```auto
vtkMPICommunicator.cxx:205 WARN| This operation not yet supported for more than 2147483647 objects

```

Note that 2147483647 is int max.

I see that we have a `#define VTKMPI_64BIT_LENGTH`. Would that allow us to pass longer messages? I’m surprised that it is a #define and not a cmake option. Is the use of this feature recommended?

Thanks

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.paraview.org/user_avatar/discourse.paraview.org/cory.quammen/32/11193_2.png) [@cory.quammen](https://discourse.paraview.org/u/cory.quammen)
#### Post date: [October 15, 2024, 5:38pm UTC](https://discourse.paraview.org/t/building-paraview-with-int64-mpi-enabled/15561/2 "2024-10-15T17:38:35Z")

</div>

Alex,

Note that `#define VTKMPI_64BIT_LENGTH` is defined only when `MPI_VERSION >= 4` in `vtkMPICommunicator.cxx`.

The message size limit is a limitation with MPI implementations that conform to an MPI version **less than** 4.0. Implementations of MPI 4.0 or above support large messages. Are you building against such an MPI?

If not, updating to MPI 4.0 or higher should fix this issue automatically, as the large message versions of calls should be used instead.

Thanks,  
Cory

---

<div class="post-metadata">

### Author: ![Alexandre\_Minot](https://discourse.paraview.org/user_avatar/discourse.paraview.org/alexandre_minot/32/7132_2.png) [@Alexandre\_Minot](https://discourse.paraview.org/u/Alexandre_Minot)
#### Post date: [October 15, 2024, 5:43pm UTC](https://discourse.paraview.org/t/building-paraview-with-int64-mpi-enabled/15561/3 "2024-10-15T17:43:46Z")

</div>

Thanks for the info, we’ll look into that.

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.paraview.org/user_avatar/discourse.paraview.org/cory.quammen/32/11193_2.png) [@cory.quammen](https://discourse.paraview.org/u/cory.quammen)
#### Post date: [October 15, 2024, 6:38pm UTC](https://discourse.paraview.org/t/building-paraview-with-int64-mpi-enabled/15561/4 "2024-10-15T18:38:41Z")

</div>

If you can’t update to MPI 4.0, another approach is to break the failing communication call into several calls, each of which transfers less than the maximum number of items that can be communicated in a single call. This would need to be done in the reader and can get complicated depending on the communication pattern, but it is possible at least.

---

<div class="post-metadata">

### Author: ![Alexandre\_Minot](https://discourse.paraview.org/user_avatar/discourse.paraview.org/alexandre_minot/32/7132_2.png) [@Alexandre\_Minot](https://discourse.paraview.org/u/Alexandre_Minot)
#### Post date: [October 15, 2024, 9:42pm UTC](https://discourse.paraview.org/t/building-paraview-with-int64-mpi-enabled/15561/5 "2024-10-15T21:42:43Z")

</div>

Yep, I thought about that, though if we were to modify the CGNS writer, I think we would switch to parallel CGNS write calls instead of serializing the output. I really don’t expect to run into that issue often. The idea of in situ is to create small datasets from large ones, so there are plenty of work arounds.
