Skip to content

Errors and workaround suggestions for SuperLU, Silo, Mathpresso on IBM/NVidia #41

@herve-gross

Description

@herve-gross

Platform: IBM ppc64le
OS: Red Hat Enterprise Linux Server 7.4 (Maipo)"
Kernel: 3.10.0-693.el7.ppc64le
CPU: POWER8NVL (raw) 4023.000000MHz
Compiler: gcc/7.3.0
OpenMPI: openmpi/2.1.5
CMake: cmake/3.11.4
Python: anaconda/python-2.7.13

GEOSX commit: 2f4bee2 2019-06-14 11:29:20
thirdPartyLibs commit: e2ad476 2019-06-13 15:57:16

Issue 1: In built target superlu_dist

[ 75%] Linking CXX executable pzdrive1_ABglobal
mpic++  -fopenmp   -o pddrive4_ABglobal ... ... -Wl,-rpath -Wl,/data/gpfs/Users/l0538797/src/geosx/thirdPartyLibs/install-anag-gcc-release/lapack_suite/lib64 -lblas ... -llapack ... ...
/usr/bin/ld: cannot find -lblas
/usr/bin/ld: cannot find -llapack
collect2: error: ld returned 1 exit status
make[5]: *** [EXAMPLE/pddrive_ABglobal] Error 1
make[4]: *** [EXAMPLE/CMakeFiles/pddrive_ABglobal.dir/all] Error 2

Workaround: In CMakeList.txt, modify the flags "-Wl,-rpath -Wl," to "-L"

Issue 2: In building 'silo'

[ 46%] Performing configure step for 'silo'
... ...
hostinfo               =
/bin/universe          =
/usr/bin/arch -k       =
/bin/arch              = ppc64le
/usr/bin/oslevel       =
/usr/convex/getsysinfo =

UNAME_MACHINE = ppc64le
UNAME_RELEASE = 3.10.0-693.el7.ppc64le
UNAME_SYSTEM  = Linux
UNAME_VERSION = #1 SMP Thu Jul 6 19:59:44 EDT 2017
configure: error: cannot guess build type; you must specify one
make[2]: *** [silo/src/silo-stamp/silo-configure] Error 1
make[1]: *** [CMakeFiles/silo.dir/all] Error 2
make: *** [all] Error 2

workaround: Adding the following statement to CMakeLists.txt.
set(SILO_BUILD_TYPE "ibm")

Issue 3: In building 'mathpresso'

[ 70%] Performing build step for 'mathpresso'
... ...
[ 42%] Building CXX object CMakeFiles/mathpresso.dir/data/gpfs/Users/l0538797/src/geosx/thirdPartyLibs/build-anag-gcc-release/asmjit-master/src/asmjit/base/regalloc.cpp.o
In file included from /data/gpfs/Users/l0538797/src/geosx/thirdPartyLibs/build-anag-gcc-release/asmjit-master/src/asmjit/base/func.cpp:12:0:
/data/gpfs/Users/l0538797/src/geosx/thirdPartyLibs/build-anag-gcc-release/asmjit-master/src/asmjit/base/../base/func.h:185:3: error: #error "[asmjit] Couldn't determine the target's calling convention."
# error "[asmjit] Couldn't determine the target's calling convention."

... Lots of error messages ...

In file included from /data/gpfs/Users/l0538797/src/geosx/thirdPartyLibs/build-anag-gcc-release/asmjit-master/src/asmjit/base/func.cpp:12:0:
/data/gpfs/Users/l0538797/src/geosx/thirdPartyLibs/build-anag-gcc-release/asmjit-master/src/asmjit/base/../base/func.h:477:58: error: ‘kIdHost’ is not a member of ‘asmjit::CallConv’
  ASMJIT_INLINE FuncSignature0(uint32_t ccId = CallConv::kIdHost) noexcept {

... Lots of error messages  ...

/data/gpfs/Users/l0538797/src/geosx/thirdPartyLibs/build-anag-gcc-release/mathpresso/src/mathpresso/src/mathpresso/mpcompiler.cpp:116:27: error: ‘X86Mem’ does not name a type
MATHPRESSO_INLINE const X86Mem& getMem() const { return *static_cast<const X86Mem*>(&op); }

... Lots of error messages  ...

Workaround:

  1. In asmjit-master/src/asmjit/base/func.h, commenting out the entire structure of "#if defined(ASMJIT_DOCGEN)/#endif", keep only the block of code defined in the block of "#elif ASMJIT_ARCH_X64".
  2. In mathpresso/src/mathpresso/src/mathpresso/mpcompiler.cpp, adding #include "asmjit/x86.h" at the beginning.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions