This is a classic symptom of getting the wrong wrapper compiler -- e.g., using 
an MPICH wrapper compiler but an Open MPI mpirun (or vice versa).  Make sure 
that your wrapper compiler matches the mpirun that you're using -- e.g., check 
your PATH and LD_LIBRARY_PATH values.


On Feb 25, 2014, at 5:17 AM, Wolfgang Kallies <w.kall...@mytum.de> wrote:

> Hello,
> 
> I am currently implementing MPI in a program I use at work.
> 
> The program uses Ipopt and for testing purposes I reduced it to this:
> 
>        program test
>        use mpi
> ...
> call MPI_INIT(ierrmpi)
>        call MPI_COMM_RANK(MPI_COMM_WORLD, myid, ierrmpi)
>        call MPI_COMM_SIZE(MPI_COMM_WORLD, numprocs, ierrmpi)
> 
>        write(*,*)'old IDs:',myid,'of process',numprocs
>        if(myid.eq.0)then
>        write(*,*)'new IDs:',myid,'of process',numproc
> ...
>        endif
> 555    call MPI_FINALIZE(ierrmpi)
>        end
> 
> Using the MPI-Wrapper Compiler I got a result like this:
> 
> old IDs:           0 of process           1
> new IDs:           0 of process           1
> old IDs:           0 of process           1
> new IDs:           0 of process           1
> old IDs:           0 of process           1
> new IDs:           0 of process           1
> old IDs:           0 of process           1
> new IDs:           0 of process           1
> 
> Without the wrapper compiler, setting the flags manually, I get what should 
> be there:
> old IDs:           3 of process           4
> old IDs:           0 of process           4
> new IDs:           0 of process           4
> old IDs:           2 of process           4
> old IDs:           1 of process           4
> 
> I am using Openmpi 1.5.4 with gfortran 4.4.7.
> 
> My new old makefile, that gave me the odd results looked like this:
> 
> EXECUTABLE = octopus
> NEW_FILES =  variables.o test.o readxypulse.o writexypulse.o singlespin_te.o \
>                rotation.o readoptparam.o OCT2.o dcar2pol.o\
>                OCT2frprmninit.o OCT2frprmn.o OCT2te.o conv2uni.o\
>                OCT2grad.o OCT2linmin.o f1dim.o OCT2mnbrak.o brent.o\
>                crossproduct.o dpol2car.o readparam.o conv3uni.o\
>                ranking.o backrotation.o genpulse.o normalize.o\
>                convert2bruker.o help.o readtable.o addphase.o\
>                integrate.o car2pol.o pol2car.o\
>                Ipopt.o
> FC = mpif90
> FFLAGS = -O3 -fomit-frame-pointer -ffixed-line-length-none
> F77LINKFLAGS =  -Wl,--rpath 
> -Wl,/kain/aksg3/wkallies/project-coop/Ipopt-3.10.3/build/lib
> IPOPTLIBDIR = ${exec_prefix}/lib/
> exec_prefix = ${prefix}
> prefix = /kain/aksg3/wkallies/project-coop/Ipopt-3.10.3/build
> LIBS = -L$(IPOPTLIBDIR) -lipopt -ldl -lcoinmumps -lpthread -lcoinhsl 
> -lcoinlapack -lcoinmetis -lcoinblas -lstdc++ -lm
> 
> all: dummy
> 
> dummy:$(EXECUTABLE)
> 
> toinc=-I`echo 
> /kain/aksg3/wkallies/project-coop/Ipopt-3.10.3/build/include/coin`
> 
> $(EXECUTABLE):$(NEW_FILES)
>        $(FC) $(F77LINKFLAGS) $(FFLAGS) $(toinc) -o  $@ $^ $(LIBS)      
>        rm *.o *.mod
> 
> %.o:%.f
>        $(FC) $(FFLAGS) $(toinc) -c -o $@ $^  
> 
> clean:
>        rm *.o *.mod octopus
> 
> The new one is provided here:
> 
> 
> EXECUTABLE = octopus
> NEW_FILES =  variables.o test.o readxypulse.o writexypulse.o singlespin_te.o \
>                rotation.o readoptparam.o OCT2.o dcar2pol.o\
>                OCT2frprmninit.o OCT2frprmn.o OCT2te.o conv2uni.o\
>                OCT2grad.o OCT2linmin.o f1dim.o OCT2mnbrak.o brent.o\
>                crossproduct.o dpol2car.o readparam.o conv3uni.o\
>                ranking.o backrotation.o genpulse.o normalize.o\
>                convert2bruker.o help.o readtable.o addphase.o\
>                integrate.o car2pol.o pol2car.o\
>                Ipopt.o
> FC = gfortran
> FFLAGS = -O3 -ffixed-line-length-none -I/usr/include/openmpi-x86_64 -pthread 
> -m64 -I/usr/lib64/openmpi/lib -L/usr/lib64/openmpi/lib -lmpi_f90 -lmpi_f77 
> -lmpi -ldl
> F77LINKFLAGS =  -Wl,--rpath 
> -Wl,/kain/aksg3/wkallies/project-coop/Ipopt-3.10.3/build/lib
> IPOPTLIBDIR = ${exec_prefix}/lib/
> exec_prefix = ${prefix}
> prefix = /kain/aksg3/wkallies/project-coop/Ipopt-3.10.3/build
> LIBS = -L$(IPOPTLIBDIR) -lipopt -ldl -lcoinmumps -lpthread -lcoinhsl 
> -lcoinlapack -lcoinmetis -lcoinblas -lstdc++ -lm
> 
> all: dummy
> 
> dummy:$(EXECUTABLE)
> 
> toinc=-I`echo 
> /kain/aksg3/wkallies/project-coop/Ipopt-3.10.3/build/include/coin`
> 
> $(EXECUTABLE):$(NEW_FILES)
>        $(FC) $(F77LINKFLAGS) $(FFLAGS) $(toinc) -o  $@ $^ $(LIBS)      
>        rm *.o *.mod
> 
> %.o:%.f
>        $(FC) $(FFLAGS) $(toinc) -c -o $@ $^  
> 
> clean:
>        rm *.o *.mod octopus
> 
> 
> Is there a reason why I can't use the wrapper compiler?
> 
> 
> 
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to