# MSMPI vs Intel MPI

**URL:** https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549
**Category:** Support
**Created:** [September 3, 2021, 9:14pm UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549 "2021-09-03T21:14:52Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![adamgranthendry](https://discourse.vtk.org/user_avatar/discourse.vtk.org/adamgranthendry/32/3853_2.png) [@adamgranthendry](https://discourse.vtk.org/u/adamgranthendry)
#### Post date: [September 3, 2021, 9:14pm UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549/1 "2021-09-03T21:14:52Z")

</div>

What is the difference between MSMPI and Intel MPI? Can I use Intel MPI with VTK?

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [September 4, 2021, 1:05pm UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549/2 "2021-09-04T13:05:49Z")

</div>

MSMPI is Microsoft MPI. AFAIK, it’s the only “supported” MPI on Windows, but I suppose Intel may have their MPI there as well. It’s certainly the only implementation we test on Windows.

---

<div class="post-metadata">

### Author: ![adamgranthendry](https://discourse.vtk.org/user_avatar/discourse.vtk.org/adamgranthendry/32/3853_2.png) [@adamgranthendry](https://discourse.vtk.org/u/adamgranthendry)
#### Post date: [September 4, 2021, 4:39pm UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549/3 "2021-09-04T16:39:21Z")

</div>

@ben.boeckel Thanks for that. On the same vein, are MPI and TBB two variants of the same thing, or are they different programs altogether?

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [September 4, 2021, 4:56pm UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549/4 "2021-09-04T16:56:34Z")

</div>

MPI and TBB are very different libraries. MPI is for distributing work across multiple processes (usually an HPC thing) while TBB is for constructing threaded algorithms within a single process.

---

<div class="post-metadata">

### Author: ![adamgranthendry](https://discourse.vtk.org/user_avatar/discourse.vtk.org/adamgranthendry/32/3853_2.png) [@adamgranthendry](https://discourse.vtk.org/u/adamgranthendry)
#### Post date: [September 4, 2021, 5:12pm UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549/5 "2021-09-04T17:12:08Z")

</div>

@ben.boeckel Very intersting, thank you. I see. So…I’ve been following tutorials from the `cscsch` group on YouTube (“Centro Svizzero di Calcolo Scientifico”…thankfully it’s in English):

[ParaView:VTK Advanced Visualization Part 1](https://www.youtube.com/watch?v=j_wKCgXxdg4&list=PL1tk5lGm7zvRMLTnsXsF34zqebaUosSqQ&index=1)

This was where I first learned about turning on MPI support in Paraview to increase the number of processors used.

 ![image](https://discourse.vtk.org/uploads/default/original/2X/9/9267d7bc07b516fb8f922aaac1a5a12581673a7d.jpeg)

In my work, I have many dense micro-CT DICOM stacks and I have a desktop machine with 2 CPUs, 24 cores each. If I enable auto MPI and set the limit to 47 cores (leave one for the main process), opening a DICOM stack is actually slower than if I have auto MPI off.

Am I doing something wrong? I also know that there is something like a `ParallelDICOM` reader for `VTK`, but I’m not sure that ParaView is using that. I’ve just installed and have been using the prebuilt binary on Windows from ParaView here:

[ParaView Download](https://www.paraview.org/download/)

 ![image](https://discourse.vtk.org/uploads/default/original/2X/3/380036e39339b8b57947b0a21c1ae2967d28a89d.png)

I also do have the Windows MSMPI SDK installed. Turning `Enable Auto MPI` on definitely uses all my cores, but I’m confused why loading is slower for a DICOM stack than if I have it turned off.

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [September 4, 2021, 7:29pm UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549/6 "2021-09-04T19:29:07Z")

</div>

It’s probably slower if the reader isn’t MPI-aware and every core is trying to read the whole file instead of the reader reading it in completely on one rank and sending each rank the relevant data. MPI-awareness is per-filter and isn’t “magic” you can just enable to get free speedups. I’m not sure of how well the DICOM reader supports MPI.

Or even I am not fully understanding how VTK supports MPI in readers and filters 🙂 .

@utkarshayachit or @dgobbi?

---

<div class="post-metadata">

### Author: ![adamgranthendry](https://discourse.vtk.org/user_avatar/discourse.vtk.org/adamgranthendry/32/3853_2.png) [@adamgranthendry](https://discourse.vtk.org/u/adamgranthendry)
#### Post date: [September 4, 2021, 7:33pm UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549/7 "2021-09-04T19:33:52Z")

</div>

@ben.boeckel Agreed. I’m sure it is more complicated and simply enabling MPI is not enough. Any guidance on how a single user could best leverage the power of his or her machine would be appreciated. Perhaps I’m already at my best without MPI, but I’m unsure.

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.vtk.org/u/ben.boeckel)
#### Post date: [September 5, 2021, 2:56am UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549/8 "2021-09-05T02:56:30Z")

</div>

It’s hard to say without knowing what you want to do. Reading in the file is one thing, but the set of filters you may be interested in can change things around considerably as well. Alas, I’m not well versed in plugging VTK filters together to get a desired effect, nevermind doing it with the _right_ filters for a given hardware configuration. I think posing the question as a “I tried this set of filters together for effects X, Y, Z. Can I do better in performance/approach/etc.?” would elicit better responses to your core issues (and get people who know VTK filters rather than VTK build stuff to respond 🙂 ).

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.vtk.org/user_avatar/discourse.vtk.org/mwestphal/32/19_2.png) [@mwestphal](https://discourse.vtk.org/u/mwestphal)
#### Post date: [September 6, 2021, 6:20am UTC](https://discourse.vtk.org/t/msmpi-vs-intel-mpi/6549/9 "2021-09-06T06:20:07Z")

</div>

> [@adamgranthendry](#):
>
> `Enable Auto MPI`

Once again, do not use AutoMPI.
