On Mar 9, 2006, at 12:18 PM, Pierre Valiron wrote:
- Configure and compile are okay
Good to hear.
- However compiling the mpi.f90 takes over 35 *minutes* with -O1.
This seems a bit excessive... I tried removing any -O option and
things are just as slow. Is this behaviour related to open-mpi or
to some wrong features of the Studio11 compiler ?
As Jeff said in a previous e-mail, some of this is, unfortunately,
unavoidable. However, I think I found an issue that might greatly
speedup this compile time. More information coming shortly.
- 'mpirun --help' non longer crashes.
One bug down, more to go ;).
- standard output seems messy:
a) 'mpirun -np 4 pwd' returns randomly 1 or two lines, never 4. The
same behaviour occurs if the output is redirected to a file.
b) When running some simple "demo" fortran code, the standard
output is buffered within open-mpi and all results are issued at
the end. No intermediates are showed.
I found this problem, and it should be fixed with the nightly
snaphots of the trunk from this weekend. I've requested the fixes be
moved to the 1.0 release branch, but our release managers are a bit
busy so it hasn't happened yet.
- running a slightly more elaborate program fails:
a) compile behaves differently with mpif77 and mpif90.
While mpif90 compiles and builds "silently", mpif77 is talkative:
valiron@icare ~/BENCHES > mpif77 -xtarget=opteron -xarch=amd64 -o
all all.f
NOTICE: Invoking /opt/Studio11/SUNWspro/bin/f90 -f77 -ftrap=%none -
I/users/valiron/lib/openmpi-1.1a1r9224/include -xtarget=opteron -
xarch=amd64 -o all all.f -L/users/valiron/lib/openmpi-1.1a1r9224/
lib -lmpi -lorte -lopal -lsocket -lnsl -lrt -lm -lthread -ldl
all.f:
rw_sched:
MAIN all:
lam_alltoall:
my_alltoall1:
my_alltoall2:
my_alltoall3:
my_alltoall4:
check_buf:
alltoall_sched_ori:
alltoall_sched_new:
This is not an Open MPI problem, but how the Solaris compilers work
on that machine. If you compile a non-MPI Fortran program with the
f77 and f90 compilers on icare, you will see the same behavior. I'm
not sure why the compilers behave like that, but there isn't much I
can do to fix it.
b) whatever the code was compiled with mpif77 or mpif90, execution
fails:
valiron@icare ~/BENCHES > mpirun -np 2 all
Signal:11 info.si_errno:0(Error 0) si_code:1(SEGV_MAPERR)
Failing at addr:40
*** End of error message ***
Signal:11 info.si_errno:0(Error 0) si_code:1(SEGV_MAPERR)
Failing at addr:40
*** End of error message ***
Does this code work with other MPI implementations? I'm still trying
to track the problem down, but it looks like an invalid request is
cropping up in a call to MPI_Wait and that is causing the
segmentation fault. There may be another issue, but I need to do a
bit more testing to be sure.
Brian
--
Brian Barrett
Open MPI developer
http://www.open-mpi.org/