<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 26, 2019 at 3:00 PM Kun Jiao <<a href="mailto:KJiao@slb.com">KJiao@slb.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Strange things, when I compile my code in the test dir in PETSC, it works. After I "make install" PETSC, and try to compile my code against the installed PETSC, it doesn't work any more.<br></blockquote><div><br></div><div>I'm not sure I follow what you are doing exactly but look at the compile lines (good and bad) and compare them. If one works and one does not then they must be different.</div><div><br></div><div>Anyway, as Satish said this interface was not enabled in any version that we see. (So we are puzzled that any version works.) You can wait for a fix to get pushed but using the method that I showed you should work now.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
I guess this is what you means. <br>
<br>
Is there any way to reenable MatCreateMPIAIJMKL public interface?<br>
<br>
And, I am using intel MKL, here is my configure option:<br>
<br>
Configure Options: --configModules=PETSc.Configure --optionsModule=config.compilerOptions PETSC_ARCH=linux-gnu-intel --with-precision=single --with-cc=mpiicc --with-cxx=mpiicc --with-fc=mpiifort --with-mpi-include=/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel/compilers_and_libraries_2019.2.187/linux/mpi/intel64/include --with-mpi-lib="-L/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel//compilers_and_libraries_2019.2.187/linux/mpi/intel64/lib -lmpifort -lmpi_ilp64" --with-blaslapack-lib="-L/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel/compilers_and_libraries_2019.2.187/linux/mkl/lib/intel64 -Wl, --no-as-needed -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lm -ldl" --with-scalapack-lib="-L/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel/compilers_and_libraries_2019.2.187/linux/mkl/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64" --with-scalapack-include=/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel/compilers_and_libraries_2019.2.187/linux/mkl/include --with-mkl_pardiso-dir=/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel/compilers_and_libraries_2019.2.187/linux/mkl --with-mkl_sparse=1 --with-mkl_sparse-dir=/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel/compilers_and_libraries_2019.2.187/linux/mkl --with-mkl_cpardiso=1 --with-mkl_cpardiso-dir=/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel/compilers_and_libraries_2019.2.187/linux/mkl --with-mkl_sparse_optimize=1 --with-mkl_sparse_optimize-dir=/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel/compilers_and_libraries_2019.2.187/linux/mkl --with-mkl_sparse_sp2m=1 --with-mkl_sparse_sp2m-dir=/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/intel/compilers_and_libraries_2019.2.187/linux/mkl --with-cmake=1 --prefix=/wgdisk/hy3300/source_code_dev/imaging/kjiao/software/petsc_3.9.4 --known-endian=big --with-debugging=0 --COPTFLAGS=" -Ofast -xHost" --CXXOPTFLAGS=" -Ofast -xHost" --FOPTFLAGS=" -Ofast -xHost" --with-x=0<br>
Working directory: /wgdisk/hy3300/source_code_dev/imaging/kjiao/petsc-3.10.4<br>
<br>
<br>
<br>
Schlumberger-Private<br>
<br>
-----Original Message-----<br>
From: Balay, Satish <<a href="mailto:balay@mcs.anl.gov" target="_blank">balay@mcs.anl.gov</a>> <br>
Sent: Tuesday, March 26, 2019 10:19 AM<br>
To: Kun Jiao <<a href="mailto:KJiao@slb.com" target="_blank">KJiao@slb.com</a>><br>
Cc: Mark Adams <<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>>; <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a><br>
Subject: Re: [petsc-users] [Ext] Re: error: identifier "MatCreateMPIAIJMKL" is undefined in 3.10.4<br>
<br>
>>>>>>><br>
balay@sb /home/balay/petsc (maint=)<br>
$ git grep MatCreateMPIAIJMKL maint-3.8<br>
maint-3.8:src/mat/impls/aij/mpi/aijmkl/mpiaijmkl.c:   MatCreateMPIAIJMKL - Creates a sparse parallel matrix whose local<br>
maint-3.8:src/mat/impls/aij/mpi/aijmkl/mpiaijmkl.c:PetscErrorCode  MatCreateMPIAIJMKL(MPI_Comm comm,PetscInt m,PetscInt n,PetscInt M,PetscInt N,PetscInt d_nz,const PetscInt d_nnz[],PetscInt o_nz,const PetscInt o_nnz[],Mat *A)<br>
maint-3.8:src/mat/impls/aij/mpi/aijmkl/mpiaijmkl.c:.seealso: MatCreateMPIAIJMKL(), MATSEQAIJMKL, MATMPIAIJMKL<br>
maint-3.8:src/mat/impls/aij/seq/aijmkl/aijmkl.c:.seealso: MatCreate(), MatCreateMPIAIJMKL(), MatSetValues() balay@sb /home/balay/petsc (maint=) $ git grep MatCreateMPIAIJMKL maint<br>
maint:src/mat/impls/aij/mpi/aijmkl/mpiaijmkl.c:   MatCreateMPIAIJMKL - Creates a sparse parallel matrix whose local<br>
maint:src/mat/impls/aij/mpi/aijmkl/mpiaijmkl.c:PetscErrorCode  MatCreateMPIAIJMKL(MPI_Comm comm,PetscInt m,PetscInt n,PetscInt M,PetscInt N,PetscInt d_nz,const PetscInt d_nnz[],PetscInt o_nz,const PetscInt o_nnz[],Mat *A)<br>
maint:src/mat/impls/aij/mpi/aijmkl/mpiaijmkl.c:.seealso: MatCreateMPIAIJMKL(), MATSEQAIJMKL, MATMPIAIJMKL<br>
maint:src/mat/impls/aij/seq/aijmkl/aijmkl.c:.seealso: MatCreate(), MatCreateMPIAIJMKL(), MatSetValues() balay@sb /home/balay/petsc (maint=) $ <<<<<<<<<<<<br>
<br>
MatCreateMPIAIJMKL() exists in both petsc-3.8 and petsc-3.10. However the public interface is missing from both of these versions. So I'm surprised you don't get the same error with petsc-3.8<br>
<br>
Can you try the following change?<br>
<br>
diff --git a/include/petscmat.h b/include/petscmat.h index 1b8ac69377..c66f727994 100644<br>
--- a/include/petscmat.h<br>
+++ b/include/petscmat.h<br>
@@ -223,7 +223,8 @@ typedef enum {DIFFERENT_NONZERO_PATTERN,SUBSET_NONZERO_PATTERN,SAME_NONZERO_PATT<br>
<br>
 #if defined PETSC_HAVE_MKL_SPARSE<br>
 PETSC_EXTERN PetscErrorCode MatCreateBAIJMKL(MPI_Comm,PetscInt,PetscInt,PetscInt,PetscInt,PetscInt,PetscInt,const PetscInt[],PetscInt,const PetscInt[],Mat*); -PETSC_EXTERN PetscErrorCode MatCreateSeqBAIJMKL(MPI_Comm comm,PetscInt bs,PetscInt m,PetscInt n,PetscInt nz,const PetscInt nnz[],Mat *A);<br>
+PETSC_EXTERN PetscErrorCode <br>
+MatCreateSeqBAIJMKL(MPI_Comm,PetscInt,PetscInt,PetscInt,PetscInt,const <br>
+PetscInt[],Mat*); PETSC_EXTERN PetscErrorCode  <br>
+MatCreateMPIAIJMKL(MPI_Comm,PetscInt,PetscInt,PetscInt,PetscInt,PetscIn<br>
+t,const PetscInt[],PetscInt,const PetscInt[],Mat*);<br>
 #endif<br>
<br>
 PETSC_EXTERN PetscErrorCode MatCreateSeqSELL(MPI_Comm,PetscInt,PetscInt,PetscInt,const PetscInt[],Mat*);<br>
<br>
<br>
Also note: - this routine is available only when PETSc is built with Intel MKL<br>
<br>
Satish<br>
<br>
On Tue, 26 Mar 2019, Kun Jiao via petsc-users wrote:<br>
<br>
> [kjiao@hyi0016 src/lsqr]% make<br>
> [ 50%] Building CXX object lsqr/CMakeFiles/p_lsqr.dir/lsqr.cc.o<br>
> /wgdisk/hy3300/source_code_dev/imaging/kjiao/src/git/src/lsqr/lsqr.cc(318): error: identifier "MatCreateMPIAIJMKL" is undefined<br>
>     ierr = MatCreateMPIAIJMKL(comm,m,n,M,N,maxnz,dialens,maxnz,offlens,&A);CHKERRQ(ierr);<br>
>            ^<br>
> <br>
> /wgdisk/hy3300/source_code_dev/imaging/kjiao/src/git/src/lsqr/lsqr.cc(578): error: identifier "MatCreateMPIAIJMKL" is undefined<br>
>     ierr = MatCreateMPIAIJMKL(comm,m,n,M,N,maxnz,dialens,maxnz,offlens,&A);CHKERRQ(ierr);<br>
>            ^<br>
> <br>
> compilation aborted for <br>
> /wgdisk/hy3300/source_code_dev/imaging/kjiao/src/git/src/lsqr/lsqr.cc <br>
> (code 2)<br>
> <br>
> Thanks.<br>
> <br>
> <br>
> From: Mark Adams <<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>><br>
> Sent: Tuesday, March 26, 2019 9:22 AM<br>
> To: Kun Jiao <<a href="mailto:KJiao@slb.com" target="_blank">KJiao@slb.com</a>><br>
> Cc: <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a><br>
> Subject: Re: [Ext] Re: [petsc-users] error: identifier <br>
> "MatCreateMPIAIJMKL" is undefined in 3.10.4<br>
> <br>
> I assume the whole error message will have the line of code. Please send the whole error message and line of offending code if not included.<br>
> <br>
> On Tue, Mar 26, 2019 at 10:08 AM Kun Jiao <<a href="mailto:KJiao@slb.com" target="_blank">KJiao@slb.com</a><mailto:<a href="mailto:KJiao@slb.com" target="_blank">KJiao@slb.com</a>>> wrote:<br>
> It is compiling error, error message is:<br>
> <br>
> error: identifier "MatCreateMPIAIJMKL" is undefined.<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> From: Mark Adams <<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a><mailto:<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>>><br>
> Sent: Tuesday, March 26, 2019 6:48 AM<br>
> To: Kun Jiao <<a href="mailto:KJiao@slb.com" target="_blank">KJiao@slb.com</a><mailto:<a href="mailto:KJiao@slb.com" target="_blank">KJiao@slb.com</a>>><br>
> Cc: <a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a><mailto:<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>><br>
> Subject: [Ext] Re: [petsc-users] error: identifier <br>
> "MatCreateMPIAIJMKL" is undefined in 3.10.4<br>
> <br>
> Please send the output of the error (runtime, compile time, link <br>
> time?)<br>
> <br>
> On Mon, Mar 25, 2019 at 10:50 PM Kun Jiao via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a><mailto:<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>>> wrote:<br>
> Hi Petsc Experts,<br>
> <br>
> Is MatCreateMPIAIJMKL retired in 3.10.4?<br>
> <br>
> I got this error with my code which works fine in 3.8.3 version.<br>
> <br>
> Regards,<br>
> Kun<br>
> <br>
> <br>
> <br>
> Schlumberger-Private<br>
> <br>
> <br>
> Schlumberger-Private<br>
> <br>
> <br>
> Schlumberger-Private<br>
> <br>
</blockquote></div></div>