On Wed, Jan 22, 2020 at 5:03 PM Isuru Fernando <isu...@gmail.com> wrote:
>
> > On Arch, does cblas.pc exist?
>
> Yes.

Thanks. I wonder what on Arch is the output of

pkg-config --modversion X

for X in [cblas,blas,lapack,openblas]


>
> > this is system-dependent.
>
> Yes, that's why we need to have fallbacks.
>
> Isuru
>
> On Wed, Jan 22, 2020 at 11:00 AM Dima Pasechnik <dimp...@gmail.com> wrote:
>>
>> 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.
>
> --
> 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%2BWkpafvpuUfLmGw8qDZ1qFMwzoA6HFBBBiZWYGdTqpw%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/CAAWYfq1H_8RGBSN5DW25%3Dvf7SE_TJXeFtVpKSQQU%2BRcsDmFQ5w%40mail.gmail.com.

Reply via email to