[Rd] Installation of R-4.3.1 with intel 2022

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Thu Jun 22 14:34:50 CEST 2023


>>>>> Giuseppe Calò 
>>>>>     on Wed, 21 Jun 2023 13:26:23 +0200 writes:

    > Ok, I’ll reinstall in /juno/opt/sources/R/R-4.3.1-intel21/
    > Other outputs:

    > ************
    > [root using juno-n001][/root]>  tail -n 20 /juno/opt/sources/R/R-4.3.1-intel21/tests/d-p-q-r-tst-2.Rout.fail 

    > 0  1  2  3  4  5  6 
    > 13 22 30 22 10  1  2 
    >> (t2 <- table(rbinom(100, 10*M, pr = 1e-10)) )

    > 0  1  2  3  4  5 
    > 10 35 28 18  4  5 
    >> stopifnot(0:6 %in% names(tt), sum(tt) == 100, sum(t2) == 100) ## no NaN there
    >> ## related qbinom() tests:
    >> k <- 0:32
    >> for(n in c((M+1)/2, M, 2*M, 10*M)) {
    > +     for(pr in c(1e-8, 1e-9, 1e-10)) {
    > +         nDup <- !duplicated( pb <- pbinom(k, n, pr) )
    > +         qb <- qbinom(pb[nDup], n, pr)
    > +         pn1 <- pb[nDup] < if(b64) 1 else 1 - 3*.Machine$double.eps
    > +         stopifnot(k[nDup][pn1] == qb[pn1]) ##^^^^^ fudge needed (Linux 32-b)
    > +     }
    > + }
    > Error: k[nDup][pn1] == qb[pn1] are not all TRUE
    > Execution halted

Ok, thank you, Giuseppe!

>From your .Machine below, indeed b64 is TRUE above

Now, I'd like to get the details: can you please send me (or
make available for  download) the binary file
 "pqBinom_res.rds"

which will result from this:

-------------------------------------------------------------------------

## qbinom() tests:
M <- .Machine$integer.max
k <- 0:32
pqBinom <- function(epsF = 0, details=FALSE, pr = c(e_8=1e-8, e_9=1e-9, e10=1e-10)) {
    lapply(c(M.2 = (M+1)/2, M=M, `2M`=2*M, `10M`=10*M), # 'n'
           function(n)
               lapply(pr, function(pr) {
                   nDup <- !duplicated( pb <- pbinom(k, n, pr) )
                   qb <- qbinom(pb[nDup], n, pr)
                   pn1 <- pb[nDup] < 1 - epsF * .Machine$double.eps
                   ok <- k[nDup][pn1] == qb[pn1]
                   if(details)
                       list(pb=pb, qb=qb, nDup=nDup, ok=ok, epsF=epsF)
                   else ok
               })
           )
}

Dpqb0    <- pqBinom(details=TRUE)
Dpqb.3e  <- pqBinom(3, details=TRUE)

saveRDS(list(M=M, k=k, Dpqb0=Dpqb0, Dpqb.3e=Dpqb.3e),
        file = "pqBinom_res.rds")

-------------------------------------------------------------------------

You may can also reply in public, posting the summary output
you'll get from

pqb0   <- pqBinom()
pqb.3e <- pqBinom(3)
table(unlist(pqb0))
table(unlist(pqb.3e))

In case the 2nd table would show all TRUE also on your platform,
*AND* if you also send the results of  sessionInfo()
{I've also asked you about in the last e-mail !}
we'd already know enough to adapt the test, but I'd be
interested to learn a bit more (via the above *.rds file).   

Thank you for helping to find more about the internal accuracy
achievement on a not-so-common (yet?) platform.

Best,
Martin


    > ************
    > /juno/opt/intel-2021.6.0/R/4.3.1/bin/R

    > R version 4.3.1 (2023-06-16) -- "Beagle Scouts"
    > Copyright (C) 2023 The R Foundation for Statistical Computing
    > Platform: x86_64-pc-linux-gnu (64-bit)

    > R is free software and comes with ABSOLUTELY NO WARRANTY.
    > You are welcome to redistribute it under certain conditions.
    > Type 'license()' or 'licence()' for distribution details.

    > Natural language support but running in an English locale

    > R is a collaborative project with many contributors.
    > Type 'contributors()' for more information and
    > 'citation()' on how to cite R or R packages in publications.

    > Type 'demo()' for some demos, 'help()' for on-line help, or
    > 'help.start()' for an HTML browser interface to help.
    > Type 'q()' to quit R.

    >> str(.Machine)
    > List of 29
    > $ double.eps               : num 2.22e-16
    > $ double.neg.eps           : num 1.11e-16
    > $ double.xmin              : num 2.23e-308
    > $ double.xmax              : num 1.8e+308
    > $ double.base              : int 2
    > $ double.digits            : int 53
    > $ double.rounding          : int 5
    > $ double.guard             : int 0
    > $ double.ulp.digits        : int -52
    > $ double.neg.ulp.digits    : int -53
    > $ double.exponent          : int 11
    > $ double.min.exp           : int -1022
    > $ double.max.exp           : int 1024
    > $ integer.max              : int 2147483647
    > $ sizeof.long              : int 8
    > $ sizeof.longlong          : int 8
    > $ sizeof.longdouble        : int 16
    > $ sizeof.pointer           : int 8
    > $ sizeof.time_t            : int 8
    > $ longdouble.eps           : num 1.08e-19
    > $ longdouble.neg.eps       : num 5.42e-20
    > $ longdouble.digits        : int 64
    > $ longdouble.rounding      : int 5
    > $ longdouble.guard         : int 0
    > $ longdouble.ulp.digits    : int -63
    > $ longdouble.neg.ulp.digits: int -64
    > $ longdouble.exponent      : int 15
    > $ longdouble.min.exp       : int -16382
    > $ longdouble.max.exp       : int 16384

    > Thanks

    >> On 21 Jun 2023, at 12:44, Martin Maechler <maechler using stat.math.ethz.ch> wrote:
    >> 
    >>>>>>> Giuseppe Calò 
    >>>>>>> on Wed, 21 Jun 2023 09:17:14 +0200 writes:
    >> 
    >>> Thanks Tomas,
    >>> With my configure (I follower Admin manual for intel) and deleting  HAVE_MATHERR in config I’m able to perform, configure, make and make install, only make check has this issue:
    >> 
    >>> running code in 'array-subset.R' ... OK
    >>> running code in 'reg-tests-1a.R' ... OK
    >>> running code in 'reg-tests-1b.R' ... OK
    >>> running code in 'reg-tests-1c.R' ... OK
    >>> running code in 'reg-tests-1d.R' ... OK
    >>> running code in 'reg-tests-1e.R' ... OK
    >>> running code in 'reg-tests-2.R' ... OK
    >>> comparing 'reg-tests-2.Rout' to './reg-tests-2.Rout.save' ... OK
    >>> running code in 'reg-examples1.R' ... OK
    >>> running code in 'reg-examples2.R' ... OK
    >>> running code in 'reg-packages.R' ... OK
    >>> running code in 'p-qbeta-strict-tst.R' ... OK
    >>> running code in 'd-p-q-r-tst-2.R' ...make[3]: *** [Makefile.common:117: d-p-q-r-tst-2.Rout] Error 1
    >>> make[3]: Leaving directory '/juno/opt/sources/R/R-4.3.1-intel21/tests'
    >>> make[2]: *** [Makefile.common:320: test-Reg] Error 2
    >>> make[2]: Leaving directory '/juno/opt/sources/R/R-4.3.1-intel21/tests'
    >>> make[1]: *** [Makefile.common:190: test-all-basics] Error 1
    >>> make[1]: Leaving directory '/juno/opt/sources/R/R-4.3.1-intel21/tests'
    >>> make: *** [Makefile:307: check] Error 2
    >> 
    >>> Do you have some suggestion about this error?
    >> 
    >> Only if you tell us more about the resulting
    >> 
    >> d-p-q-r-tst-2.Rout.fail
    >> ^^^^^   file
    >> 
    >> e.g. giving us the last 20 lines or so, e.g. from
    >> tail -n 20 /juno/opt/sources/R/R-4.3.1-intel21/tests/d-p-q-r-tst-2.Rout.fail 
    >> 
    >> Also, in addition to the output of sessionInfo(),  the  output of
    >> 
    >> str(.Machine)
    >> 
    >> maybe interesting.  Once I'd see these, I might have to ask further questions
    >> (possibly off-mailinglist), so it'd be good if you keep the
    >> R "installation" in  '/juno/opt/sources/R/R-4.3.1-intel21/  for
    >> minor "experiments".
    >> 
    >> Best regards,
    >> Martin
    >> 
    >> Martin Maechler
    >> ETH Zurich  and  R Core team
    >> 
    >> 
    >>> Checking MKL on installing R it is:
    >> 
    >>> Matrix products: default
    >>> BLAS/LAPACK: /juno/opt/intel/oneapi_2022.2.0/mkl/2022.1.0/lib/intel64/libmkl_intel_lp64.so.2;  LAPACK version 3.9.0
    >> 
    >>> And 
    >> 
    >>> ldd /juno/opt/intel-2021.6.0/R/4.3.1/lib64/R/lib/libRblas.so| grep mkl
    >>> libmkl_intel_lp64.so.2 => /juno/opt/intel/oneapi_2022.2.0/mkl/2022.1.0/lib/intel64/libmkl_intel_lp64.so.2 (0x00007f01ba508000)
    >>> libmkl_intel_thread.so.2 => /juno/opt/intel/oneapi_2022.2.0/mkl/2022.1.0/lib/intel64/libmkl_intel_thread.so.2 (0x00007f01b6d94000)
    >>> libmkl_core.so.2 => /juno/opt/intel/oneapi_2022.2.0/mkl/2022.1.0/lib/intel64/libmkl_core.so.2 (0x00007f01b29be000)
    >> 
    >>> About you, is R using right mkl? (Oneapi mkl)
    >> 
    >>> Thanks,
    >>> Giuseppe.
    >> 
    >>> ———————————————————————————————————————
    >>> Giuseppe Calò
    >> 
    >>> Fondazione CMCC
    >>> Centro Euro-Mediterraneo sui Cambiamenti Climatici presso Complesso Ecotekne 
    >>> Università del Salento - Strada Prov.le Lecce - Monteroni 73100 Lecce  IT
    >>> http://www.cmcc.it
    >>> https://goo.gl/maps/wtahPDbNVen
    >> 
    >>> mobile: (+39) 3208190020
    >>> email: giuseppe.calo using cmcc.it
    >> 
    >>> Le informazioni contenute in questo messaggio di posta elettronica e negli allegati se presenti sono riservate e confidenziali: ne è vietata la diffusione in qualsiasi modo o forma (GDPR 2016/679).
    >>> Qualora lei non fosse il destinatario del messaggio, la invito a non diffonderlo e ad eliminarlo dandone gentilmente comunicazione al mittente.
    >> 
    >>> The information included in this e-mail and any attachments are confidential and may also be privileged (GDPR 2016/679).
    >>> If you are not the correct recipient, you are kindly requested to notify the sender immediately, to cancel it and not disclose the contents to any other person.
    >> 
    >> 
    >> 
    >> 
    >>>> On 21 Jun 2023, at 09:10, Tomas Kalibera <tomas.kalibera using gmail.com> wrote:
    >>>> 
    >>>> 
    >>>> On 6/20/23 18:47, Giuseppe Calò wrote:
    >>>>> Hi all,
    >>>>> I have the issue:
    >>>>> 
    >>>>> icc -std=c99 -std=gnu11 -I../../src/extra -I../../src/extra/xdr -I. -I../../src/include -I../../src/include  -I/usr/local/include -I../../src/nmath -DHAVE_CONFIG_H   -fopenmp -fpic  -g -O3 -wd188 -ip -mp  -c eval.c -o eval.o
    >>>>> arithmetic.c(66): warning #274: declaration is not visible outside of function
    >>>>> int matherr(struct exception *exc)
    >>>>> ^
    >>>>> 
    >>>>> arithmetic.c(68): error: pointer to incomplete class type is not allowed
    >>>>> switch (exc->type) {
    >>>>> ^
    >>>>> 
    >>>>> arithmetic.c(69): error: identifier "DOMAIN" is undefined
    >>>>> case DOMAIN:
    >>>>> ^
    >>>>> 
    >>>>> arithmetic.c(70): error: identifier "SING" is undefined
    >>>>> case SING:
    >>>>> ^
    >>>>> 
    >>>>> arithmetic.c(73): error: identifier "OVERFLOW" is undefined
    >>>>> case OVERFLOW:
    >>>>> ^
    >>>>> 
    >>>>> arithmetic.c(76): error: identifier "UNDERFLOW" is undefined
    >>>>> case UNDERFLOW:
    >>>>> ^
    >>>>> 
    >>>>> arithmetic.c(77): error: pointer to incomplete class type is not allowed
    exc-> retval = 0.0;
    >>>>> 
    >>>>> icc -std=c99 -std=gnu11 -I../../src/extra -I../../src/extra/xdr -I. -I../../src/include -I../../src/include  -I/usr/local/include -I../../src/nmath -DHAVE_CONFIG_H   -fopenmp -fpic  -g -O3 -wd188 -ip -mp  -c flexiblas.c -o flexiblas.o
    >>>>> icc: command line remark #10148: option '-mp' not supported
    >>>>> compilation aborted for arithmetic.c (code 2)
    >>>>> make[3]: *** [../../Makeconf:129: arithmetic.o] Error 2
    >>>>> make[3]: *** Waiting for unfinished jobs....
    >>>>> icc: command line remark #10148: option '-mp' not supported
    >>>>> make[3]: Leaving directory '/opt/sources/R/R-4.3.1-intel21/src/main'
    >>>>> make[2]: *** [Makefile:140: R] Error 2
    >>>>> make[2]: Leaving directory '/opt/sources/R/R-4.3.1-intel21/src/main'
    >>>>> make[1]: *** [Makefile:28: R] Error 1
    >>>>> make[1]: Leaving directory '/opt/sources/R/R-4.3.1-intel21/src'
    >>>>> make: *** [Makefile:62: R] Error 1
    >>>>> 
    >>>>> with oneapi-2022.1.0/compiler-rt/2022.1.0; oneapi-2022.1.0/mkl/2022.1.0 while building R-4.3.1 on redhat 8.4 glibc2.28-189
    >>>>> 
    >>>>> I followed a workaround proposed:
    >>>>> https://community.intel.com/t5/Intel-C-Compiler/Error-when-compiling-R-from-source-code-ubuntu-18-04/m-p/1176401/thread-id/36575 <https://community.intel.com/t5/Intel-C-Compiler/Error-when-compiling-R-from-source-code-ubuntu-18-04/m-p/1176401/thread-id/36575>
    >>>>> 
    >>>>> Deactivate  HAVE_MATHERR macro in src/include/config.h
    >>>> 
    >>>> Hi Giuseppe,
    >>>> 
    >>>> thanks for the report. Undefining HAVE_MATHERR seems a valid work-around to me, based on reading the thread above and the sources.
    >>>> 
    >>>> We could improve this in R, if keeping this code, at least improve the configure check so that it also tests for the presence of the macros.
    >>>> 
    >>>>> Using this workaroud I get R with:
    >>>>> 
    >>>>> BLAS/LAPACK: /opt/intel/oneapi_2022.2.0/mkl/2022.1.0/lib/intel64/libmkl_intel_lp64.so.2;  LAPACK version 3.9.0
    >>>>> 
    >>>>> is correct?
    >>>>> 
    >>>>> Is these a way to avoid arithmetic issue?
    >>>>> 
    >>>>> My configure is:
    >>>>> 
    >>>>> module load intel-2021.6.0/2021.6.0 oneapi-2022.1.0/mkl
    >>>>> MKL="-L${MKLROOT}/lib/intel64 -lmkl_gf_lp64 -lmkl_core -lmkl_gnu_thread -dl -fopenmp"
    >>>>> export CC="icc -std=c99"
    >>>>> export CFLAGS="-g -O3 -wd188 -ip -mp"
    >>>>> export FC=ifort
    >>>>> export FLAGS="-g -O3 -mp"
    >>>>> export CXX=icpc
    >>>>> export CXXFLAGS="-g -O3 -mp"
    >>>>> SHLIB_CXXLD=icpc
    >>>>> export MKL_INTERFACE_LAYER=GNU,LP64
    >>>>> export MKL_THREADING_LAYER=GNU
    >>>>> ./configure --prefix=/opt/intel-2021.6.0/R/4.3.1 --with-blas="$MKL" --with-lapack  --enable-memory-profiling --enable-BLAS-shlib --enable-R-shlib --enable-R-static-lib --with-pcre2
    >>>> 
    >>>> AFAIK, neither icc nor MKL is regularly tested with R/CRAN packages, so the risk of running into some issues is somewhat higher than for say GCC and the reference BLAS/LAPACK.
    >>>> 
    >>>> Some hints on using icc and MKL can be found in the R Admin manual, https://cran.r-project.org/doc/manuals/r-release/R-admin.html. Unless you have done that already, you might want to check your configuration against those, I didn't spot any obvious issue. If you find any other problem, please report, so that it could be fixed or the hints updated.
    >>>> 
    >>>> Thanks,
    >>>> Tomas
    >>>> 
    >>>>> 
    >>>>> Thanks a lot,
    >>>>> Giuseppe.
    >>>>> 
    >>>>> ———————————————————————————————————————
    >>>>> Giuseppe Calò
    >>>>> 
    >>>>> Fondazione CMCC
    >>>>> Centro Euro-Mediterraneo sui Cambiamenti Climatici presso Complesso Ecotekne
    >>>>> Università del Salento - Strada Prov.le Lecce - Monteroni 73100 Lecce  IT
    >>>>> http://www.cmcc.it <http://www.cmcc.it/>
    >>>>> https://goo.gl/maps/wtahPDbNVen
    >>>>> 
    >>>>> mobile: (+39) 3208190020
    >>>>> email: giuseppe.calo using cmcc.it
    >>>>> 
    >>>>> Le informazioni contenute in questo messaggio di posta elettronica e negli allegati se presenti sono riservate e confidenziali: ne è vietata la diffusione in qualsiasi modo o forma (GDPR 2016/679).
    >>>>> Qualora lei non fosse il destinatario del messaggio, la invito a non diffonderlo e ad eliminarlo dandone gentilmente comunicazione al mittente.
    >>>>> 
    >>>>> The information included in this e-mail and any attachments are confidential and may also be privileged (GDPR 2016/679).
    >>>>> If you are not the correct recipient, you are kindly requested to notify the sender immediately, to cancel it and not disclose the contents to any other person.
    >>>>> 
    >>>>> 
    >>>>> 
    >>>>> 
    >>>>> 
    >>>>> [[alternative HTML version deleted]]
    >>>>> 
    >>>>> ______________________________________________
    >>>>> R-devel using r-project.org mailing list
    >>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
    >> 
    >> 
    >>> [[alternative HTML version deleted]]
    >> 
    >>> ______________________________________________
    >>> R-devel using r-project.org mailing list
    >>> https://stat.ethz.ch/mailman/listinfo/r-devel


    > [[alternative HTML version deleted]]



More information about the R-devel mailing list