我正在尝试设置一个环境来支持群集上的探索性数据分析.根据对该项目的初步调查,我的目标是使用Scala/Spark和Amazon EMR来配置群集.
目前我只想尝试一些基本的例子,以确认我已经正确配置了所有内容.我遇到的问题是我没有看到我期望从亚马逊机器实例上的Atlas BLAS库获得的性能.
下面是我简单基准测试的代码片段.它只是一个方形矩阵乘法,然后是短脂肪乘法和高瘦乘法,以产生一个可以打印的小矩阵(我想确保Scala不会因为懒惰的评估而跳过计算的任何部分).
我正在使用Breeze进行线性代数库和netlib-java来拉入BLAS/LAPACK的本地本机库
import breeze.linalg.{DenseMatrix, DenseVector}
import org.apache.spark.annotation.DeveloperApi
import org.apache.spark.rdd.RDD
import org.apache.spark.{Partition, SparkContext, TaskContext}
import org.apache.spark.SparkConf
import com.github.fommil.netlib.BLAS.{getInstance => blas}
import scala.reflect.ClassTag
object App {
def NaiveMultiplication(n: Int) : Unit = {
val vl = java.text.NumberFormat.getIntegerInstance.format(n)
println(f"Naive Multipication with vector length " + vl)
println(blas.getClass().getName())
val sm: DenseMatrix[Double] = DenseMatrix.rand(n, n)
val a: DenseMatrix[Double] = DenseMatrix.rand(2,n)
val b: DenseMatrix[Double] = DenseMatrix.rand(n,3)
val c: DenseMatrix[Double] = sm * sm
val cNormal: DenseMatrix[Double] = (a * c) * b …Run Code Online (Sandbox Code Playgroud) 我正在使用 jBlas,它需要 libgfortran3 并告诉我从以下位置安装它:
sudo apt-get install libgfortran3
Run Code Online (Sandbox Code Playgroud)
但我使用的是 Lubuntu 20.04,它使用与 Ubuntu 20.04 相同的软件包。我在这里找不到该包 https://packages.ubuntu.com/search?keywords=libgfortran3
所以我该怎么做?
jblas ×2
amazon-ec2 ×1
amazon-emr ×1
apache-spark ×1
blas ×1
java ×1
scala-breeze ×1
ubuntu ×1
ubuntu-20.04 ×1