On Wed, Jan 22, 2020 at 4:17 PM Isuru Fernando <isu...@gmail.com> wrote: > > > maybe they split openblas.so into separate sections for an unclear to me > > reason, but most applications I know uses cblas, blas and lapack, so they > > need to link them all anyway. > > True, but in sage you are copying `openblas.pc` to `cblas.pc` and `lapack.pc` > which is wrong. `openblas.pc` should only be expected to provide blas.
this is system-dependent. Debian and Fedora have no libcblas and no cblas.pc, cblas is provided by openblas. Some *BSD systems have libcblas conflcting with libopenblas. On Arch, does cblas.pc exist? > > A solution would be to check that `blas.pc`, `cblas.pc`, `lapack.pc` are > already on the system and if not copy `openblas.pc` to the three names. > > Isuru > > On Wed, Jan 22, 2020 at 10:14 AM Isuru Fernando <isu...@gmail.com> wrote: >> >> > errors we see here, regarding absence of certain openmp functions in >> > cblas, seem to indicate that cblas on Arch does not come from openblas. >> > perhaps what we see are reference cblas and blas from openblas installed >> > at the same time, in error. >> >> Can you please explain more? As I said earlier, it doesn't matter where >> CBLAS is coming from. I checked in Arch linux and cblas is linked to >> openblas. >> >> [root@50586643ff22 /]# ldd /usr/lib/libcblas.so.3 >> linux-vdso.so.1 (0x00007ffd2f7bb000) >> libblas.so.3 => /usr/lib/libblas.so.3 (0x00007f848f079000) >> libc.so.6 => /usr/lib/libc.so.6 (0x00007f848eeb2000) >> libm.so.6 => /usr/lib/libm.so.6 (0x00007f848ed6c000) >> libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f848ed4a000) >> libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007f848ed11000) >> /usr/lib64/ld-linux-x86-64.so.2 (0x00007f84902dc000) >> libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f848ed0c000) >> >> [root@50586643ff22 /]# ls -al /usr/lib/libblas.so.3 >> lrwxrwxrwx 1 root root 22 Aug 20 10:35 /usr/lib/libblas.so.3 -> >> libopenblasp-r0.3.7.so >> >> >> Isuru >> >> On Wed, Jan 22, 2020 at 10:09 AM Dima Pasechnik <dimp...@gmail.com> wrote: >>> >>> >>> >>> On Wed, 22 Jan 2020, 15:59 Isuru Fernando, <isu...@gmail.com> wrote: >>>> >>>> > But Arch does not do this, it instead provides dog-slow CBLAS and >>>> LAPACK, built >>>> from another (reference, i.e. no assembler, no optimisation) >>>> implementation. >>>> >>>> This is simply not true. CBLAS's performance does not depend on which >>>> implementation it comes from. CBLAS's performance depends on the >>>> underlying BLAS implementation and on ArchLinux, when OpenBLAS is >>>> installed, CBLAS uses OpenBLAS as the underlying BLAS implementation. In >>>> fact, OpenBLAS uses the CBLAS code from Netlib's reference implementation. >>> >>> >>> errors we see here, regarding absence of certain openmp functions in cblas, >>> seem to indicate that cblas on Arch does not come from openblas. perhaps >>> what we see are reference cblas and blas from openblas installed at the >>> same time, in error. >>> >>> maybe they split openblas.so into separate sections for an unclear to me >>> reason, but most applications I know uses cblas, blas and lapack, so they >>> need to link them all anyway. >>> >>> >>>> >>>> As for LAPACK, in OpenBLAS, they have implemented a handful of functions >>>> to use OpenBLAS internals to make it parallel, but most of the LAPACK >>>> functions are from Netlib's Reference implementation. So, when ArchLinux >>>> is using LAPACK from netlib, they are losing out on only a few LAPACK >>>> functions. >>>> >>>> Isuru >>>> >>>> On Wed, Jan 22, 2020 at 9:27 AM Dima Pasechnik <dimp...@gmail.com> wrote: >>>>> >>>>> >>>>> >>>>> On Wed, 22 Jan 2020, 15:12 Vincent Delecroix, <20100.delecr...@gmail.com> >>>>> wrote: >>>>>> >>>>>> Le 22/01/2020 à 15:41, Dima Pasechnik a écrit : >>>>>> > On Wed, Jan 22, 2020 at 2:31 PM Vincent Delecroix >>>>>> > <20100.delecr...@gmail.com> wrote: >>>>>> >> >>>>>> >> I had the same annoying trouble... Is it really a bug in arch? I don't >>>>>> >> find anywhere where libopenblas is supposed to provide the LAPACK >>>>>> >> interface. To me it is just true for SageMath and false for Archlinux. >>>>>> > >>>>>> > well, a "bug", in the sense that their openblas configuration just >>>>>> > does not make any sense, >>>>>> > because if you install a highly optimised BLAS implementation, which >>>>>> > can also >>>>>> > provided a highly optimised CBLAS and LAPACK, in a sane world you'd >>>>>> > install them >>>>>> > too. But Arch does not do this, it instead provides dog-slow CBLAS and >>>>>> > LAPACK, built >>>>>> > from another (reference, i.e. no assembler, no optimisation) >>>>>> > implementation. >>>>>> > This causes Sage's logic, which expects that openblas will also >>>>>> > provide CBLAS and LAPACK, to fail. >>>>>> > >>>>>> > Yes, it is possible to make tests to detect this silly setup, but I >>>>>> > think that everyone's time >>>>>> > is much better spent if Arch provided a full build of openblas, with >>>>>> > CBLAS and LAPACK, >>>>>> > instead. >>>>>> >>>>>> Hence there are two bugs >>>>>> >>>>>> * a "logical" bug in archlinux that provides a slow lapack for >>>>>> (apparently) no good reason >>>>>> >>>>>> * a structural bug in SageMath that assumes that openblas does >>>>>> install the LAPACK interface >>>>>> >>>>>> >>>>>> I tend to agree that the resolution of any of these two would solve >>>>>> the compilation. But in an ideal world we would just solve the two. >>>>> >>>>> >>>>> a meaningful resolution of this would be to test openblas for lapack and >>>>> cblas capacities. >>>>> >>>>> this is relatively easy, and would result in openblas on Arch being built >>>>> by Sage. >>>>> >>>>> as far as expanding this to other implementations of blas/lapack, >>>>> it is harder. >>>>>> >>>>>> >>>>>> >>>>>> >> >>>>>> >> Le 13/01/2020 à 11:44, Dima Pasechnik a écrit : >>>>>> >>> On Sat, Jan 11, 2020 at 11:35 AM arojas <nqn1...@gmail.com> wrote: >>>>>> >>>> >>>>>> >>>> El sábado, 11 de enero de 2020, 11:23:32 (UTC+1), Dima Pasechnik >>>>>> >>>> escribió: >>>>>> >>>>> >>>>>> >>>>> >>>>>> >>>>> >>>>>> >>>>> On Sat, 11 Jan 2020, 10:19 arojas, <nqn...@gmail.com> wrote: >>>>>> >>>>>> >>>>>> >>>>>> I suspect this may be due to our openblas package only providing >>>>>> >>>>>> libblas.so (not libcblas.so or liblapack.so, which in our case >>>>>> >>>>>> come from the netlib blas). >>>>>> >>>>> >>>>>> >>>>> >>>>>> >>>>> Are you saying that your libopenblas.so does not provide >>>>>> >>>>> everything that is in openblas by default? >>>>>> >>>>> >>>>>> >>>>> This is largely defeating its purpose. >>>>>> >>>>> Sage's openblas does provide the cblas and lapack capabilities. >>>>>> >>>> >>>>>> >>>> >>>>>> >>>> In that case, openblas' spkg-configure should check whether >>>>>> >>>> cblas symbols are provided by the system openblas, and if not it >>>>>> >>>> should compile sage's one. It shouldn't unconditionally assume that >>>>>> >>>> that's always the case. >>>>>> >>> >>>>>> >>> I maintain that it's a bug in Arch, that libopenblas cannot be used >>>>>> >>> as >>>>>> >>> a replacement of cblas and lapack, for it defeats its purpose. >>>>>> >>> Most uses of BLAS routines are either via LAPACK, or from C/C++, via >>>>>> >>> cblas. >>>>>> >>> >>>>>> >>> >>>>>> >>> >>>>>> >>>> >>>>>> >>>> -- >>>>>> >>>> You received this message because you are subscribed to the Google >>>>>> >>>> Groups "sage-devel" group. >>>>>> >>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> >>>> send an email to sage-devel+unsubscr...@googlegroups.com. >>>>>> >>>> To view this discussion on the web visit >>>>>> >>>> https://groups.google.com/d/msgid/sage-devel/a1516e56-ab25-410e-be0f-75a7a6713466%40googlegroups.com. >>>>>> >>> >>>>>> >> >>>>>> >> -- >>>>>> >> You received this message because you are subscribed to the Google >>>>>> >> Groups "sage-devel" group. >>>>>> >> To unsubscribe from this group and stop receiving emails from it, >>>>>> >> send an email to sage-devel+unsubscr...@googlegroups.com. >>>>>> >> To view this discussion on the web visit >>>>>> >> https://groups.google.com/d/msgid/sage-devel/dbf38073-170b-4c7d-63b9-d4429a8794e2%40gmail.com. >>>>>> > >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "sage-devel" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>>> an email to sage-devel+unsubscr...@googlegroups.com. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/sage-devel/e3ad609d-8d21-bb10-2876-367fdf1b7e24%40gmail.com. >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "sage-devel" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send an >>>>> email to sage-devel+unsubscr...@googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/sage-devel/CAAWYfq3p7x9KmwHLmhjOtuoy_3PdsohHN6RJ0fp0Bzxv-wHODQ%40mail.gmail.com. >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "sage-devel" group. >>>> To unsubscribe from this group and stop receiving emails from it, send an >>>> email to sage-devel+unsubscr...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/sage-devel/CA%2B01voO3C4pdc5gbU02KzhR1DuzZ0Gwv2n6CoSukODeEqFfEjQ%40mail.gmail.com. >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "sage-devel" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to sage-devel+unsubscr...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/sage-devel/CAAWYfq1qxH7SUEWy%2BP3CQ_WeCimK_ByX3Q_HNz4Li%2BvwZCznYA%40mail.gmail.com. > > -- > You received this message because you are subscribed to the Google Groups > "sage-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sage-devel+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sage-devel/CA%2B01voO-GZJ9gSgsQ-N4stwfkvonWz2aDU%2Bcpv6ViJ8eN%3D0wNw%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/CAAWYfq3D4YGM2HR7SORfjDFhkjQ%3Dm1Jn4CsEwmioF-18poxRdQ%40mail.gmail.com.