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

Re: RFC: threading-aware virtual BLAS/LAPACK



(forwarding my mail from -devel to -science to RFC)
Hi fellow devs,

I've suddenly got some inspiration on this problem, which resulted in a
much better solution for the problem the original proposal confronts.

I like this overhauled solution.

No extra shared libs, no extra SONAMEs. No extra burden for the
BLAS/LAPACK maintainers. Minor patching work for maintainers with
special demands.

--- New solution ---

1. BLAS providers create new directory under
     /usr/lib/<triplet>/libblas-<threading>/
   and put another copy of their alternative symlinks into the
   directories.

   e.g. libopenblas-pthread provides the extra symlink:
     /usr/lib/<triplet>/libblas-pthread/libblas.so{,.3}

2. Maintainers of reverse dependencies, when they have specific
   requirement on the threading implemetation, add the
     /usr/lib/<triplet>/libblas-<threading>/
   directory to the RPATH property of the resulting ELF binaries.
   In that way the programs can use the BLAS implementation without
   worring about the uncertainty of the alternatives configuration.

   Other packages insensitive to the threading implementations will
   use the libblas.so.3 in the global scope:
     /usr/lib/<triplet>/libblas.so.3 (a symlink)

--- end solution ---

That's it, much simpler and much more efficient than my first version.

Comments please?

@Edd, does it look like a decent solution for the threading trouble of R-4.0.0?


Reply to: