GEOS-DEV / GEOS-DEV/thirdPartyLibs

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

Open
#41 11 comments 0 reactions 3 assignees View on GitHub

@MichaelSekachev is already working on this.

Since Jun 24, 2019.

Dominant language
Python
Stars
4
Forks
18
Avg merge
9d 14h
Merged PRs (30d)
4

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.