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 <mailto: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!

Reply via email to