Microsoft MPI doesn't run
Asked Answered
D

1

6

I'm trying out Microsoft's implementation of MPI. I installed the CCP sdk from here:

http://www.microsoft.com/en-us/download/details.aspx?id=239

And then in my project settings I added the include folder, the lib folder and mentioned msmpi.lib.

With the remaining settings as-is, I build the program and then in the command prompt I proceed to run the program, but nothing happens after I start it up.

Here's the code (It's supposed to display the id numbers for each thread):

#include "stdafx.h"
#include "mpi.h"
#include <stdio.h>

//Commands in cmd prompt
//cd "C:\Program Files\Microsoft Compute Cluster Pack\Bin"
//mpiexec.exe -n 2 "C:\Users\MyNameHere\Documents\Visual Studio 2012\Projects\tspMpi\Debug\tspMpi.exe"

int main(int argc, char* argv[]) 
{
 int  nTasks = 0, rank = 0; 

 MPI_Init(&argc,&argv); 
 MPI_Comm_size(MPI_COMM_WORLD,&nTasks);
 MPI_Comm_rank(MPI_COMM_WORLD,&rank);

 printf ("Number of threads = %d, My rank = %d\n", nTasks, rank);


  return 0;
 MPI_Finalize();
}

As soon as I run mpiexec.exe (the commands are in the comments) the program just does nothing, until I press Ctrl-C. Does anyone know what I'm doing wrong? There are no errors when I build the program, and if I run it from visual studio, it acts as if there was only one process started up.

Dwyer answered 21/10, 2012 at 19:17 Comment(5)
Can you run the samples provided with the SDK?Mccluskey
I didn't find any documentation/samples with the SDK in the link I've shown.Dwyer
MPI_Finalize(); should be before the return statementMasseter
I managed to solve the problem myself (I think!) From the documentation here (msdn.microsoft.com/en-us/library/cc136762(v=VS.85).aspx) I got that there is another product HPC that I was actually supposed to use. I decided to try out this HPC product instead, and when I did the same steps everything seems to work fine now. What doesn't work, is when I use a getchar statement, I can't see the output properly. Any idea why?Dwyer
Hi veda, thanks for pointing that out too. I made that correction as well.Dwyer
E
7

I didn't find SDK useful at all, here are my steps to enable MPI cluster debugging in VS 2010 (VC10):

step 1. Install MS-MPI: http://www.microsoft.com/en-us/download/details.aspx?id=36045 (x64 only), this creates

C:\Program Files\Microsoft HPC Pack 2012\Inc
C:\Program Files\Microsoft HPC Pack 2012\Lib\amd64
C:\Program Files\Microsoft HPC Pack 2012\Lib\i386

step 2. Download example: http://msdn.microsoft.com/en-us/library/ee441265(v=vs.100).aspx#BKMK_debugMany

step 3. Debugging setting: Right click on the Startup Project > Properties > Debugging

Debugger to launch, change "Local Windows Debugger" to "MPI Cluster Debugger"
Run Environment, change "localhost/1" to "localhost/4"

Right click on Visudal Studio Toolbar area to check "Debug Location", now you can switch Process and its Threads in the Debug Location toolbar, have fun!

Emmerie answered 20/3, 2013 at 0:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.