Re: Single-threaded OpenBLAS is not thread-safe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 27 May 2020 12:29:36 +0200
Iñaki Ucar <iucar@xxxxxxxxxxxxxxxxx> wrote:
> Hi,
> 
> I wanted to bring some attention to this in devel, not only to
> openblas' maintainer (in CC), because there have been some discussions
> around BLAS/LAPACK in the past here.
> 
> As Dave Love pointed out in a previous discussion, generally,
> parallelization is made at the top level and then you simply call a
> single-threaded BLAS/LAPACK implementation. But as it turns out,
> openblas is not thread-safe in such a scenario since v0.3.7 at least.
> To ensure thread-safety, we need to build single-threaded openblas
> with USE_LOCKING=1 [1] (which we don't do now, and we should,
> especially if we intend to make this implementation a system-wide
> default [2]).

The correct case is to use the OpenMP flavor of OpenBLAS to avoid these
issues. If you use the OpenMP library in a sequential program, the BLAS
runs in parallel, and if you use the OpenMP library in an OpenMP
parallel program the BLAS runs either sequentally (within
already-parallel regions) or in parallel (within sequential regions).

> So it's clear that things are failing out there, and USE_LOCKING=1 is
> a sensible default that we should apply. I didn't find though what's
> the performance penalty of setting such a flag.

I've toggled USE_LOCKING=1 in openblas-0.3.9-3.

> But if that's noticeable, then this is another argument in favour of
> providing a proper mechanism for the user to switch the
> implementation, as e.g. Debian does.

Debian's mechanism for switching the implementations is improper, due
to reasons already discussed on this list.
-- 
Susi Lehtola
Fedora Project Contributor
jussilehtola@xxxxxxxxxxxxxxxxx
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux