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