Commit e852ccbf authored by gbalduzz's avatar gbalduzz
Browse files

Created method to silence ESSL warnings on summit.

parent 29063f39
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -142,6 +142,7 @@ set(DCA_LIBS
  coarsegraining
  ${DCA_CONCURRENCY_LIB}
  ${DCA_THREADING_LIBS}
  lapack
)

if (DCA_HAVE_CUDA)
+4 −0
Original line number Diff line number Diff line
@@ -8,6 +8,10 @@ set(DCA_HAVE_LAPACK TRUE CACHE INTERNAL "If set to TRUE, prevents CMake from sea
# To give ESSL precedence it needs to be specified before NETLIB.
set(LAPACK_LIBRARIES $ENV{OLCF_ESSL_ROOT}/lib64/libessl.so;$ENV{OLCF_NETLIB_LAPACK_ROOT}/lib64/liblapack.so;$ENV{OLCF_NETLIB_LAPACK_ROOT}/lib64/libblas.so CACHE FILEPATH "Libraries to link against to use LAPACK.")

# Set the include directory for the ESSL library.
set(DCA_ESSL_INCLUDES $ENV{OLCF_ESSL_ROOT}/include CACHE PATH "Path to ESSL include directory.")
mark_as_advanced(DCA_ESSL_INCLUDES)

# Use jsrun for executing the tests.
set(TEST_RUNNER "jsrun" CACHE STRING "Command for executing (MPI) programs.")
set(MPIEXEC_NUMPROC_FLAG "-a" CACHE STRING
+26 −0
Original line number Diff line number Diff line
// Copyright (C) 2018 ETH Zurich
// Copyright (C) 2018 UT-Battelle, LLC
// All rights reserved.
//
// See LICENSE for terms of usage.
// See CITATION.md for citation guidelines, if DCA++ is used for scientific publications.
//
// Author: Giovanni Balduzzi (gbalduzz@itp.phys.ethz.ch)
//
// This file provides an utility to silence the lapack library warnings.

#ifndef DCA_LINALG_LAPACK_SILENCE_LAPACK_HPP
#define DCA_LINALG_LAPACK_SILENCE_LAPACK_HPP

namespace dca {
namespace linalg {
namespace lapack {
// dca::linalg::lapack::

void silenceLapack();

}  // lapack
}  // linalg
}  // dca

#endif  // DCA_LINALG_LAPACK_SILENCE_LAPACK_HPP
+7 −0
Original line number Diff line number Diff line
@@ -4,3 +4,10 @@ if(DCA_HAVE_CUDA)
  CUDA_ADD_LIBRARY(lapack_kernels laset_gpu.cu multiply_diagonal_gpu.cu)
  target_compile_definitions(lapack_kernels PRIVATE DCA_HAVE_CUDA)
endif()

add_library(lapack silence_lapack.cpp)
target_include_directories(lapack PRIVATE ${DCA_ESSL_INCLUDE})
if(DCA_ESSL_INCLUDES)
  target_compile_definitions(lapack PUBLIC DCA_WITH_ESSL)
  target_include_directories(lapack PRIVATE ${DCA_ESSL_INCLUDES})
endif()
+39 −0
Original line number Diff line number Diff line
// Copyright (C) 2018 ETH Zurich
// Copyright (C) 2018 UT-Battelle, LLC
// All rights reserved.
//
// See LICENSE for terms of usage.
// See CITATION.md for citation guidelines, if DCA++ is used for scientific publications.
//
// Author: Giovanni Balduzzi (gbalduzz@itp.phys.ethz.ch)
//
// This file implements silence_lapack.hpp.

#include "dca/linalg/lapack/silence_lapack.hpp"

#ifdef DCA_WITH_ESSL
#include <essl.h>
#endif  // DCA_WITH_ESSL

namespace dca {
namespace linalg {
namespace lapack {
// dca::linalg::lapack::

#ifdef DCA_WITH_ESSL
void silenceLapack() {
  const _ESVINT code = 2146;
  static _ESVINT info1(0), info2(0);
  einfo(code, info1, info2);

  static _ESVINT iusadr(1);
  errset(code, 256, -1, 0, static_cast<const void*>(&iusadr), 0);
}

#else   // DCA_WITH_ESSL
void silenceLapack() {}
#endif  // DCA_WITH_ESSL

}  // lapack
}  // linalg
}  // dca
Loading