On Feb 15, 2007, at 5:43 PM, Steven A. DuChene wrote:
I am trying to do some simple fortran MPI examples to verify I have
a good installation
of OpenMPI and I have a distributed program that calculates PI. It
seems to compile
and work fine with 1.1.4 but whan I compile and run the same
program with 1.2b3
I get a bunch of the same ORTE errors and then my shell is locked up:
[node001:30268] [0,0,0] ORTE_ERROR_LOG: Data unpack had inadequate
space in file dss/dss_unpack.c at line 90
[node001:30268] [0,0,0] ORTE_ERROR_LOG: Data unpack had inadequate
space in file gpr_replica_cmd_processor.c at line 361
I then do a Ctrl-C and it tells me "mpirun: killing job..." but my
shell never comes back.
We had some problems with this in 1.2b3. I honestly don't remember
if we fixed them by 1.2b4 or not -- could you try a recent 1.2
nightly snapshot? they should be fixed there:
http://www.open-mpi.org/nightly/v1.2/
I do get the following compile time warnings when I build the
simple app with either 1.1.4 or 1.2b3:
mpif90 -c -I/opt/openmpi/1.1.4/include pi.f
In file pi.f:73
call mpi_reduce(times(1), total, 1, mpi_real,
1
In file pi.f:67
call mpi_reduce(piece, pi, 1, mpi_double_precision,
2
Warning (155): Inconsistent types (REAL(4)/REAL(8)) in actual
argument lists at (1) and (2)
mpif90 -o pi pi.o f.o -L /opt/openmpi/1.1.4/lib -lmpi
I'm not a Fortran expert, but I think that this is the f90 compiling
telling you that you have inconsistent types for the first argument
of MPI_REDUCE. This is mainly because there is no equivalent in
Fortran to C's (void*) type -- it's the compiler trying to be helpful
saying, "Hey, I noticed you have inconsistent types in successive
calls to the same function. Did you really mean to do that?"
For MPI apps using choice buffers (like the first argument in
MPI_REDUCE), yes, you did mean to do that -- it's ok. This is not
really an OMPI issue, but rather a Fortran compiler issue. What you
might try is:
- use mpif77 instead (although, depending on your compiler, the
result may be exactly the same)
- poke through your fortran compiler's docs and see if there's a flag
that disables this warning
Hope that helps.
--
Jeff Squyres
Server Virtualization Business Unit
Cisco Systems