pkgsrc-Users archive

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

New BLAS/LAPACK system




To anyone maintaining BLAS/LAPACK-dependent packages:

We have a new system in-place, developed by Thomas Orgis, that allows pkgsrc packages to use any BLAS/LAPACK implementation without modification to the package.

This system will greatly improve the usability of pkgsrc in science by providing flexibility and the superior performance of alternative implementations such as OpenBLAS.

Key points:

- Any pkgsrc package using BLAS/LAPACK should now use

.include "../../mk/blas.buildlink3.mk"

rather than bl3s from individual packages such as math/blas or math/lapack.  mk/blas.buildlink3.mk will provide both BLAS and LAPACK libraries to all packages.  Most implementations use a single library now and even the netlib blas package is little more than a placeholder for backward compatibility.

- Currently supported implementations include Netlib BLAS/LAPACK (the only implementation provided by pkgsrc until now), OpenBLAS single-threaded, pthreads, or openmp (currently in WIP, to be committed soon), and Apple's Accelerate.framework.  Netlib is the default since it is the reference implementation.

- As of this moment, only Netlib packages are committed.  OpenBLAS, cblas, and lapacke are basically finished, currently available in wip, and will be committed soon.

- Pkgsrc users can select one or more BLAS implementations by simply setting PKGSRC_BLAS_TYPES in etc/mk.conf.

- It is still possible to include package bl3s directly, but this is strongly discouraged.  If for some reason a maintainer needs to restrict a package to one or more particular implementations, this can be done by setting BLAS_ACCEPTED in the package Makefile.

- See the comments in mk/blas.buildlink3.mk for details.

All existing dependent packages have been updated and revbumped to use the new system.

Please post any questions or suggestions to this group.

Enjoy!




Home | Main Index | Thread Index | Old Index