tech-pkg archive

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

Requesting review of new interchangeable BLAS components

As some of you may recall, Thomas Orgis has developed a new set of BLAS/LAPACK packages and an mk file that allow both users and package maintainers to interchange BLAS/LAPACK implementations for any package.

The system currently supports Netlib BLAS and LAPACK, CBLAS, LAPACKE, and OpenBLAS single-threaded, OpenMP and pthreads.  Netlib is the reference implementation and the only one currently supported by pkgsrc.  OpenBLAS and some proprietary implementations like Intel's MKL can be an order of magnitude faster in some settings, so this is an important step forward for pkgsrc in scientific computing.  All implementations are meant to be highly compatible, though occasional regressions are inevitable.  The user and maintainer control knobs provided by this system offer an easy workaround for any issues that might arise with a particular implementation.

This has been years in the making, has undergone extensive discussion about optimal design, and has been extensively tested in the field. We believe the system is ready for commit and would like to ask for any final comments before we proceed.

My plan for the initial commit is as follows:

1. Add mk/ from wip/mk.
2. Upgrade math/blas and math/lapack, the current Netlib packages, from wip
3. Revbump all dependent packages and modify their .includes to use mk/ instead of math/blas/ or math/lapack/

So at this time, we only need immediate review of wip/mk/, wip/blas, and wip/lapack.

After completing these commits and verifying that everything is in order, we will add the new packages wip/cblas, wip/lapacke, wip/openblas, wip-openblas_openmp, and wip/openblas_pthread.  This will open the door to far better performance of scientific applications and new packages that require the C interface provided by cblas/lapacke.  ( BLAS/LAPACK are originally written in Fortran. )



Home | Main Index | Thread Index | Old Index