[petsc-users] MKL BLAS interface inconsistency
Alexander Grayver
agrayver at gfz-potsdam.de
Thu Apr 5 09:06:55 CDT 2012
Now everything works! Thanks for such a quick fix.
On 05.04.2012 15:53, Matthew Knepley wrote:
> On Thu, Apr 5, 2012 at 8:05 AM, Barry Smith <bsmith at mcs.anl.gov
> <mailto:bsmith at mcs.anl.gov>> wrote:
>
>
> Matt,
>
> It doesn't look like that link line is even linking against the
> MKL libraries?
>
>
> Dang, this is a bug with specifying --with-blas-lapack-lib, since it
> all gets dumped in
> self.lapackLib, then self.blasLib is empty. Pushed a fix to
> BuildSystem. Testing now.
>
> Matt
>
>
> Barry
>
> On Apr 5, 2012, at 7:54 AM, Alexander Grayver wrote:
>
> > On 05.04.2012 14:42, Matthew Knepley wrote:
> >> On Thu, Apr 5, 2012 at 7:22 AM, Alexander Grayver
> <agrayver at gfz-potsdam.de <mailto:agrayver at gfz-potsdam.de>> wrote:
> >> On 05.04.2012 14:13, Jed Brown wrote:
> >>> On Thu, Apr 5, 2012 at 04:54, Alexander Grayver
> <agrayver at gfz-potsdam.de <mailto:agrayver at gfz-potsdam.de>> wrote:
> >>> The inconsistency is still there. I pulled petsc-dev today and
> came across with the same problem:
> >>>
> >>> src/vec/vec/impls/seq/bvec2.c
> >>> 239: *z = PetscRealPart(BLASdot_(&bn,xx,&one,xx,&one));
> >>> 240: *z = PetscSqrtReal(*z);
> >>>
> >>> This doesn't work with Intel MKL. However in one of the
> mailing list discussions it was said there is now check for that.
> >>> This check didn't work for me apparently. Any ideas why?
> >>>
> >>> As always, we need configure.log.
> >>>
> >> Please find it attached.
> >>
> >> Please ALWAYS ALWAYS ALWAYS send configure.log to
> petsc-maint at mcs.anl.gov <mailto:petsc-maint at mcs.anl.gov>. They are too
> >> big for the public list.
> >
> > Sorry, next time I will.
> >
> >>
> >> Second, your problem is that we get a link error tying to test
> this so it looks like
> >> your BLAS have no complex implementations:
> >
> > It does have zdotc. Old petsc-dev works with it fine (after I
> patched vec implementaton myself to get around this issue).
> >
> > home> nm
> /opt/intel/Compiler/11.1/072/mkl/lib/em64t/libmkl_intel_lp64.a |
> grep zdotc
> > cblas_zdotci_lp64.o:
> > 0000000000000000 T cblas_zdotci_sub
> > cblas_zdotc_lp64.o:
> > 0000000000000000 T cblas_zdotc_sub
> > U zdotc
> > _zdotci_lp64.o:
> > U mkl_blas_zdotci
> > 0000000000000000 T zdotci
> > 0000000000000000 T zdotci_
> > _zdotc_lp64.o:
> > U mkl_blas_zdotc
> > 0000000000000000 T zdotc
> > 0000000000000000 T zdotc_
> > home>
> >
> >>
> >> sh: /opt/mpi/intel/openmpi-1.4.2/bin/mpicc -o
> /tmp/petsc-8AEO1f/config.packages.BlasLapack/conftest -wd1572
> -Qoption,cpp,--extended_float_type -g
> /tmp/petsc-8AEO1f/config.packages.BlasLapack/conftest.o -ldl
> -L/opt/mpi/intel/openmpi-1.4.2/lib -lmpi -lopen-rte -lopen-pal
> -lnsl -lutil -L/opt/mpi/intel/openmpi-1.4.2/lib
> -L/opt/intel/Compiler/11.1/072/ipp/em64t/lib
> -L/opt/intel/Compiler/11.1/072/mkl/interfaces/fftw3xf
> -L//opt/intel/Compiler/11.1/072/lib/intel64
> -L/usr/lib64/gcc/x86_64-suse-linux/4.3
> -L/opt/intel/Compiler/11.1/072/ipp/em64t/lib
> -L/opt/intel/Compiler/11.1/072/mkl/interfaces/fftw3xf
> -L/usr/x86_64-suse-linux/lib -limf -lsvml -lipgo -ldecimal -lgcc_s
> -lirc -lpthread -lirc_s -L/opt/mpi/intel/openmpi-1.4.2/lib
> -L/opt/intel/Compiler/11.1/072/ipp/em64t/lib
> -L/opt/intel/Compiler/11.1/072/mkl/interfaces/fftw3xf
> -L//opt/intel/Compiler/11.1/072/lib/intel64
> -L/usr/lib64/gcc/x86_64-suse-linux/4.3
> -L/opt/intel/Compiler/11.1/072/ipp/em64t/lib
> -L/opt/intel/Compiler/11.1/072/mkl/interfaces/fftw3xf
> -L/usr/x86_64-suse-linux/lib -ldl
> >> Executing: /opt/mpi/intel/openmpi-1.4.2/bin/mpicc -o
> /tmp/petsc-8AEO1f/config.packages.BlasLapack/conftest -wd1572
> -Qoption,cpp,--extended_float_type -g
> /tmp/petsc-8AEO1f/config.packages.BlasLapack/conftest.o -ldl
> -L/opt/mpi/intel/openmpi-1.4.2/lib -lmpi -lopen-rte -lopen-pal
> -lnsl -lutil -L/opt/mpi/intel/openmpi-1.4.2/lib
> -L/opt/intel/Compiler/11.1/072/ipp/em64t/lib
> -L/opt/intel/Compiler/11.1/072/mkl/interfaces/fftw3xf
> -L//opt/intel/Compiler/11.1/072/lib/intel64
> -L/usr/lib64/gcc/x86_64-suse-linux/4.3
> -L/opt/intel/Compiler/11.1/072/ipp/em64t/lib
> -L/opt/intel/Compiler/11.1/072/mkl/interfaces/fftw3xf
> -L/usr/x86_64-suse-linux/lib -limf -lsvml -lipgo -ldecimal -lgcc_s
> -lirc -lpthread -lirc_s -L/opt/mpi/intel/openmpi-1.4.2/lib
> -L/opt/intel/Compiler/11.1/072/ipp/em64t/lib
> -L/opt/intel/Compiler/11.1/072/mkl/interfaces/fftw3xf
> -L//opt/intel/Compiler/11.1/072/lib/intel64
> -L/usr/lib64/gcc/x86_64-suse-linux/4.3
> -L/opt/intel/Compiler/11.1/072/ipp/em64t/lib
> -L/opt/intel/Compiler/11.1/072/mkl/interfaces/fftw3xf
> -L/usr/x86_64-suse-linux/lib -ldl
> >> sh:
> >> Possible ERROR while running linker:
> /tmp/petsc-8AEO1f/config.packages.BlasLapack/conftest.o: In
> function `main':
> >> /tmp/petsc-8AEO1f/config.packages.BlasLapack/conftest.c:14:
> undefined reference to `zdotc_'
> >> output: ret = 256
> >> error message =
> {/tmp/petsc-8AEO1f/config.packages.BlasLapack/conftest.o: In
> function `main':
> >> /tmp/petsc-8AEO1f/config.packages.BlasLapack/conftest.c:14:
> undefined reference to `zdotc_'
> >> }
> >>
> >>
> >> Matt
> >>
> >> In include/petscblaslapack_uscore.h (and other places), you
> will find the following. So we need to know why
> PETSC_COMPLEX_DOT_RESULT_ARGUMENT was not found by configure.
> >>
> >> This I can see...
> >>
> >>
> >>>
> >>> #ifdef PETSC_COMPLEX_DOT_RESULT_ARGUMENT
> >>> EXTERN_C_BEGIN
> >>> extern void zdotc_(PetscScalar *,const PetscBLASInt*,const
> PetscScalar*,const PetscBLASInt*,const PetscScalar*,const
> PetscBLASInt*);
> >>> PETSC_STATIC_INLINE PetscScalar BLASdot_(const PetscBLASInt
> *n,const PetscScalar *x,const PetscBLASInt *sx,const PetscScalar
> *y,const PetscBLASInt *sy) {
> >>> PetscScalar tmpz;
> >>> zdotc_(&tmpz,n,x,sx,y,sy);
> >>> return tmpz;
> >>> }
> >>> EXTERN_C_END
> >>> #else
> >>> # define BLASdot_ zdotc_
> >>> #endif
> >>
> >>
> >>
> >> --
> >> Regards,
> >> Alexander
> >>
> >>
> >>
> >>
> >> --
> >> What most experimenters take for granted before they begin
> their experiments is infinitely more interesting than any results
> to which their experiments lead.
> >> -- Norbert Wiener
> >
> >
> > --
> > Regards,
> > Alexander
> >
>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener
--
Regards,
Alexander
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120405/fc8edd1a/attachment.htm>
More information about the petsc-users
mailing list