Hypre embedded LAPACK in their source so I doubt you can have hypre use MKL. Hypre supports OMP now, but I have been having a lot of numerical problems with hypre/OMP on KNL.
On Mon, Jul 30, 2018 at 9:24 AM Bastian Löhrer < bastian.loeh...@tu-dresden.de> wrote: > On 30.07.2018 13:28, Matthew Knepley wrote: > > On Mon, Jul 30, 2018 at 5:48 AM Bastian Löhrer < > bastian.loeh...@tu-dresden.de> wrote: > >> Dear PETSc users, >> >> im configuring PETSc to use an intel stack including intel/mkl: >> ./configure >> PETSC_ARCH=$PETSC_ARCH >> \ >> --with-gnu-compilers=0 >> --with-vendor-compilers=intel \ >> --with-large-file-io=1 >> \ >> --CFLAGS="-L${I_MPI_ROOT}/intel64/lib -I${I_MPI_ROOT}/intel64/include >> -lmpi" \ >> --CXXFLAGS="-L${I_MPI_ROOT}/intel64/lib -I${I_MPI_ROOT}/intel64/include >> -lmpi -lmpicxx" \ >> --FFLAGS="-L${I_MPI_ROOT}/intel64/lib -I${I_MPI_ROOT}/intel64/include >> -lmpi" \ >> --LDFLAGS="-L${I_MPI_ROOT}/intel64/lib -I${I_MPI_ROOT}/intel64/include >> -lmpi" \ >> --with-blas-lapack-dir="${MKLROOT}/lib/intel64" >> \ >> --download-hypre >> \ >> --with-debugging=yes >> >> >> * two questions:* >> >> >> * 1)* the blas-lapack-dir option is not passed down to the compilation >> of hypre according to $PETSC_DIR/$PETSC_ARCH/conf/hypre >> *Is there a way of having PETSc compile hypre with my intel/mkl?* >> > > This should happen. Please send configure.log so we can see what went on. > > My initial guess was that the file $PETSC_DIR/$PETSC_ARCH/conf/hypre lists > the parameters which are used for compiling hypre. As I said, this file > does not mention mkl anywhere. > I may be mistaken though, because having a second look I do realize that > the mkl library is mentioned in the configure log file in line 86661 ff. > (where hypre is being configured) and at the end of the log. > > Here is my configure.log: > > https://cloudstore.zih.tu-dresden.de/index.php/s/b6rT0WMAKEMsj8S/download > > Here is that hypre file: > > https://cloudstore.zih.tu-dresden.de/index.php/s/TSfXQ2pgDw5ALZm/download > > Thanks, > Bastian > > > > >> * 2)* *Should I omit or include any option?* I have come across a few >> options in previous configuration calls used at my department which I have >> removed from my configuration call because >> >> a) I had the impression that they were of no additional use: >> >> - --with-cc=mpiicc --with-cxx=mpiicpc --with-fc=mpiifort --with-mpi=1 >> - --with-pic, because --with-pic=1 is the default anyway since 2.3.1, >> is it not? >> (https://www.mcs.anl.gov/petsc/documentation/changes/231.html) >> - --with-mpiexec=mpirun >> - --with-mpi-compilers=1 >> - --known-mpi-shared=1 >> - --with-mpi-dir=... >> - COPTFLAGS="-g" CXXOPTFLAGS="-g" FOPTFLAGS="-g" because >> --with-debugging=yes adds them anyway >> >> Yes, getting rid of all these is fine. > >> b) because I couldn't figure out what they were actually for: >> >> - --configModules=PETSc.Configure >> - --optionsModule=PETSc.compilerOptions >> >> Those are added automatically. These are hooks so that you can completely > change the system without > getting rid of the low-level tests. > >> c) others: >> >> - --known-64-bit-blas-indices I guess it wouldn't hurt anyway so I >> guess I'll include this option the next time I configure petsc >> ( >> >> http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Sys/PetscBLASInt.html >> ) >> >> We have a bunch of -known-* options. They are used for any test that has > to execute. Batch environments cannot, > and thus you need to specify all of them. You do not need it unless you > are using --with-batch. > > Okay, fantastic, thank you! >