I agree that the "R Installation and Administration" guide statement about FlexiBLAS needs an update. Standard R in CentOS Stream 9, which is now downstream from Fedora, gives the following result for Matrix products in sessionInfo():> sessionInfo()R version 4.3.1 (2023-06-16) Platform: x86_64-redhat-linux-gnu (64-bit) Running under: CentOS Stream 9 Matrix products: default BLAS/LAPACK: FlexiBLAS OPENBLAS-OPENMP; LAPACK version 3.9.0 ? So OpenBLAS compiled with OpenMP is the default. FlexiBLAS (via the flexiblas package) is my favorite way to manage core use in multithreaded BLAS computations. It is also the default in the EasyBuild foss compiler toolchain for HPC clusters: https://docs.easybuild.io/common-toolchains/ What would be a good way to suggest or construct an update? Best regards, George> Date: Wed, 27 Sep 2023 15:14:43 +0200 > From: =?UTF-8?Q?I=C3=B1aki_Ucar?= <iucar at fedoraproject.org> > To: "r-devel at r-project.org" <R-devel at r-project.org> > Subject: [Rd] About FlexiBLAS in the R-admin docs > Message-ID: > <CALEXWq2x9gygnxt6S906BkQHd139CP783bTDQC4wmeM-uKuW3g at mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Hi, > > Not sure if this is the right place for this. The "R Installation and > Administration" guide states: > >> Apparently undocumented: FlexiBLAS on Fedora provides a complete LAPACK, but not the enhanced routines from ATLAS or OpenBLAS. > > I'm not sure what this means. FlexiBLAS does provide 100% of BLAS and > LAPACK, and if the active backend (say, OpenBLAS) implements an > enhanced LAPACK routine, then the call is redirected to the backend. > If the user switches to another backend and that routine is not > available there, then the original LAPACK routine is dispatched > instead. > > Best, > -- > I?aki ?car >[[alternative HTML version deleted]]
>>>>> George Ostrouchov >>>>> on Wed, 11 Oct 2023 17:12:47 -0400 writes:> I agree that the "R Installation and Administration" guide statement about FlexiBLAS needs an update. Standard R in CentOS Stream 9, which is now downstream from Fedora, gives the following result for Matrix products in sessionInfo(): >> sessionInfo() > R version 4.3.1 (2023-06-16) > Platform: x86_64-redhat-linux-gnu (64-bit) > Running under: CentOS Stream 9 > Matrix products: default > BLAS/LAPACK: FlexiBLAS OPENBLAS-OPENMP; LAPACK version 3.9.0 > ? Note that I also am an *occasional* happy user of FlexiBLAS (the Fedora package *and* the corresponding CRAN package 'flexiblas'), using regular Fedora Linux, *and* am happy to give public thanks for both to I?aki ?car (and whoever has helped with the project). > So OpenBLAS compiled with OpenMP is the default. FlexiBLAS (via the flexiblas package) is my favorite way to manage core use in multithreaded BLAS computations. It is also the default in the EasyBuild foss compiler toolchain for HPC clusters: https://docs.easybuild.io/common-toolchains/ > What would be a good way to suggest or construct an update? > Best regards, > George Thank you, George, for the offering of an update; to answer the question Create a patch to the *source* of that manual which is written in "texinfo". It is part of R's sources, the latest version hence is always https://svn.r-project.org/R/trunk/doc/manual/R-admin.texi (or "almost always current" at one of its github mirrors ..) Best regards, Martin -- Martin Maechler ETH Zurich and R Core team >> Date: Wed, 27 Sep 2023 15:14:43 +0200 >> From: I?aki Ucar <iucar at fedoraproject.org> >> To: "r-devel at r-project.org" <R-devel at r-project.org> >> Subject: [Rd] About FlexiBLAS in the R-admin docs >> >> Hi, >> >> Not sure if this is the right place for this. The "R Installation and >> Administration" guide states: >> >>> Apparently undocumented: FlexiBLAS on Fedora provides a complete LAPACK, but not the enhanced routines from ATLAS or OpenBLAS. >> >> I'm not sure what this means. FlexiBLAS does provide 100% of BLAS and >> LAPACK, and if the active backend (say, OpenBLAS) implements an >> enhanced LAPACK routine, then the call is redirected to the backend. >> If the user switches to another backend and that routine is not >> available there, then the original LAPACK routine is dispatched >> instead. >> >> Best, >> -- >> I?aki ?car
On 10/11/23 23:12, George Ostrouchov wrote:> I agree that the "R Installation and Administration" guide statement about FlexiBLAS needs an update. Standard R in CentOS Stream 9, which is now downstream from Fedora, gives the following result for Matrix products in sessionInfo(): > >> sessionInfo() > R version 4.3.1 (2023-06-16) > Platform: x86_64-redhat-linux-gnu (64-bit) > Running under: CentOS Stream 9 > > Matrix products: default > BLAS/LAPACK: FlexiBLAS OPENBLAS-OPENMP; LAPACK version 3.9.0 > ? > > So OpenBLAS compiled with OpenMP is the default. FlexiBLAS (via the flexiblas package) is my favorite way to manage core use in multithreaded BLAS computations. It is also the default in the EasyBuild foss compiler toolchain for HPC clusters: https://docs.easybuild.io/common-toolchains/The output of session info is based on that flexiblas is used and on what flexiblas tells R is the backend it uses. R does not attempt to check that optimized LAPACK functions from the backend really end up called via flexiblas, and I don't think it could be realistically checked. But I've checked one case manually in Fedora 38 using Linux perf tool. The following code: S <- toeplitz((10:1)/10) repeat { R <- rWishart(10, 20, S) } uses dpotrf from LAPACK, which is optimized in OpenBLAS and ATLAS and the corresponding optimized implementations really appeared on the sampling profile for me from the backend libraries. The comment from R Admin has been removed now and if anyone runs into the problem (that an optimized LAPACK function is not called from a backend that provides it), it would be best to report it with sufficient detail to flexiblas. Best Tomas> What would be a good way to suggest or construct an update? > > Best regards, > George > > >> Date: Wed, 27 Sep 2023 15:14:43 +0200 >> From: =?UTF-8?Q?I=C3=B1aki_Ucar?= <iucar at fedoraproject.org> >> To: "r-devel at r-project.org" <R-devel at r-project.org> >> Subject: [Rd] About FlexiBLAS in the R-admin docs >> Message-ID: >> <CALEXWq2x9gygnxt6S906BkQHd139CP783bTDQC4wmeM-uKuW3g at mail.gmail.com> >> Content-Type: text/plain; charset="utf-8" >> >> Hi, >> >> Not sure if this is the right place for this. The "R Installation and >> Administration" guide states: >> >>> Apparently undocumented: FlexiBLAS on Fedora provides a complete LAPACK, but not the enhanced routines from ATLAS or OpenBLAS. >> I'm not sure what this means. FlexiBLAS does provide 100% of BLAS and >> LAPACK, and if the active backend (say, OpenBLAS) implements an >> enhanced LAPACK routine, then the call is redirected to the backend. >> If the user switches to another backend and that routine is not >> available there, then the original LAPACK routine is dispatched >> instead. >> >> Best, >> -- >> I?aki ?car >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel