[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

mpi not working



hi,
 
i install PETSc using the following command:
 
./config/configure.py --with-vendor-compilers=intel --with-gnu-compilers=0 --with-blas-lapack-dir=/lsftmp/g0306332/inter/mkl/lib/32 --with-mpi-dir=/opt/mpich/intel/ --with-x=0 --with-shared
 
then i got:
 
Compilers:                                                                                                                                                                       
  C Compiler:         /opt/mpich/intel/bin/mpicc  -fPIC -g
  Fortran Compiler:   /opt/mpich/intel/bin/mpif90  -I. -fPIC -g -w90 -w 
Linkers:
  Shared linker:   /opt/mpich/intel/bin/mpicc  -shared  -fPIC -g
  Dynamic linker:   /opt/mpich/intel/bin/mpicc  -shared  -fPIC -g
PETSc:
  PETSC_ARCH: linux-mpif90
  PETSC_DIR: /nas/lsftmp/g0306332/petsc-2.3.2-p8
  **
  ** Now build and test the libraries with "make all test"
  **
  Clanguage: C
  Scalar type:real
MPI:
  Includes: ['/opt/mpich/intel/include']
  PETSc shared libraries: enabled
  PETSc dynamic libraries: disabled
BLAS/LAPACK: -Wl,-rpath,/lsftmp/g0306332/inter/mkl/lib/32 -L/lsftmp/g0306332/inter/mkl/lib/32 -lmkl_lapack -lmkl_ia32 -lguide
 
i ran "make all test" and everything seems fine
 
/opt/mpich/intel/bin/mpicc -c -fPIC -g -I/nas/lsftmp/g0306332/petsc-2.3.2-p8 -I/nas/lsftmp/g0306332/petsc-2.3.2-p8/bmake/linux-mpif90 -I/nas/lsftmp/g0306332/petsc-2.3.2-p8/include -I/opt/mpich/intel/include -D__SDIR__="src/snes/examples/tutorials/" ex19.c
/opt/mpich/intel/bin/mpicc -fPIC -g  -o ex19  ex19.o -Wl,-rpath,/nas/lsftmp/g0306332/petsc-2.3.2-p8/lib/linux-mpif90 -L/nas/lsftmp/g0306332/petsc-2.3.2-p8/lib/linux-mpif90 -lpetscsnes -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetsc    -Wl,-rpath,/lsftmp/g0306332/inter/mkl/lib/32 -L/lsftmp/g0306332/inter/mkl/lib/32 -lmkl_lapack -lmkl_ia32 -lguide -lPEPCF90 -Wl,-rpath,/opt/intel/compiler70/ia32/lib -Wl,-rpath,/opt/mpich/intel/lib -L/opt/mpich/intel/lib -Wl,-rpath,-rpath -Wl,-rpath,-ldl -L-ldl -lmpich -Wl,-rpath,/opt/intel/compiler70/ia32/lib -Wl,-rpath,/opt/intel/compiler70/ia32/lib -L/opt/intel/compiler70/ia32/lib -Wl,-rpath,/usr/lib -Wl,-rpath,/usr/lib -L/usr/lib -limf -lirc -lcprts -lcxa -lunwind -ldl -lmpichf90 -lPEPCF90 -Wl,-rpath,/opt/intel/compiler70/ia32/lib -L/opt/intel/compiler70/ia32/lib -Wl,-rpath,/usr/lib -L/usr/lib -lintrins -lIEPCF90 -lF90 -lm  -Wl,-rpath,\ -Wl,-rpath,\ -L\ -ldl -lmpich -Wl,-rpath,/opt/intel/compiler70/ia32/lib -L/opt/intel/compiler70/ia32/lib -Wl,-rpath,/usr/lib -L/usr/lib -limf -lirc -lcprts -lcxa -lunwind -ldl
/bin/rm -f ex19.o
C/C++ example src/snes/examples/tutorials/ex19 run successfully with 1 MPI process
C/C++ example src/snes/examples/tutorials/ex19 run successfully with 2 MPI processes
Fortran example src/snes/examples/tutorials/ex5f run successfully with 1 MPI process
Completed test examples
 
I then tried to run my own parallel code. It's a simple code which prints the rank of each processor.
 
If I compile the code using just mpif90 test.F(using just mpif.h)
 
I get 0,1,2,3 (4 processors).
 
however, if i change the code to use petsc.h etc  ie.
 

        program ns2d_c

        implicit none

               
#include "include/finclude/petsc.h"
#include "include/finclude/petscvec.h"
#include "include/finclude/petscmat.h"
#include "include/finclude/petscksp.h"
#include "include/finclude/petscpc.h"
#include "include/finclude/petscmat.h90"

        integer,parameter :: size_x=8,size_y=4

        integer :: ierr,Istart_p,Iend_p,Ntot,Istart_m,Iend_m,k

 PetscMPIInt     nprocs,rank


 

call PetscInitialize(PETSC_NULL_CHARACTER,ierr)

        call MPI_Comm_rank(PETSC_COMM_WORLD,rank,ierr)

        call MPI_Comm_size(PETSC_COMM_WORLD,nprocs,ierr)

end program ns2d_c

 

i then rename the filename to ex2f.F and use "make ex2f"

the result I get is something like 0,0,0,0.

 

Why is this so?

Thank you.