On 18 Apr 2019, at 07:53 , Benjamin Christoffersen <boennecd at gmail.com> wrote:
Thanks for the quick reply. First a correction. I meant Ubuntu 18.04.2
of course, sorry.
In short, you need to look more closely.
Is there a way to tell which BLAS and LAPACK is used on the Debian
machines on CRAN? I checked the "CRAN Package Check Flavors" page but
there is no information there regarding BLAS or LAPACK.
I have tried to test the package with Atlas, OpenBlas, and the
reference implementation with gcc 7.3.0 and 8.2.0. It all worked
without any errors.
It seems that gcc has changed since January from version 8.2.0 and
7.3.0 to 8.3.0 on the tests on CRAN. Further, it is now Debian version
8.3.0-2 instead of Debian 8.2.0-7 and Debian 7.3.0-29. I do not know
whether this can matter.
Sincerely yours,
Benjamin Christoffersen
Den ons. 17. apr. 2019 kl. 11.38 skrev Dirk Eddelbuettel <edd at debian.org>:
On 17 April 2019 at 11:06, Benjamin Christoffersen wrote:
| Since the start of April, I have gotten some errors on the Debian
| machines on the check on CRAN for my package dynamichazard. The places
| where I get the errors seems to come down to LAPACK's dtrtri routine.
| I have tried to reproduce the error on Debian 18.04.2 with clang 8.0.0
| but I cannot reproduce them.
|
| The errors came suddenly and the tests passed before. I see similar
| issues (I think) in the following package:
| - RcppHMM
| - BNPmix
| - themetagenomics
| - tidytext
| - stm
|
| Any ideas what the error may be? Here is the relevant code parts for
| one of the failed tests:
| https://github.com/boennecd/dynamichazard/blob/c42105feea5e2d16a8d461b7c606245a743b3e0a/src/for_tests.cpp#L216
| https://github.com/boennecd/dynamichazard/blob/c42105feea5e2d16a8d461b7c606245a743b3e0a/src/BLAS_LAPACK/arma_BLAS_LAPACK.cpp#L26
| https://github.com/boennecd/dynamichazard/blob/c42105feea5e2d16a8d461b7c606245a743b3e0a/src/BLAS_LAPACK/R_BLAS_LAPACK.cpp#L67
There are four or more different sources of LAPACK and BLAS on Debian as we
(since the late 1990s !!) utilize the nature of the _interface_ allowing
different packages to fill in.
So there could be
i) the R internal source with a partial library -- Fedora/CentOS use this
but the Debian distro builds do not
ii) "reference BLAS", external, unoptimized
iii) OpenBLAS, the successor to Goto, parallel via multithreading
iv) Atlas, "tuned" but not mulitthreading
and more as eg Intel MKL via a quick script (see my blog).
As a historical aside, and way-back-when, ii) earned us year's long growling
from the direction of Oxfordshire because some early/old versions of LAPACK
had bugs. But it cuts both ways: the external versions tend to be complete
whereas what R ships with internally contains a subset -- and at least one
(early) user of RcppArmadillo was bitten when R built from sources using
defaults would not have the complex operations he needed. To R Core's credit
these missing functions got filled in over the years.
In short, you need to look more closely. On the Ubuntu 18.10 machine that I
type this on, sessionInfo()'s second paragraph has
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.3.3.so
which IIRC is also the default (via some Debian/Ubuntu internal 'ordering' of
the available alternatives).
Hth, Dirk
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org