gerard wrote: > hello all, > i did tests on solaris 10 amd64: > nemo-henry% mpif90 -o anneau anneau.f90 -L /opt/SUNWhpc/HPC8.2/sun/lib > -lscalapack -lblacs_openmpi -xlic_lib=sunperf > Works fine > > but, in C: > nemo-henry% mpicc -o anneau anneau.c -L /opt/SUNWhpc/HPC8.2/sun/lib > -lscalapack -lblacs_openmpi -xlic_lib=sunperf > ld: warning: symbol `mpi_fortran_argv_null_' has differing sizes: > (file /opt/sunstudio12.1/lib/libblacs_openmpi.so value=0x1; > file /opt/SUNWhpc/HPC8.2/sun/lib/libmpi.so value=0x4); > /opt/sunstudio12.1/lib/libblacs_openmpi.so definition taken > ld: warning: symbol `mpi_fortran_status_ignore_' has differing sizes: > (file /opt/sunstudio12.1/lib/libblacs_openmpi.so value=0x14; > file /opt/SUNWhpc/HPC8.2/sun/lib/libmpi.so value=0x4); > /opt/sunstudio12.1/lib/libblacs_openmpi.so definition taken > Undefined first referenced > symbol in file > mpi_initialized_ /opt/sunstudio12.1/lib/libblacs_openmpi.so > mpi_testall_ /opt/sunstudio12.1/lib/libblacs_openmpi.so > mpi_op_create_ /opt/sunstudio12.1/lib/libblacs_openmpi.so > mpi_attr_get_ /opt/sunstudio12.1/lib/libblacs_openmpi.so > mpi_init_ /opt/sunstudio12.1/lib/libblacs_openmpi.so > mpi_test_ /opt/sunstudio12.1/lib/libblacs_openmpi.so > ld: fatal: Symbol referencing errors. No output written to anneau > > unfortunately, the man page (man scalapack) gives only example in fortran > You're right, on linux, it compiles also well. Lyne-jobic% mpif90 -o exe -m64 -L/export/opt/sunstudio12u1/rtlibs/amd64/ -R/export/opt/sunstudio12u1/rtlibs/amd64/ -L/export/opt/sunstudio12u1/lib/amd64/ -I/opt/SUNWhpc/HPC8.2/sun/include/64 -lblacs_openmpi -lmpi -xlic_lib=sunperf anneau.f90
So, it compiles for fortran, but not for C !!!! (And i need it for C programs....) Those libs are written in fortran. Maybe it comes from the C interface to those libs ? Yann > Yann JOBIC wrote: >> shweta phabba wrote: >>> hi, >>> From error i think it is unable to find mpi.h or something similar >>> where all API's are declared so , i think u can try -I option with >>> mpicc and give mpi.h path i.e include directory path . >>> >>> Thanks. >>> >> Thanks for your fast answer ! >> >> I tested it, here's the result : >> Lyne-jobic% mpicc -o exe -m64 >> -L/export/opt/sunstudio12u1/rtlibs/amd64/ >> -R/export/opt/sunstudio12u1/rtlibs/amd64/ >> -L/export/opt/sunstudio12u1/lib/amd64/ >> -I/opt/SUNWhpc/HPC8.2/sun/include/64 -lblacs_openmpi >> -xlic_lib=sunperf anneau.c >> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >> reference to `mpi_initialized_' >> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >> reference to `mpi_test_' >> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >> reference to `mpi_attr_get_' >> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >> reference to `mpi_init_' >> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >> reference to `mpi_testall_' >> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >> reference to `mpi_op_create_' >> >> >> I tried to see if mpi defined those functions : >> Lyne-jobic% nm /opt/SUNWhpc/HPC8.2/sun/lib/libmpi.so | grep >> mpi_initialized >> 000b59fd D ompi_mpi_initialized >> Lyne-jobic% nm /opt/SUNWhpc/HPC8.2/sun/lib/libmpi.so | grep >> mpi_op_create >> 0002f714 T ompi_op_create >> >> It seems that they're in the mpi lib. >> >> However i tried to put -lmpi everywhere, without succes. >> >> Yann >> >> >>> >>> Regards, >>> Shweta >>> Yann JOBIC wrote: >>>> Hello, >>>> >>>> I'm compiling petsc3.0.0p6 on linux, with sun studio 12 u1 and HPC8.2. >>>> I wanted to use blacs_openmpi and scalapack from the perf lib, as i >>>> saw the .so files in the lib dir. >>>> >>>> Here are my errors : >>>> Lyne-jobic% mpicc -o exe -L/export/opt/sunstudio12u1/rtlibs/amd64/ >>>> -R/export/opt/sunstudio12u1/rtlibs/amd64/ >>>> -L/export/opt/sunstudio12u1/lib/amd64/ -lblacs_openmpi >>>> -xlic_lib=sunperf anneau.c >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_initialized_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_test_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_attr_get_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_init_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_testall_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_op_create_' >>>> >>>> When i'm linking with scalapack, the same functions are missing : >>>> Lyne-jobic% mpicc -o exe -L/export/opt/sunstudio12u1/rtlibs/amd64/ >>>> -R/export/opt/sunstudio12u1/rtlibs/amd64/ >>>> -L/export/opt/sunstudio12u1/lib/amd64/ -lscalapack -lblacs_openmpi >>>> -xlic_lib=sunperf -lmpi anneau.c >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_initialized_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_test_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_attr_get_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_init_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_testall_' >>>> /export/opt/sunstudio12u1/lib/amd64//libblacs_openmpi.so: undefined >>>> reference to `mpi_op_create_' >>>> >>>> I would like to use blacs_openmpi and scalapack as i should get >>>> better performance than compiling them by hand (what i've done, in >>>> order to have petsc compiling). >>>> >>>> Do you know a way to get ride of those errors ? >>>> >>>> Thanks, >>>> >>>> Yann >>>> >>>> >>> >> >> > > -- ___________________________ Yann JOBIC HPC engineer Polytech Marseille DME IUSTI-CNRS UMR 6595 Technop?le de Ch?teau Gombert 5 rue Enrico Fermi 13453 Marseille cedex 13 Tel : (33) 4 91 10 69 39 ou (33) 4 91 10 69 43 Fax : (33) 4 91 10 69 69