I was looking into BLAS.scala routines for MLlib’s vectors and matrices. It looks like Spark uses the F2jblas for level 1 routines.
// For level-1 routines, we use Java implementation.
private def f2jBLAS: NetlibBLAS = {
if (_f2jBLAS == null) {
_f2jBLAS = new F2jBLAS
}
_f2jBLAS
}
Here are some great resources about different BLAS implementations
http://www.spark.tc/blas-libraries-in-mllib/
BLAS routines (Level 1,2,3)
http://www.netlib.org/blas/#_blas_routines