Ask a questionAsk a question
 

QuestionAPI to determine MSMPI version

  • Thursday, July 23, 2009 7:49 PMChristopherMorley Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Is there a way to determine from within my app what version of the msmpi dll was loaded (CCS/2003 or HPC server/2008) ?
    MPI_Get_Version appears to be for querying the version of the MPI standard that is supported (2.0 for both ?).

    I can't find the MS MPI API on MSDN, and browsing mpi.h didn't reveal anything to me.

    Thanks,
    Chris

All Replies

  • Friday, July 24, 2009 8:30 PMChristopherMorley Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    In a semi-related vein (debugging msmpi issues), I have found that if I attempt to start using the mpiexec from Compute Cluster Pack but load the msmpi.dll from HPC Pack 2008 SDK, the program hangs in MPI_Init. Using the mpiexec from HPC Pack 2008 SDK works of course.

    Is there some recommended way to locate the HPC server mpiexec.exe ?






  • Monday, July 27, 2009 1:43 PMLioMSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    There isn't really an API to check for MSMPI version. there is MPICH2_VERSION which is a string, but it only indicates the MSMPI/MPICH2 version you compiled against. I guess the best way is the query the msmpi.dll file version. 1.x is CCS 2.x is HPC.

    hope this helps,
    .Erez
  • Monday, July 27, 2009 1:48 PMLioMSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    The protocol between the smpd and the msmmpi.dll during startup (MPI_Init) has changed between version 1 (CCS) and version 2 (HPC) which is why it would hang. You should really not mixed these versions together. However, it is perfectly alright to run an application compiled with CCS SDK on the HPC version.

    The location of mpiexec should be on the path after installing a compute nodes. make sure not to mix CCS sdk with HPC installation; that would really mix things up.

    thanks,
    .Erez

  • Tuesday, July 28, 2009 1:42 PMChristopherMorley Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Thanks for the confirmation.

    > The location of mpiexec should be on the path after installing

    That is not really workable, especially with different apps and different MPI distributions being installed on the machines. I have 2 current client/benchmarking sites that have CCS, HPC, and MPICH2 all installed, and I have to figure out how to get my app to start.

    > make sure not to mix CCS sdk with HPC installation; that would really mix things up.

    Unfortunately, I get very little say in how customers administer their machines; I just have to make our software work no matter how they mess things up.


    Are ISVs allowed to redist mpiexec & msmpi.dll with their apps so we can rely on them being in known locations ?
     
  • Thursday, July 30, 2009 5:20 PMLioMSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Are ISVs allowed to redist mpiexec & msmpi.dll with their apps so we can rely on them being in known locations ?
     

    not just yet, but Microsoft is going to enabled that soon.