Beispiel #1
0
        self.executeTest(self.configureConversion)
        self.executeTest(self.configureMPI2)
        self.executeTest(self.configureTypes)
        self.executeTest(self.configureMPITypes)
        self.executeTest(self.configureMissingPrototypes)
        self.executeTest(self.SGIMPICheck)
        self.executeTest(self.CxxMPICheck)
        self.executeTest(self.FortranMPICheck)
        self.executeTest(self.configureIO)
        if self.libraries.check(
                self.dlib, "MPI_Alltoallw") and self.libraries.check(
                    self.dlib, "MPI_Type_create_indexed_block"):
            self.addDefine('HAVE_MPI_ALLTOALLW', 1)
        if self.libraries.check(self.dlib, "MPI_Comm_spawn"):
            self.addDefine('HAVE_MPI_COMM_SPAWN', 1)
        if self.libraries.check(self.dlib, "MPI_Win_create"):
            self.addDefine('HAVE_MPI_WIN_CREATE', 1)
        if self.libraries.check(self.dlib, "MPI_Finalized"):
            self.addDefine('HAVE_MPI_FINALIZED', 1)


if __name__ == '__main__':
    import config.framework
    import sys
    framework = config.framework.Framework(sys.argv[1:])
    framework.setupLogging(framework.clArgs)
    framework.children.append(Configure(framework))
    framework.configure()
    framework.dumpSubstitutions()
Beispiel #2
0
        return

    def checkForRoutine(self, routine):
        ''' used by other packages to see if a BLAS routine is available
        This is not really correct because other packages do not (usually) know about f2cblasLapack'''
        if self.f2c:
            return self.libraries.check(self.dlib, routine + '_')
        else:
            return self.libraries.check(self.dlib,
                                        routine,
                                        fortranMangle=hasattr(
                                            self.compilers, 'FC'))

    def configure(self):
        if self.defaultPrecision == 'double' or self.defaultPrecision == 'single':
            self.executeTest(self.configureLibrary)
            self.executeTest(self.checkESSL)
            self.executeTest(self.checkPESSL)
            self.executeTest(self.checkMissing)
        return


if __name__ == '__main__':
    import config.framework
    import sys
    framework = config.framework.Framework(sys.argv[1:])
    framework.setupLogging()
    framework.children.append(Configure(framework))
    framework.configure()
    framework.dumpSubstitutions()
Beispiel #3
0
      self.addDefine('HAVE_MPI_ALLTOALLW',1)
    if self.libraries.check(self.dlib, "MPI_Win_create"):
      self.addDefine('HAVE_MPI_WIN_CREATE',1)
      self.addDefine('HAVE_MPI_REPLACE',1) # MPI_REPLACE is strictly for use with the one-sided function MPI_Accumulate
    funcs = '''MPI_Comm_spawn MPI_Type_get_envelope MPI_Type_get_extent MPI_Type_dup MPI_Init_thread
      MPIX_Iallreduce MPI_Iallreduce MPI_Ibarrier MPI_Finalized MPI_Exscan'''.split()
    for f in funcs:
      if self.libraries.check(self.dlib, f):
        self.addDefine('HAVE_' + f.upper(),1)

    oldFlags = self.compilers.CPPFLAGS # Disgusting save and restore
    self.compilers.CPPFLAGS += ' '+self.headers.toString(self.include)
    if self.checkCompile('#include <mpi.h>', 'int combiner = MPI_COMBINER_DUP;'):
      self.addDefine('HAVE_MPI_COMBINER_DUP',1)
    self.compilers.CPPFLAGS = oldFlags

    if self.libraries.check(self.dlib, "MPIDI_CH3I_sock_set"):
      self.addDefine('HAVE_MPICH_CH3_SOCK', 1)
    if self.libraries.check(self.dlib, "MPIDI_CH3I_sock_fixed_nbc_progress"):
      # Indicates that this bug was fixed: http://trac.mpich.org/projects/mpich/ticket/1785
      self.addDefine('HAVE_MPICH_CH3_SOCK_FIXED_NBC_PROGRESS', 1)

if __name__ == '__main__':
  import config.framework
  import sys
  framework = config.framework.Framework(sys.argv[1:])
  framework.setupLogging(framework.clArgs)
  framework.children.append(Configure(framework))
  framework.configure()
  framework.dumpSubstitutions()
Beispiel #4
0
        return self.libraries.check(self.dlib,routine+'_')
      else:
        return self.libraries.check(self.dlib,routine)
    else:
      return self.libraries.check(self.dlib,routine,fortranMangle = hasattr(self.compilers, 'FC'))

  def check64BitBLASIndices(self):
    '''Check for and use 64bit integer blas'''
    if 'known-64-bit-blas-indices' in self.argDB:
      if int(self.argDB['known-64-bit-blas-indices']):
        self.addDefine('HAVE_64BIT_BLAS_INDICES', 1)
    return

  def configure(self):
    self.executeTest(self.configureLibrary)
    self.executeTest(self.check64BitBLASIndices)
    self.executeTest(self.checkESSL)
    self.executeTest(self.checkPESSL)
    self.executeTest(self.checkMissing)
    self.executeTest(self.checklsame)
    return

if __name__ == '__main__':
  import config.framework
  import sys
  framework = config.framework.Framework(sys.argv[1:])
  framework.setupLogging()
  framework.children.append(Configure(framework))
  framework.configure()
  framework.dumpSubstitutions()