Dear all,
I am new to MPI so will give you some background to the problem
first....
(1) I want to test and debug an MPI program on a single CPU machine.
From what I have read this should be possible.
(2) I am using the Intel Fortran compiler under Linux (RedHat WS). I
initially installed both the Intel Fortran and and Intel C++ compilers
and then reinstalled the latest version of LAM. This appears to have
worked and simple MPI hello world programs run without problem. I
invoke using the following command:
$ mpirun -np 4 hello_world
Now onto the problem....
I am using the MPI_CART_CREATE routine to create my Cartesian (3D)
co-ordinate system. However, this fails at run time if I specify a
co-ordinate system that requires more than 1 process. The manner of
failure varies:
(a) If for example my co-ordinate system requires 8 (2*2*2) processes
and I invoke with less than 8 processes (mpirun -np 7 my_prog) the
program exits with the following error:
MPI_Cart_create: invalid dimension argument: Invalid argument (rank 0,
MPI_COMM_WORLD)
Rank (0, MPI_COMM_WORLD): Call stack within LAM:
Rank (0, MPI_COMM_WORLD): - MPI_Cart_create()
Rank (0, MPI_COMM_WORLD): - main()
------------------------------------------------------------------------
-----
One of the processes started by mpirun has exited with a nonzero exit
code. This typically indicates that the process finished in error.
If your process did not finish in error, be sure to include a "return
0" or "exit(0)" in your C code before exiting the application.
PID 5039 failed on node n0 (127.0.0.1) with exit status 22.
------------------------------------------------------------------------
-----
(b) If I take the same example and invoke with the correct number of
processes (mpirun -np 8 my_prog) then the program 'hangs' at the point
where it attempts to create the Cartesian co-ordinate system.
(c) If I specify the co-ordinate system requires only a single process
and run with a single process there appears to be no problem (although
it defeats the point)
I don't believe that this is a problem with my use of MPI_CART_CREAT
but more likely something to do with my use of MPI on the single
processor. I would be more grateful if somebody could give me a few
pointers!
Thanks in advance!
Steve
|