mpimd-csc / qrupdate-ng

Fork of the qrupdate library for future maintenance.
https://gitlab.mpi-magdeburg.mpg.de/koehlerm/qrupdate-ng
GNU General Public License v3.0
6 stars 1 forks source link

test_tchinx Fails on alpine linux #1

Closed a16bitsysop closed 3 years ago

a16bitsysop commented 3 years ago

Running make test Errors with:

4/13 Test  #4: test_tchinx ......................***Failed    0.02 sec

 testing Cholesky symmetric insert routines.
 All residual errors are expected to be small.

 schinx test:
      residual error =              0.381469726562E-05       PASS
 dchinx test:
      residual error =              0.888178419700E-14       PASS
 cchinx test:
      residual error =              0.307091331482E+02       FAIL
 zchinx test:
      residual error =              0.336444048779E+02       FAIL
----------------------------------------------------------------------
 total:     PASSED   2     FAILED   2
grisuthedragon commented 3 years ago

Can you give some more details about you system? For reproducing we need:

In general details about your hardware

a16bitsysop commented 3 years ago

I am testing on aarch64

I am writing an APKBUILD file for it, to add to alpine.

Here is the build logs on alpine builder pipeline: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/15047/pipelines

https://gitlab.alpinelinux.org/a16bitsysop/aports/-/jobs/256520/raw

https://gitlab.alpinelinux.org/a16bitsysop/aports/-/jobs/256518/raw

On the builder it fails on s390x as well.

grisuthedragon commented 3 years ago

Thanks for the information. I look on this issue as soon as possible.

a16bitsysop commented 3 years ago

Ok thanks, is it safe to just disable that test in the meantime with a patch in alpine ?

Make commands are:

build() {
        if [ "$CBUILD" != "$CHOST" ]; then
                CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
        fi
        cmake -B build \
                -DCMAKE_INSTALL_PREFIX=/usr \
                -DCMAKE_INSTALL_LIBDIR=lib \
                -DBUILD_SHARED_LIBS=True \
                -DCMAKE_BUILD_TYPE=None \
                $CMAKE_CROSSOPTS .
        make -C build
}

check() {
        CTEST_OUTPUT_ON_FAILURE=1 make -C build test
}
grisuthedragon commented 3 years ago

Yes I think its safe. The routines are rarely used. The only project I know how is using qrupdate is octave. And the failing tests are only for complex numbers so it gets even less used. From my feelings its some error with the ABI since GCC 10 changed some things for Fortran internally.

a16bitsysop commented 3 years ago

Thanks, yes I was just updating octave and noticed this was missing!

grisuthedragon commented 3 years ago

@a16bitsysop I got an aarch64 vm running and an alpine chroot, but I am struggling while installing the build dependencies of qrupdate:

# apk add cmake lapack-dev openblas-dev
ERROR: unsatisfiable constraints:
  lapack-dev (missing):
    required by: world[lapack-dev]
  openblas-dev (missing):
    required by: world[openblas-dev]

Furthermore, I only get gcc9 instead of 10.

Since I never used alpine before I am a bit glueless. I set up the chroot with https://wiki.alpinelinux.org/wiki/Alpine_Linux_in_a_chroot on an aarch64 VM

a16bitsysop commented 3 years ago

It has been added to the testing repo now so you don’t need to compile it, just add the testing repo to /etc/apk/repositories

Or just for qrupdate:

apk add qrupdate --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing

If it works ok let me know and I can move it to community, then it will install with the edge repos and be in the next release.

grisuthedragon commented 3 years ago

I get

 apk add qrupdate
ERROR: unsatisfiable constraints:
  so:libopenblas.so.3 (missing):
    required by: qrupdate-1.1.3-r0[so:libopenblas.so.3]

my /etc/apk/repositories:

http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/testing
a16bitsysop commented 3 years ago

What is /etc/apk/repositories ?

If it is like:

http://dl-cdn.alpinelinux.org/alpine/3.12/main

Change all the 3.12 to edge

Or if you want to compile to check tests you can use my script: https://github.com/a16bitsysop/travis-helpers/blob/master/build-apk-native.sh

And

https://github.com/a16bitsysop/travis-helpers/blob/master/pull-apk-source.sh

See here as to how it works

https://github.com/a16bitsysop/docker-postfix-redis/blob/main/Dockerfile

a16bitsysop commented 3 years ago

Try and add - - upgrade (two minus)

grisuthedragon commented 3 years ago

I managed to install gcc 10, cmake ... but BLAS and LAPACK still missing. Searching for them ( or OpenBLAS ) using apk search will give nothing useful:

 apk search blas
superlu-5.2.2-r0
laszip-3.4.3-r1
ubuntu:/# apk search lapack
ubuntu:/# 
a16bitsysop commented 3 years ago

this is the make depends cmake lapack-dev openblas-dev

grisuthedragon commented 3 years ago

This even does not help:

apk add lapack-dev
ERROR: unable to select packages:
  lapack-dev (no such package):
    required by: world[lapack-dev]
a16bitsysop commented 3 years ago

Will have a look later

a16bitsysop commented 3 years ago

Did you do try apk update && apk upgrade first?

From a fresh alpine edge container:

# cat /etc/apk/repositories 
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community

apk add lapack-dev
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/aarch64/APKINDEX.tar.gz
(1/6) Installing libgcc (10.2.1_pre1-r1)
(2/6) Installing libgfortran (10.2.1_pre1-r1)
(3/6) Installing blas (3.9.0-r3)
(4/6) Installing lapack (3.9.0-r3)
(5/6) Installing pkgconf (1.7.3-r0)
(6/6) Installing lapack-dev (3.9.0-r3)
Executing busybox-1.31.1-r14.trigger
OK: 19 MiB in 20 packages

# apk add openblas-dev
(1/13) Installing libstdc++ (10.2.1_pre1-r1)
(2/13) Installing binutils (2.35.1-r1)
(3/13) Installing libgomp (10.2.1_pre1-r1)
(4/13) Installing libatomic (10.2.1_pre1-r1)
(5/13) Installing libgphobos (10.2.1_pre1-r1)
(6/13) Installing gmp (6.2.0-r1)
(7/13) Installing isl22 (0.22-r0)
(8/13) Installing mpfr4 (4.1.0-r0)
(9/13) Installing mpc1 (1.2.0-r0)
(10/13) Installing gcc (10.2.1_pre1-r1)
(11/13) Installing gfortran (10.2.1_pre1-r1)
(12/13) Installing openblas (0.3.12-r0)
(13/13) Installing openblas-dev (0.3.12-r0)
Executing busybox-1.31.1-r14.trigger
OK: 153 MiB in 33 packages

# gcc --version
gcc (Alpine 10.2.1_pre1) 10.2.1 20201203
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# apk add cmake
(1/16) Installing libacl (2.2.53-r0)
(2/16) Installing libbz2 (1.0.8-r1)
(3/16) Installing expat (2.2.10-r0)
(4/16) Installing lz4-libs (1.9.2-r0)
(5/16) Installing xz-libs (5.2.5-r0)
(6/16) Installing zstd-libs (1.4.5-r2)
(7/16) Installing libarchive (3.5.0-r0)
(8/16) Installing ca-certificates (20191127-r5)
(9/16) Installing brotli-libs (1.0.9-r2)
(10/16) Installing nghttp2-libs (1.42.0-r0)
(11/16) Installing libcurl (7.73.0-r0)
(12/16) Installing ncurses-terminfo-base (6.2_p20201205-r0)
(13/16) Installing ncurses-libs (6.2_p20201205-r0)
(14/16) Installing rhash-libs (1.4.0-r0)
(15/16) Installing libuv (1.40.0-r0)
(16/16) Installing cmake (3.18.4-r1)
Executing busybox-1.31.1-r14.trigger
Executing ca-certificates-20191127-r5.trigger
OK: 199 MiB in 49 packages
a16bitsysop commented 3 years ago

Did you download apk tools from the edge repo? eg: http://uk.alpinelinux.org/alpine/edge/main/aarch64/apk-tools-static-2.12.0-r2.apk

grisuthedragon commented 3 years ago

Having the http://dl-cdn.alpinelinux.org/alpine/edge/community line inside my repositories file it work. So now I search for the bug.

a16bitsysop commented 3 years ago

Great

grisuthedragon commented 3 years ago

I created an updated version, can you try it? ( see tag v1.1.4)

a16bitsysop commented 3 years ago

Yes that built locally thanks and ran all the tests, have created a merge request to check on builders and update: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/15634

The builders must be busy as aarch64 is waiting

a16bitsysop commented 3 years ago

They all built and tested successfully on the builders as well, thanks.