[petsc-dev] missing scalapack lib

Barry Smith bsmith at mcs.anl.gov
Wed Feb 25 14:10:49 CST 2015


   The issue is here in Scalapack.py

class Configure(config.package.Package):
  def __init__(self, framework):
    config.package.Package.__init__(self, framework)
    self.download         = ['http://www.netlib.org/scalapack/scalapack-2.0.2.tgz',
                             'http://ftp.mcs.anl.gov/pub/petsc/externalpackages/scalapack-2.0.2.tgz']
    self.includes         = []
    self.liblist          = [[],['libscalapack.a']]
                            ^^^^^^^^

we first check for scalapack in the "default system libraries" and then only check in libscalapack.a if it is not in the "default system libraries".

Cray has all kinds of crazy stuff like scalapack in the default system libraries and hence finds the symbol pssytrd before it ever checks in the location where we built it.  

Now the problem is even if we remove the []   from the [[],['libscalapack.a']] and thus explicitly list the downloaded library location when linking code the linker will find both libraries and we have no control over which one it actually uses so it could end up using the Cray one. 

If you really want to use the download one instead of the installed one you need to poke around the Cray documentation and figure out if you can remove the automatic linking of the Cray one. Perhaps turning off some module or something?

  Barry



> On Feb 25, 2015, at 1:58 PM, Stefano Zampini <stefano.zampini at gmail.com> wrote:
> 
> I just configured on a Cray XC40 with downloading MUMPS and Scalapack , and it seems that something is wrong  when creating petscvariables. SCALAPACK_LIB is empty and -lscalapack does not appear in PETSC_EXTERNAL_LIB.
> Attached a configure.log
> 
> <configure.log>




More information about the petsc-dev mailing list