Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

mixing TBB with MPI

Anton_Pegushin
New Contributor II
1,097 Views

Hello, it's now been a couple of times that I heard people saying that they heard of cases when TBB was used in hybrid distributed HPC applications, but they did not know the applications names. To me this is somewhat surprising (but like, a good surprise), because MPI applications are usually written in plain C or Fortran and if there is a computational loop to be parallelized using threads, programmers usually stick with OpenMP. However I can imagine that there are MPI applications written in C++ (otherwise why would there be C++ bindings in every MPI implementation for such a long time if no one used them) and they use C++ threading library, like TBB for intra-node communication.

So I was wondering if there is anyone here actually from HPC community or anyone heard of TBB being used as an intra-node threading framework for a real-world multi-process MPI application. I'd be so glad to know the names of these applications...

Thanks!

0 Kudos
4 Replies
AJ13
New Contributor I
1,097 Views
I've been working on such a thing for months. I work with the Ontario Cancer Institute, and they have a 1300 core cluster. Although I'm not using MPI, I'm using RDMA instead.
0 Kudos
robert_jay_gould
Beginner
1,097 Views
Not sure if this helps sort things out, but there is a boost::mpi, its a nice modern C++ wrapper for the C-based MPI API. I had considered trying out boost::mpi + tbb at one point in time, but then I remembered mpi is designed for finite work, not for ongoing "infinite" work (my requirements), so I didn't go further down this route. But I7m sure there are people in HPC using both libraries together.
0 Kudos
robert_jay_gould
Beginner
1,097 Views
My friend google gave me these results with google::mpi and tbb:

http://mlforge.cecs.ucf.edu/projects/pppnn/

But not much else


0 Kudos
Anton_Pegushin
New Contributor II
1,097 Views
My friend google gave me these results with google::mpi and tbb:

http://mlforge.cecs.ucf.edu/projects/pppnn/

But not much else


Robert, thanks, thats an interesting finding, I'll take a look at it. My googling for "tbb and mpi" returned no reasonable results, so I decided to ask on this forum. Probably searching for projects that use boost::mpi and then searching if those use TBB is a good idea, I know those at least will be C++ applications. I'll try that too.

0 Kudos
Reply