Optimized numeric libraries are prone to getting slightly different results, which can trip up the checks. Howver, this case seems to be one of not passing NaN values properly:
What should happen is this > a <- matrix(NaN, 3, 3,, list(one=1:3, two=letters[1:3])) > b <- cbind(1:3, NA) > solve(a,b) [,1] [,2] a NaN NA b NaN NA c NaN NA > a two one a b c 1 NaN NaN NaN 2 NaN NaN NaN 3 NaN NaN NaN > but somewhere along the way, the computations are creating a 0 out of the NaN in the coefficient matrix. This look like dangerous behaviour that R cannot support. -pd > On 21 Jan 2025, at 14:42 , Christian Tuma <t...@zib.de> wrote: > > Hello, > > We are running an AMD-Genoa compute cluster. For this system I compiled > R-4.4.2 configured and linked against AMD Optimizing CPU Libraries (AOCL) > downloaded from > > https://www.amd.com/en/developer/aocl.html > > When running the R test suite (make check), I get this error: > > $ cat tests/lapack.Rout.fail > ... > > ## ------- tests of non-finite values ----------------- > > > > a <- matrix(NaN, 3, 3,, list(one=1:3, two=letters[1:3])) > > b <- cbind(1:3, NA) > > dimnames(b) <- list(One=4:6, Two=11:12) > > bb <- 1:3; names(bb) <- 11:12 > > ## gave error with LAPACK 3.11.0 > > ## names(dimnames(.)), ("two", "Two") are lost {FIXME?}: > > ## IGNORE_RDIFF_BEGIN > > stopifnot(is.na(print(solve(a, b )))) # is.na(): NA *or* NaN > Error in solve.default(a, b) : > Lapack routine dgesv: system is exactly singular: U[1,1] = 0 > Calls: stopifnot -> print -> solve -> solve.default > Execution halted > > Now I wonder whether AOCL are supported by R or not. Did somebody already use > this combination successfully? Is this test suite error a serious problem? Is > a workaround available? > > This is my R installation configuration line: > > $ CC=gcc CFLAGS="-O3 -march=znver4" \ > CXX=g++ CXXFLAGS="-O3 -march=znver4" \ > FC=gfortran FCFLAGS="-O3 -march=znver4" \ > LDFLAGS="-Wl,-rpath=$GCC_PATH/lib64" \ > ../configure \ > --with-blas="-L/usr/lib64 -Wl,-rpath=$AOCL_ROOT/lib_LP64 > -L$AOCL_ROOT/lib_LP64 -lblis -lflame" \ > --with-lapack \ > --enable-year2038 > > I am using the GCC (13.3.0). > > > sessionInfo() > R version 4.4.2 (2024-10-31) > Platform: x86_64-pc-linux-gnu > Running under: Rocky Linux 9.4 (Blue Onyx) > > Matrix products: default > BLAS: /sw/numerics/aocl/5.0.0/gcc/lib_LP64/libblis.so.5.0.0 > LAPACK: /sw/numerics/aocl/5.0.0/gcc/lib_LP64/libflame.so; LAPACK version > 3.11.0 > ... > > > With Intel MKL instead of AOCL the test suite passes without errors. But this > is an AMD system, so here I tend to prefer AOCL over MKL. > > Any ideas? Thank you. > > > Best wishes, > Christian > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel