- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Collegues, I've got a question: Is there basically any difference between running an MPI program on Intel Xeon and Core i7 processors?
I heard that since an MPI program is running on Intel Xeon processor, then it's executed in a different way. For example, if you run an MPI program on Intel Xeon processor, then all processes has been launched by mpiexec utility are executed in the order of their ranks e.g. 0,1,2,3,4,5,6,7,... and if you run the program on Intel Core i7 processor, then those processes executed in arbitrary order.
Waiting for your reply.
Cheers, Arthur.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Arthur,
I'd like to 2nd Kittur's comments. There are no difference in how we treat initial process placement on any Intel architecture. We generally try to start some number of ranks simultaneously so the first machine we connect to is the first one where we place the first set of ranks.
If you really want to be very specific about where the ranks are located, you can use the -host or -machinefile options for Intel MPI.
If you have any questions about those, let me know.
~Gergana
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Arthur,
I am not aware of any difference in the launching of the processes per-se with reference to the processor. I'll double check that with the MPI team as well and let you know.
_Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, Kittur. I'll be waiting for your reply.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Arthur,
I discussed with the MPI team and they said generally it should not make a difference but sometimes their could be a different scheme (internal) depending on the context. But, the user can use some runtime options.
Also, for MPI related questions it's best for you to post your questions in the Intel Clusters and HPC Technology forum where you'll get those issues resolved by support folks specialized in MPI.
So, I"ll transfer your issue to that forum and someone will respond to you accordingly and I'll let them know as well.
_Kittur
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Arthur,
I'd like to 2nd Kittur's comments. There are no difference in how we treat initial process placement on any Intel architecture. We generally try to start some number of ranks simultaneously so the first machine we connect to is the first one where we place the first set of ranks.
If you really want to be very specific about where the ranks are located, you can use the -host or -machinefile options for Intel MPI.
If you have any questions about those, let me know.
~Gergana
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Collegues for your replies.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Obviously that the ordered rank execution is actually a process synchronization problem which can persist regardless of what CPU you're running your program on.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
And one more question, which processor Intel Core i7 or Intel Xeon is more efficient to execute MPI programs ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Of course, Intel Xeon is the most preferable server CPUs to execute MPI and OpenMP programs.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Intel Xeon processor has over 40MB of last level cache that allows to optimize the performance of any MPI or OpenMP program
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The most of today's computational clusters are built based on using Intel Xeon processors.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You can statically assign ranks by using mpiexec runtime options such as mpiexec -binding -prepend-rank -ordered-output -np 4 ./a.out
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
mpiexec -binding -prepend-rank -ordered-output -np 4 ./a.out works regardless of what particular CPU you execute your MPI program on.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Intel Xeon processors are used solely to optimize performance of computational cluster.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
And it's true that there's actually no difference what particular processor to use to execute a certain mpi process.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
A typically large amount of last level cache provides the best performance compared to Intel Core i7 processors.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
By default, the processes should be executed in an arbitrary order, there's no need to map them to specific processors.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page