spark调优参数(spark3.0新特性)

技术Spark 3.0内置支持GPU调度的示例分析这篇文章将为大家详细讲解有关Spark 3.0内置支持GPU调度的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

本文将详细解释Spark 3.0中内置支持GPU调度的示例分析。这篇文章的内容质量很高,所以边肖会分享给大家参考。希望你看完这篇文章后有所了解。

如今,大数据和机器学习已经大大结合。在机器学习中,由于计算迭代时间可能很长,开发人员一般会选择使用GPU、FPGA或TPU来加快计算速度。在Apache Hadoop版本中,已经内置了本机支持GPU和FPGA。

Spark  3.0内置支持GPU调度的示例分析

Spark作为一个通用计算引擎,当然也不会落后太多。来自Databricks、NVIDIA、谷歌和阿里巴巴的工程师正在为ApacheSpark添加本机GPU调度支持。该解决方案填补了Spark在GPU资源任务调度方面的空白,将大数据处理和AI应用有机融合,拓展了Spark在深度学习、信号处理和重大数据应用方面的应用场景。

这项工作的问题可以在SPARK-24615中查看。

相关spip (spark项目改进建议)文件可在spip:加速器感知调度中找到。

Spark  3.0内置支持GPU调度的示例分析

目前,Apache Spark支持的资源管理器shate和Kubernetes已经支持GPU。为了让Spark也支持GPU,需要在技术层面进行两项重大改变:

在集群管理器层面,集群管理器需要升级以支持GPU。并为用户提供相关的API,让用户可以控制GPU资源的使用和分配。

在Spark内部,需要在调度器层面进行修改,使调度器能够识别用户任务请求中对GPU的需求,然后根据执行器上的GPU供给完成资源分配。

因为让Apache Spark支持GPU是一大特色,所以项目分为几个阶段。在Apache Spark版本中,独立、纱和Kubernetes资源管理器下将支持GPU,现有的正常作业基本不受影响。对TPU的支持、对Mesos Explorer中GPU的支持以及对Windows平台的GPU支持将不是本次发布的目标。而且,这个版本不支持GPU卡中的细粒度调度;Apache Spark版本将把一个GPU卡和它的内存作为一个不可分割的单元。

1、Spark Scheduling

在这个级别,我们必须允许指定来自RDD/PandasUDF API的资源请求,这应该在DAGScheduler中进行总结。TaskSetManager管理每个阶段的未完成任务,我们需要用GPU请求来处理那些任务。对于不需要GPU的作业,调度行为和效率应该和以前一样。

目前,CPUS_PER_TASK(spark.task.cpus)是一种int类型的全局配置,用于指定每个任务应该分配的核心。为了支持GPU配置,引入了spark . task . GPU参数来指定每个任务需要申请的GPU数量。如果用户没有指定Spark . task . CPU或spark.task.gpus,spark程序将使用默认值;因为需要向后兼容,所以如果用户没有指定spark . task . CPU或spark.task.gpus,这两个参数的默认值分别是1和null。

对于执行器后端来说,它需要能够识别和管理GPU,并将这些信息(如修改现有的RegisterExecutor类)同步到schedulerback band,然后schedulerback band可以根据这些GPU信息为那些需要GPU资源的任务分配资源。

00-1010的第一阶段将支持独立,纱和库本内特GPU。Spark需要在这三种资源管理上做一些工作。

2、Resource Manager

Standalone是Spark内置的资源管理模式,但目前的Standalone部署模式无法支持GPU等资源。为了识别GPU信息,一种可行的方法是在配置文件中配置GPU资源。通过读取配置信息,工作者维护内存结构中的可用资源,如图形处理器和中央处理器。同时,执行器所应用的资源(包括GPU)是通过allocateworkerresourcetoxecutors方法在主机上分配的。

00-1010为了在YARN上支持GPU,我们需要使用YARN 3 . 1 . 2版本;同时,我们需要对纱簇进行相关配置,使纱簇能够开始支持GPU资源。请看这里如何配置纱上的GPU资源。

为执行器申请纱容器时,Spark需要将执行器所需的GPU数量映射到纱容器请求中的yarn.io/gpu资源。纱有GPU隔离机制,所以无论是否使用Docker容器,未分配给纱容器的GPU资源的使用都会被阻塞。

需要注意的是,到目前为止,纱只支持Nvidia GPU。

00-1010从Kubernetes 1.8版本开始,Kubernetes采用设备插件模型,支持GPU、高性能NIC、FPGA等设备。Kubernetes目前支持英伟达、AMD和英特尔GPU设备。在独立模式或纱模式下,指定火花k8s中任务的图形处理器数量。它还支持spark . task . GPU和spark . executor . GPU的全局配置,并且还支持RDD阶段每个任务的设置。

这里将分享对Spark 3.0中内置GPU调度支持的示例分析。希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/148959.html

(0)

相关推荐

  • CALMS及其与数据库DevOps的关系是什么

    技术CALMS及其与数据库DevOps的关系是什么CALMS及其与数据库DevOps的关系是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获

    攻略 2021年12月1日
  • HLS Lesson20的示例分析

    技术HLS Lesson20的示例分析今天就跟大家聊聊有关HLS Lesson20的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.改善吞吐率:本质是通

    攻略 2021年11月16日
  • redis未授权

    技术redis未授权 redis未授权Redis服务简介
    Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可

    礼包 2021年11月9日
  • vue 组件对外暴露方法(vue 中的store如何存取数据)

    技术Vue中怎样把数据包装成reactive从而实现MDV效果Vue中怎样把数据包装成reactive从而实现MDV效果,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来

    攻略 2021年12月25日
  • Vue 全家桶介绍-超详细教程

    技术Vue 全家桶介绍-超详细教程 Vue 全家桶介绍-超详细教程Vue 全家桶介绍-超详细教程Vue 全家桶介绍Vue有著名的全家桶系列,包含了vue-router(http://router.vue

    礼包 2021年10月27日
  • c#如何实现DataGridView分页

    技术c#如何实现DataGridView分页这篇文章主要介绍了c#如何实现DataGridView分页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。由于项

    攻略 2021年11月23日