Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Several questions on Parallel Programming (PP)

sariju
Beginner
300 Views

Hello,

I'm a newcomer in PP. I have to do a homework about Intel TBB and, after looking a lot of information, I still have the following doubts:

1. Which is the application field for standards MPI and Threads? Maybe MPI is more suitable for big systems (supercomputers) and Threads for little systems?? When must we use one or another?

2. Why should I use Intel TBB instead others threading implementations like Boost C++, Zthread, Open Thread, etc..etc.. What advantages offers Intel TBB over the others?

Thank you a lot in advance for your support (by the way: a great site this!)

Sariju (Spain)

0 Kudos
1 Solution
TimP
Honored Contributor III
300 Views
Quoting sariju

Hello,

I'm a newcomer in PP. I have to do a homework about Intel TBB and, after looking a lot of information, I still have the following doubts:

1. Which is the application field for standards MPI and Threads? Maybe MPI is more suitable for big systems (supercomputers) and Threads for little systems?? When must we use one or another?

2. Why should I use Intel TBB instead others threading implementations like Boost C++, Zthread, Open Thread, etc..etc.. What advantages offers Intel TBB over the others?

Thank you a lot in advance for your support (by the way: a great site this!)

Sariju (Spain)

For the questions about TBB, you should check the TBB forum, as well as the publicity material. There is interest in methods for use of TBB together with other parallelism models, but fairly little practical support so far. Ct is an example of a more ambitious C++ namespace implementation which hides TBB from the programmer.

There is certainly a correlation between size of system (numbers of processors) and use of MPI. There exist very large systems, such as SGI UV, which are designed to simulate shared memory and support programming models other than MPI across a very large number of CPUs, yet MPI systems dominate in that size range, due to the cost and performance advantages. Use of MPI together with threading models local to each node (primarily OpenMP) is growing rapidly, as the economic advantages are sufficient to justify the programming effort.

Certain applications offer a choice of OpenMP or MPI parallelism models, and combinations. Depending on the application, the MPI may out-perform OpenMP on systems as small as dual quad-core CPUs, while the OpenMP may not scale beyond dual 8-core CPUs, even on a system which supports OpenMP on a larger core count.

View solution in original post

0 Kudos
2 Replies
TimP
Honored Contributor III
301 Views
Quoting sariju

Hello,

I'm a newcomer in PP. I have to do a homework about Intel TBB and, after looking a lot of information, I still have the following doubts:

1. Which is the application field for standards MPI and Threads? Maybe MPI is more suitable for big systems (supercomputers) and Threads for little systems?? When must we use one or another?

2. Why should I use Intel TBB instead others threading implementations like Boost C++, Zthread, Open Thread, etc..etc.. What advantages offers Intel TBB over the others?

Thank you a lot in advance for your support (by the way: a great site this!)

Sariju (Spain)

For the questions about TBB, you should check the TBB forum, as well as the publicity material. There is interest in methods for use of TBB together with other parallelism models, but fairly little practical support so far. Ct is an example of a more ambitious C++ namespace implementation which hides TBB from the programmer.

There is certainly a correlation between size of system (numbers of processors) and use of MPI. There exist very large systems, such as SGI UV, which are designed to simulate shared memory and support programming models other than MPI across a very large number of CPUs, yet MPI systems dominate in that size range, due to the cost and performance advantages. Use of MPI together with threading models local to each node (primarily OpenMP) is growing rapidly, as the economic advantages are sufficient to justify the programming effort.

Certain applications offer a choice of OpenMP or MPI parallelism models, and combinations. Depending on the application, the MPI may out-perform OpenMP on systems as small as dual quad-core CPUs, while the OpenMP may not scale beyond dual 8-core CPUs, even on a system which supports OpenMP on a larger core count.

0 Kudos
sariju
Beginner
300 Views
Thanks, tim. Very nice.
0 Kudos
Reply