Spark3.0 preview预览版尝试GPU调用(本地模式不支持GPU)

  Spark3.0 preview预览版可以下载使用,地址:https://archive.apache.org/dist/spark/spark-3.0.0-preview/,pom.xml也可以进行引用,如下:

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>3.0.0-preview</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-launcher -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-launcher_2.12</artifactId>
            <version>3.0.0-preview</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.12</artifactId>
            <version>3.0.0-preview</version>
        </dependency>
    </dependencies>

注意:目前阿里云镜像部分包还没有(2019年11月10日,spark-launcher_2.12下载没有),可以用国外的。

测试代码:

object SparkPi {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession
      .builder
      .appName("Spark Pi")
      .master("local[2]")
      .config("spark.driver.resource.gpu.discoveryScript", "D:\\gpu.bat")
      .config("spark.worker.resource.gpu.discoveryScript", "D:\\gpu.bat")
      .config("spark.driver.resource.gpu.amount", 1)
      .config("spark.executor.resource.gpu.amount", 1)
      .config("spark.worker.resource.gpu.amount", 1)
      .getOrCreate()
    val slices = if (args.length > 0) args(0).toInt else 2
    val n = math.min(100000L * slices, Int.MaxValue).toInt // avoid overflow
    val count = spark.sparkContext.parallelize(1 until n, slices).map { i =>
      val x = random * 2 - 1
      val y = random * 2 - 1
      if (x * x + y * y <= 1) 1 else 0
    }.reduce(_ + _)
    println(s"Pi is roughly ${4.0 * count / (n - 1)}")

    spark.stop()
  }
}

其中,gpu.bat的内容如下:

@echo off
echo {"name": "gpu", "addresses": ["0"]}

运行日志如下:

2019-11-10 00:39:33,429 [main] INFO  [org.apache.spark.SparkContext] - Running Spark version 3.0.0-preview
2019-11-10 00:39:34,915 [main] INFO  [org.apache.spark.resource.ResourceUtils] - ==============================================================
2019-11-10 00:39:34,918 [main] INFO  [org.apache.spark.resource.ResourceUtils] - Resources for spark.driver:
gpu -> [name: gpu, addresses: 0]
2019-11-10 00:39:34,919 [main] INFO  [org.apache.spark.resource.ResourceUtils] - ==============================================================
20

我以为可以成功调用GPU,查看任务管理器里面的GPU显示,并没有发现,最后搜索代码,在"spark-3.0.0-preview\core\src\main\scala\org\apache\spark\scheduler\local\LocalSchedulerBackend.scala"(85,56)显示如下:

  def reviveOffers(): Unit = {
    // local mode doesn‘t support extra resources like GPUs right now
    val offers = IndexedSeq(new WorkerOffer(localExecutorId, localExecutorHostname, freeCores,
      Some(rpcEnv.address.hostPort)))
    for (task <- scheduler.resourceOffers(offers).flatten) {
      freeCores -= scheduler.CPUS_PER_TASK
      executor.launchTask(executorBackend, task)
    }
  }

注释:local mode doesn‘t support extra resources like GPUs right now

本地模式不支持GPU

心一凉,本来打算搭建standalone模式,最后看了一下window的搞不了,Linux的得个虚拟机了,比较笨资源有限,就暂不试了。

原文地址:https://www.cnblogs.com/flowerbirds/p/11828734.html

时间: 2024-10-01 12:43:42

Spark3.0 preview预览版尝试GPU调用(本地模式不支持GPU)的相关文章

[下载] VS 2013 Update 4 &amp; 社群版 (Visual Studio Community) &amp; VS 2015 Preview预览版

这是我的备份,原文请看http://www.dotblogs.com.tw/mis2000lab/archive/2014/11/13/vs2013_update4_community_vs2015_preview_download.aspx [下载] VS 2013 Update 4 & 社群版 (Visual Studio Community) & VS 2015 Preview预览版 Visual Studio 2013 社群版 (VS Community) 简单的说,就是给您开开心

visual studio 2015预览版系统需求

visual studio 2015预览版的系统需求跟visual studio 2013的一样. 支持visual studio 2015 preview的操作系统:Windows 8.1(x86 和 x64)Windows 8(x86 和 x64)Windows 7 SP1(x86 和 x64)Windows Server 2012 R2 (x64)Windows Server 2012 (x64)Windows Server 2008 R2 SP1 (x64) 目前要安装vs2015 pr

RadioWar发布NFC-War预览版(含视频)

什么是NFC-War? 原mfoc类Application For Android Phone/BlackBerry Phone项目,正式命名为NFC-War.该项目是为了利用Android/BlackBerry NFC手机去进行Miafre Classic的安全检测.并且也是为了更好的延伸类似Proxmark3之类的RFID安全检测设备的功能. NFC-War的功能列表: 利用预设置的Key列表进行穷举,从而获取对应的区域数据 经过穷举后获取到的数据可以保存为dump文件到指定目录(预览版不可

Visual Studio 2019 预览版与正式版的区别

Visual Studio 预览成为第一个访问 Visual Studio 未来版的人, 它的哪些内容适合我 ? 通过微软预发行版可尽早访问 Visual Studio 中尚未提供的新功能. 并行试用 与主版本同步安装预览版,不干扰生产安装. 什么是预览版? 通过 Visual Studio 预览版可以尽早访问主要版本中尚未提供的最新功能和改进. 通过试用预览版,可利用频繁发布的新版本和更新. 请注意,预览版在不断改进,某些功能可能无法按预期运行. 此版本也未获得生成发布应用程序的许可. 如果希

Apache Spark 3.0 预览版正式发布,多项重大功能发布

2019年11月08日 数砖的 Xingbo Jiang 大佬给社区发了一封邮件,宣布 Apache Spark 3.0 预览版正式发布,这个版本主要是为了对即将发布的 Apache Spark 3.0 版本进行大规模社区测试.无论是从 API 还是从功能上来说,这个预览版都不是一个稳定的版本,它的主要目的是为了让社区提前尝试 Apache Spark 3.0 的新特性.如果大家想测试这个版本,可以到 这里 下载. Apache Spark 3.0 增加了很多令人兴奋的新特性,包括动态分区修剪(

Windows 10、Windows Server、System Center、Office 2016 Technical Preview技术预览版下载体验

?? 继Windows 10.Windows Server.System Center Technical Preview技术预览版开放下载体验后,Office 2016 Technical Preview技术预览版也开放下载了,这些产品预计2015年下半年正式发布. Windows 10 Technical Preview技术预览版下载方法: http://blog.csdn.net/dennymvp/article/details/39716789 Office 2016 Technical

SuperSocket 2.0 发布第一个预览版, 另寻找Yang Fan哥哥

昨天,SuperSocket的作者发布了2.0版本的第一个预览版.SuperSocket 2.0 是一个经过全新设计的,第一个完全基于.NET Core的版本.作者正在积极尝试提供更简单易用的API的同时,尽量保证与老版本相似的原汁原味的开发体验.新的版本中亦删除了一些不太重要并且已有更好的替代实现的功能,例如服务器宿主. 时隔三年之后再次发布新的版本,意义重大.首先让我们来回顾一下SuperSocket的发展历程: 2008-2009: 起源于对公司Email服务器和FTP服务器开发的现状不满

VS2015预览版中的C#6.0 新功能(二)

VS2015预览版中的C#6.0 新功能(一) VS2015预览版中的C#6.0 新功能(三) 自动属性的增强 只读自动属性 以前自动属性必须同时提供setter和getter方法,因而只读属性只能通过先声明field,然后property只提供getter方法来实现,无法通过自动属性来实现.在c#6.0中,可以通过如下的形式声明只读的自动属性: public string FirstName { get; } 对于只读的自动属性,其backing field是readonly的,其值可以在属性

Swift 3.0首个开发者预览版将在5月12日释出

关于Linux的学习,请参考书籍<Linux就该这么学> swift团队在博客中宣布Swift 3.0语言首个开发者预览版将于5月12日释出,正式版将在4-6周之后推出.开发者预览阶段并无确定的更新周期和计划,不过Swift团队称努力将其控 制在4-6周内.按此计划,Swift 3.0将错过WWDC发布窗口,团队计划于年底随新版本Xcode升级版一起发布. Swift的GitHub库也将被分为三个分支:主流分支.Swift 3.0预览分支.和Swift 3.0分支.基于Swift的开发将被限定