ML任务不是并行运行的

时间:2017-05-09 10:54:15

标签: apache-spark apache-spark-ml

已获取更多详细信息

我正在测试分类器的参数,并且对于SVM有大约3k参数组合,对于MLP有大约3k参数组合。因此,我想并行运行测试以简化结果。

我有一个24核/ 48线程和128GB RAM的服务器。为了并行放置各种作业,我已经尝试过使用多个worker和多个执行器。我甚至使用过GNU parallel。但我总是得到顺序结果,即在我的结果文件夹中,我可以看到只有一个分类器输出结果,生成结果所需的时间与顺序轮廓匹配。

我尝试多次提交相同的jar(使用def main(args: Array[String]): Unit = { spark = SparkSession.builder().appName("foo").getOrCreate() sparkContext = spark.sparkContext //read properties //initiate classfier //cross validation procedures //write results spark.stop() } ),每个都测试不同的参数;我尝试将所有6k种不同的命令组合生成到文件中,然后将其传递给gnu并行,什么也没有。除了添加更多执行程序和更改每个执行程序可用的资源外,我使用标准的spark设置是每次下载使用hadoop预先构建的spark。

正如我在文档中所读到的,每次执行都应该使用相同的spark上下文。这是对的吗?

为什么我的测试没有并行性?什么是工人,执行者和资源的理想组合?

编辑2 将调度程序更改为FAIR,将发布有关此更改的结果

编辑3 公平的调度程序没有区别

伪代码

FOUNDATION_EXPORT NSLocaleKey const NSLocaleTemperatureUnit;

0 个答案:

没有答案