PETSc configure with Intel-compiler static linking

Takuya Sekikawa sekikawa at msi.co.jp
Fri Jul 10 03:58:12 CDT 2009


Dear Satish,

On Thu, 9 Jul 2009 21:37:02 -0500 (CDT)
Satish Balay <balay at mcs.anl.gov> wrote:

> For one - shell is not expanding ${MKL_DIR} for you. Perhaps you used
> the wrong quotes?

As you wrote I suspected ${MKL_DIR} didn't expand by shell so I changed this
part to fullpath, but result was same.

> Anyway - the current configure interface to --with-blas-lapack-lib
> prevents listing files as I mentioned before. So you can try the
> following workarround:
> 
> - create a different mkl location for just the .a files - and use it
>  with configure - as follows:
> 
> [choose any convinent location]
> mkdir /foo/mkl-static
> cp /opt/intel/mkl/10.0.010/lib/em64t/*.a /foo/mkl-static/
> cd $PETSC_DIR
> ./configure .... --with-blas-lapack-lib=[/foo/mkl-static/libmkl_lapack.a,mkl_intel_lp64.a,libmkl_core.a,libguide.a,libthread.a]

Thank you for your advice.
but seems that it don't work well...

Well, situation was changed.
I pursaded my client that we have to use .so version of MKL.
so for the time I don't have to compile PETSc with Intel static library.
Thank you for assistance.

> Also we prevent flooding the mailing list with configure.log - so such
> issues [requiring communicating configure.log] can be sent to
> petsc-maint at mcs.anl.gov

I'm so sorry.
next time I'll post configure.log to maintainance address.

Takuya

> Satish
> 
> On Fri, 10 Jul 2009, Takuya Sekikawa wrote:
> 
> > Dear Matt and Satish,
> > 
> > Thank you for quick response.
> > 
> > On Thu, 9 Jul 2009 06:08:00 -0500
> > Matthew Knepley <knepley at gmail.com> wrote:
> > 
> > > For any configure problem, you MUST send configure.log or we have no idea
> > > what happened.
> > 
> > Oh, Sorry.
> > I attached latest configure.log.
> > 
> > On Thu, 9 Jul 2009 09:50:21 -0500 (CDT)
> > Satish Balay <balay at mcs.anl.gov> wrote:
> > 
> > > On Thu, 9 Jul 2009, Takuya Sekikawa wrote:
> > > 
> > > > Hello petsc users,
> > > > 
> > > > I need to know how to configure PETSc with Intel-compiler (icc/icpc) on
> > > > static linking.
> > > 
> > > Why?
> > 
> > Mainly because of license problem.
> > .so version needs target user to purchase licsense.
> > 
> > > > shared linking is just fine, 
> > > > but I need to build PETSc with static-linking. so I tried several description.
> > > > 
> > > > [1]
> > > > $ ./config/configure.py --with-cc=icc --with-cxx=icpc --with-fc=0
> > > > --with-shared=0 --with-blas-lapack-dir=${MKL_DIR}
> > > > 
> > > > environment variable MKL_DIR is set to intel MKL library directory.
> > > > this one is fine, (also compiling and running is ok)
> > > > but is spite of "--with-shared=0" flag, executable still link with .so
> > > > (libmkl_lapack.so, etc)
> > > 
> > > --with-shared=0 refers to petsc libraries. It doesn't mean static
> > > linking or shared linking. 
> > 
> > Ok. I understood.
> > 
> > > Generally static linking is done by the linker option [with icc/ifort
> > > its: -Bstatic]. But since all system libraries might not be available
> > > as static libraries - this might not work.
> > > 
> > > Esp with MKL - since the librariry names are different between .so and
> > > .a files. [so PETSc configure doesn't explicitly look for tha .a
> > > names.
> > > 
> > > > 
> > > > so I tried another one:
> > > > 
> > > > [2]
> > > > $ ./config/configure.py --with-cc=icc --with-cxx=icpc --with-fc=0
> > > > --with-shared=0 --with-blas-lapack-lib=${MKL_DIR}/libmkl_lapack.a
> > > 
> > > Generally - you  need -lmkl_lapack -lmkl -lpthread -lguide
> > > 
> > > However -lmkl is only available as .so. So you'll have to cat
> > > libmkl.so to see what the actual libraries it links with: For me I
> > > have:
> > > 
> > > [petsc:10.0.2.018/lib/em64t] petsc> cat libmkl.so
> > > GROUP (libmkl_intel_lp64.so libmkl_intel_thread.so libmkl_core.so)
> > > [petsc:10.0.2.018/lib/em64t] petsc> 
> > > 
> > > 
> > > So you might be able to use:
> > > 
> > > --with-blas-lapack-lib="${MKL_DIR}/libmkl_lapack.a ${MKL_DIR}/libmkl_intel_lp64.a ${MKL_DIR}/libmkl_core.a -lpthread ${MKL_DIR}/libguide.a"
> > 
> > Thank you.
> > I tried as you wrote, but unsuccessful. 
> > configure.py said:
> > 
> > *********************************************************************************
> >          UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log for details):
> > ---------------------------------------------------------------------------------------
> > You set a value for --with-blas-lapack-lib=<lib>, but ['${MKL_DIR}/libmkl_lapack.a ${MKL_DIR}/libmkl_intel_lp64.a ${MKL_DIR}/libmkl_core.a -lpthread ${MKL_DIR}/libguide.a'] cannot be used
> > *********************************************************************************
> > 
> > What is the real cause of "cannot be used" ?
> > I cannot make out why "cannot be used" (.a is collapsed? or simply need
> > to specify more .a?)
> > 
> > Takuya
> > 

---------------------------------------------------------------
   ●   Takuya Sekikawa
 ●○●        Mathematical Systems, Inc
   ●                 sekikawa at msi.co.jp
---------------------------------------------------------------




More information about the petsc-users mailing list