I have two questions about Intel MPI on Micorsoft Windows 7 64bit.
The first one concerning about Intel MPI 5.0.1.037. If I execute
C:\Program Files (x86)\Intel\MPI-RT\5.0.1.037\em64t\bin\smpd -version
I get "3.1". If I execute
C:\Program Files (x86)\Intel\MPI-RT\4.1.3.045\em64t\bin\smpd -version
I get "4.1.3"
This is a problem for us, because our product is compiled with Intel MPI 4.1.3.045 and needs smpd version 4.1.3.
After updating to runtime Intel MPI 5.0.1.037 we get an smpd mismatch error! The same issue is with the hydra service.
Why is the C:\Program Files (x86)\Intel\MPI-RT\5.0.1.037\em64t\bin\smpd version 3.1 and not 5.0.1?
The second question is: does Intel MPI 4.1.3.045 / 5.0.1.037 support Windows 8?
Thank you in advance
Thanks for getting in touch.
I was able to reproduce this issue on my local install and have submitted a bug to our developers. Just as a heads-up, smpd is being deprecated so I would recommend you start switching over to Hydra. In my bug report, I noted that Hydra returns 3.1 as well.
For your last question, Intel MPI 5.0.x does support Windows 8 (check the release notes for latest supported OSes). Intel MPI 4.1.3.045 does not officially support Windows 8.
I'll get back to you once I hear back from our developers.
Thank you very much for your quick answer.
Another question: is there an command line option to the MPI 5.0.1.037 runtime installer to only install the hydra service but let the smpd service (MPI 4.1.3.045 smpd version runs already on the system) be untouched?
One more question about MPI 4.1.3.045 for future MPI releases: is the MPI 4.1.3.045 runtime installer able to recognize which smpd version is running and dependent on this information installing the smpd service only if MPI 4.1.3.045 is newer than an already running smpd, but not when there is a newer version of smpd service running?
To be more precise: In an old product we use smpd version 3.1, in our current product we use smpd version 4.1.3, and taking into account the windows 8 support our next product will use smpd version 5.0.1 (if this will be the correct number for the current MPI release). So if a customer have smpd 3.1 running and installs smpd 4.1.3 everything is fine because of the downward compatibility of smpd versions. But what if a customer has smpd version 5.0.1 running and then installs 4.1.3 runtime? I would expect that after installation smpd version 4.1.3 is the current one. Is this right?
Again many thanks in advance and best regards
Both of your questions could be answered by simply not enabling the new smpd service when you install the latest Intel MPI version. By default, the installer will start the smpd or hydra service of the version you're currently installing. You can disable that checkbox which will leave the existing smpd or hydra service on the machine untouched. It's really about what version of the service is running rather than what's installed.
In your case, it might be best to just disable that check with the Intel MPI Library. You can do so by disabling the I_MPI_SMPD_VERSION_CHECK env variable. This article on Handling different SMPD versions on the same machine does a great job of describing some of those details.
Let me know if this helps.
Our application is a mpi process which has (only as root) another two threads for some other stuff (they do NOT do anything with mpi). With Intel MPI 4.1.3.045 MPI_Finalize shut down the process without explicitly (in the code) end the two threads. But with Intel MPI 5.0.1.037 we got stuck in WaitForSingleObject and the two threads are still alive letting the process live. So MPI_Finalize has different behavior. Furthermore if we want to use the multi threaded imp_mt.dll we got the message "Entry point MPIFCMb9 not found" at runtime. But dependency walker shows this symbol in impi_mt.dll.