incorrect MSMPE 64-bit library installed as part of SDK for Compute Cluster Pack

During the first run of our Windows Compute Cluster Server class last week in Irvine, we discovered that when you install the SDK for Compute Cluster Pack, the wrong version of msmpe.lib is installed.  In particular, the 64-bit msmpe.lib file, which gets installed into C:\Program Files\Microsoft Compute Cluster Pack\Lib\amd64, is actually the 32-bit library.  So when you compile in 64-bit mode and link against the 64-bit msmpe.lib, you get unresolved symbols for the MPI functions:  MPI_Init, MPI_Send, MPI_Recv, MPI_Finalize, etc.  Microsoft has built a correct version of the library, which I've made available here for download.

Some background...  The SDK for Compute Cluster Pack is the MPI programming libraries for Windows Compute Cluster Server.  There are 2 libraries each for 32-bit and 64-bit.  For normal MPI programming, you link against msmpi.lib.  For MPI programming with MPE-based event tracing, you link against msmpe.lib.  The 32-bit msmpe.lib file is fine, the 64-bit msmpe.lib file is incorrect.


Posted Feb 20 2008, 10:06 PM by joe-hummel

Comments

Christian Saborio wrote re: incorrect MSMPE 64-bit library installed as part of SDK for Compute Cluster Pack
on 05-11-2008 4:04 PM
Thanks for the post Joe. I am running the Tracing lab and ran into this problem (I was in your class in the Redmond Airlift a while back) I googled msmpe.lib and your post came up first.

On a later internal build I am using, the library is not being included anymore. With your library, I was able to build the binary.

-Christian
Christian Saborio wrote re: incorrect MSMPE 64-bit library installed as part of SDK for Compute Cluster Pack
on 05-11-2008 4:13 PM
Hmmmm....actually it seems like this is not supported in the current build. I ran the app and got no clog2 file at the end nor the message that is mentioned in the lab. I think you mentioned something about the possibility of this being dropped.
Joe Hummel wrote re: incorrect MSMPE 64-bit library installed as part of SDK for Compute Cluster Pack
on 05-12-2008 8:03 AM
Hi Christian. You are correcxt, support for MPE is currently not available in HPC Server 2008, and it appears it has been dropped from the product --- it is being replaced by Event Tracing for Windows(ETW), which is a better technology in the long run given it's deep integration with windows (and not just MPI).

But in the short run, the problem with ETW is that there's no GUI visualizer for the trace, i.e. no equivalent to Jumpshot for visualizing the trace info. Tools are coming, but as of today, nothing is available. Right now, you can capture an ETW trace via "mpiexec -tf tracefile ...", then covert that trace to OTF (open trace format). But then there's no way to view the OTF file, at least not on Windows (all the tools are UNIX-based).

So if you want to do tracing today, what I recommend is that you download the updated 64-bit MPE library, drop it into the same directory as msmpi.lib, link against it (instead of the msmpi.lib), and run the .exe on your cluster. Then grab the .clog file, download back to your dev machine, and use Jumpshot to convert to .slog and view.

In other words, MPE still works, it just doesn't ship with HPC Server 2008. Cheers!
Christian Saborio wrote re: incorrect MSMPE 64-bit library installed as part of SDK for Compute Cluster Pack
on 05-12-2008 1:58 PM
Thanks so much for the response, I will try your recommendation and see how it goes :)

Add a Comment

(required)  
(optional)
(required)  
Remember Me?