首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多节点Spark集群上的分布式Tensorflow训练

多节点Spark集群上的分布式Tensorflow训练
EN

Stack Overflow用户
提问于 2020-09-22 19:53:19
回答 1查看 129关注 0票数 0

我目前有一个本地spark集群3.0,它由3台机器组成。两台机器有2个NVIDIA GPU,一台机器是没有NVIDIA GPU的spark客户端主服务器。当我创建spark集群时,我看到它将GPU识别为仪表板上的资源。我正在尝试运行为Spark Distributor Tensorflow page发布的示例。当我创建spark上下文时:

代码语言:javascript
复制
sc = pyspark.SparkContext(master = "spark://192.168.1.113:7077", 
                         appName="Spark GPU"
                          )

我看到GPU正被用作资源执行器。

但是,当我运行以下命令时:

代码语言:javascript
复制
MirroredStrategyRunner(num_slots=8).run(train)

它会导致以下错误:

代码语言:javascript
复制
raise ValueError(f'Found GPU addresses {addresses} which '
ValueError: Found GPU addresses [''] which are not all in the correct format for CUDA_VISIBLE_DEVICES, which requires integers with no zero padding.

我不确定为什么它不能检测到远程机器上的GPU。

EN

回答 1

Stack Overflow用户

发布于 2021-06-08 17:08:53

根据Spark TensorFlow分销商MirroredStrategyRunner文档字符串:

num_slots:参与分布式训练的GPU或仅CPU火花任务的总数

由于您正在进行GPU训练,并且希望在Spark workers中使用4个GPU训练您的模型,因此您应该这样做:

代码语言:javascript
复制
MirroredStrategyRunner(num_slots=4).run(train)

理想情况下,在这个用例中,Spark GPU调度可能会在您产生的spark任务没有获得其请求的资源时给您一个错误,但目前情况并非如此。确保正确设置Spark集群confs以支持GPU调度,示例如下:

代码语言:javascript
复制
from pyspark.sql import SparkSession
from spark_tensorflow_distributor import MirroredStrategyRunner

spark = (SparkSession.builder.appName("tf")
  .config("spark.dynamicAllocation.enabled", "false")
  .config("spark.executor.resource.gpu.amount", "1")
  .config("spark.executor.cores", "15")
  .config("spark.task.cpus", "15")
  .config("spark.task.resource.gpu.amount", "1")
  .config("spark.executor.resource.gpu.discoveryScript", "/usr/lib/spark/scripts/gpu/getGpusResources.sh")
  .config("spark.driver.resource.gpu.discoveryScript", "/usr/lib/spark/scripts/gpu/getGpusResources.sh")
  .config("spark.driver.resource.gpu.amount", "1")         
  .getOrCreate())

# use MirroredStrategy Runner

此示例来自https://cloud.google.com/blog/products/data-analytics/faster-machine-learning-dataproc-new-initialization-action

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64009192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档