MSMPI vs Intel MPI

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

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.

@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?

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.

@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

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

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

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.

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 :slight_smile: .

@utkarshayachit or @dgobbi?

1 Like

@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.

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 :slight_smile: ).

Once again, do not use AutoMPI.