2024微软人工智能系统异构计算集群调度与资源管理系统_第1页
2024微软人工智能系统异构计算集群调度与资源管理系统_第2页
2024微软人工智能系统异构计算集群调度与资源管理系统_第3页
2024微软人工智能系统异构计算集群调度与资源管理系统_第4页
2024微软人工智能系统异构计算集群调度与资源管理系统_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1课程概览在多租(Multi-Tenant)GPU集群运行作业(Job)10GPU

提交TFJob

20GPU提交PyTorchJob

多用户共享多GPU服务器多作业(Job),多用户作业环境需求多样作业资源需求多样服务器软件环境单一拥有100GPU配额

GPU集群提交MXNetJob调度与资源管理系统重要性调度与资源管理系统重要性提供人工智能基础架构支持深度学习作业(Job)调度(Scheduling)与管理异构硬件管理提升生产力用户专注于模型创新,无需关注系统部署,管理模型,代码和数据共享,加速研究与创新深度学习作业(Job)的生命周期深度学习作业(Job)的生命周期作业提交与排队作业资源分配与调度GPU集群作业,镜像与容器作业,镜像与容器深度学习作业镜像容器独占服务器执行深度学习作业独占服务器执行深度学习作业GPU服务器P100独占环境,无需考虑环境,资源隔离问题P100本地/anaconda3GPU本地/usr/local/cuda本地/data直接执行启动脚本:pythontrain.py--batch_size=256 --model_name=resnet50作业提交到平台作业提交到平台P100提交作业P100提交作业GPU集群"image":"jobName":"restnet","image":"example.tensorflow:stable","dataDir":"/tmp/data",...

"/tmp/output",环境依赖

"taskRoles":[{"taskNumber":1,"taskNumber":1,"cpuNumber":8,"memoryMB":32768,"gpuNumber":1,"command":

数据与代码任务数量}]

"pythontrain.py--batch_size=256\--model_name=resnet50"资源占用作业启动命令}作业环境依赖问题作业环境依赖问题问题:服务器上没有预装好所需要的个性化环境?不同作业需要的框架,依赖和版本不同,安装繁琐且重复?部署服务器上可能会有大量重复安装的库,占用空间?深度学习特有问题:深度学习作业需要安装依赖和深度学习框架等目标:复用整体安装环境并创建新环境层级构建依赖,复用每一层级的依赖作业运行时资源隔离问题作业运行时资源隔离问题问题:集群资源被共享,如何保证作业互相之间不干扰和多占用资源?如何能够让不同作业可以运行不同的操作系统和命名空间?如何保证隔离的同时,作业启动的越快越好?深度学习特有问题:GPU和GPUmemory如何隔离目标:资源隔离轻量级启动镜像与容器-Docker镜像与容器-DockerImage打包作业环境依赖

push

pullRegistry共享镜像Container

build Dockerfile Image

DockerContainer镜像(Image)镜像(Image)含有可读和读写层unionmount支持多种文件系统…

容器镜像层级关系Dockerfile实例FROMnvidia/cuda:10.0-cudnn7-devel-ubuntu16.04ARGPYTHON_VERSION=3.6…RUNapt-getupdate&&apt-getinstall-y--no-install-recommends\…RUNcurl-o~/miniconda.sh…/opt/conda/bin/condainstall-y-cpytorchmagma-cuda100&&\…WORKDIR/opt/pytorchCOPY..…WORKDIR/workspaceRUNchmod-Ra+w.…/pytorch/pytorch/blob/build/1.3.0/docker/pytorch/DockerfileDockerImage镜像文件系统实例镜像文件系统实例file1file4file1file4file2file3 file4file1 file2 file3 file4Imagelayer2Imagelayer1ImagebaselayerAUFS存储驱动实例容器(Container)容器(Container)DLJob1DLJob2DLJob3DLDLJob1DLJob2DLJob3DLJob1DLJob2DLJob3Linuxcontainersareimplementationsofoperatingsystem-levelvirtualizationfortheLinuxsystem.支撑技术:cgroup,namespace命名空间(Namespace)命名空间(Namespace)命名空间隔离类型pidnetmntipcuser...

RootPIDNamespacePIDNamespacexPIDNamespacexpid3(pid1)pid2(pid2)pid5(pid3)pid4(pid2)pid1(pid1)black:RealPIDblue:getid()togetthisPID控制组控制组Linux通过cgroup对进程组的资源:CPUMemoryNetworkStorageIO控制(control)CPUMemoryNetworkStorageIO计数(accounting)隔离(isolation)CGOUP1CGOUP4类型:CGOUP1CGOUP4CGOUP2cpuCGOUP2CGOUP3memoryCGOUP3blocki/onetwork…容器资源分配与隔离子系统实例容器资源分配与隔离子系统实例SubsystemTypeDescriptioncpusetisolationConfineprocessestoprocessorandmemorynodesubsetsnsisolationForshowingprivateview(namespace)ofsystemtoprocessesincgroupcpucontrolShareCPUbandwidthbetweengroupscpuacctaccountingTheCPUAccounting(cpuacct)subsystemgeneratesautomaticreportsonCPUresourcesmemorycontrolThememorycontrollersupportsreportingandlimitingofprocessmemory,kernelmemory,andswapusedbycgroups.devicesisolationThissupportscontrollingwhichprocessesmaycreate(mknod)devicesaswellasopenthemforreadingorwriting.rdmacontrolTheRDMAcontrollerpermitslimitingtheuseofRDMA/IB-spe‐cificresourcespercgroup.blk_iocontrolTheblkiocgroupcontrolsandlimitsaccesstospecifiedblockdevicesbyapplyingIOcontrolGPU资源分配与隔离-NvidiaDockerGPU资源分配与隔离-NvidiaDocker功能:GPU粒度的隔离问题:无法像传统OS对CPU时分复用隔离GPU内存无法隔离潜在解决方法:NvidiaMPS等技术NvidiaDocker实例NvidiaDocker实例#Testnvidia-smiwiththelatestofficialCUDAimage$dockerrun--gpusallnvidia/cuda:9.0-basenvidia-smi#StartaGPUenabledcontainerontwoGPUs$dockerrun--gpus2nvidia/cuda:9.0-basenvidia-smi#StartingaGPUenabledcontaineronspecificGPUs$dockerrun--gpus'"device=1,2"'nvidia/cuda:9.0-basenvidia-smi小结与讨论小结与讨论容器与镜像解决了环境依赖,资源隔离进而奠定未来调度系统多租的基石相比传统OS,在GPU技术栈还不完善的功能是?调度调度群调度(GangScheduling)DRF调度(DominantScheduling)容量调度(CapacityScheduling)(Preemption)前沿调度算法调度目标调度目标针对一批作业调度,常常考虑以下指标:吞吐(Throughput)完工时间(Makespan/AverageTime)公平(Fairness)利用率(Utilization)/(Efficiency)服务水平协议(SLA)调度并行或分布式作业会有哪些问题?调度并行或分布式作业会有哪些问题?深度学习训练特点:GPU目标:HighThroughput,HighUtilizationandShortTimes

JobAJobBNode11234a1a2a3a4a1a31234a1a2a3a4a1a3a4b1b2资源浪费a2Time

GPUNode25567 8b1 b2 bb1b2b3b4b3 b3b4…b…b5a5无法启动,JobA无法训练群调度(GangScheduling)群调度(GangScheduling)Wiki定义:

JobAJobB

JobCTaskAschedulingalgorithmforparallelsystemsthatschedulesthreadsorprocessesto

Node1 Node25567 81a12a23a34a4Timet1 a5 1a12a23a34a4Timerunsimultaneouslyon

t2 a1

a3

a5 a6differentprocessors.

t3 C1 C2 C3

b1 b2 b3 b4策略:同时启动深度学习任务进程

t4 b1 b2 b3 b4GPUClusterJobQueueJob11GPU4GB1GPUClusterJobQueueJob11GPU4GB11GPU4GB2Job22GPU2GBRAM33GPU2GB4CPU,Hostmemoryetc.),并且需要调度GPU及GPUmemory设计目标:吞吐(ThroughputClusterResources:[10GPU,20GBRAM…]DominantDominant(DRF)优化目标:DRF尝试最大化系统中的最小主导份额(smallestdominantshare)策略:定主导资源(dominantresource)基于最大最小公平(max-minfairness)的针对多资源类型(e.g.GPUCPU)度算法

Job1:Queue1Job11GPUQueue1Job11GPU4GB11GPU4GBRAM2Job22GPU2GBRAM33GPU2GB4TotalMemory4+4=8GBMemoryShare=8/20=0.4SHARE=0.4[DominantresourceisMemory]Job2:TotalGPU2+3=5GPUGPUShare=5/10=0.5TotalMemory2+2=4GBMemoryShare=4/20=0.2SHARE=0.5[DominantresourceisGPU]ClusterResources:[10GPU,20GBRAM]Job1hashigherprioritythanJob2asJob1share0.4islessthanJob2share0.5如何让多个小组共享集群?如何让多个小组共享集群?WastedfreeresourcesUser145%UsedCapacity45%User145%UsedCapacity45%FreeCapacity45%TeamATeamA组织提供最小容量保证?5%5%5%TeamBUsedCapacity10%业也需要考虑调度GPU及GPUmemoryTeamBUsedCapacity10%U1U2U3U4设计目标:Utilization,andU1U2U3U4TeamCTeamCNofreeresources,jobcannotbescheduled容量调度(CapacityScheduling)容量调度(CapacityScheduling)User130%User130%MinCapacity10%MaxCapacity30%QueueAUserLimitFactor=3QueueAUserLimitFactor=3策略:5%5%5%MaxCapacity30%MinCapacity10%虚拟集群(VirtualCluster)QueueBUserLimitFactor=1BonusQueueBUserLimitFactor=1U12%U22%U3U12%U22%U33%U44%MaxCapacity30%MinCapacity10%UserLimitFactor最大资源QueueCUserLimitFactor=QueueCUserLimitFactor=0.25抢占(Preemption)虚拟集群(VirtualCluster)虚拟集群(VirtualCluster)目的:提升资源利用率策略:8-GPUNode每个8-GPUNode

Rack8-GPUNode28-GPUNode3 4348-GPUNode8-GPUNode1QPI6CPU8-GPUNode8-GPUNode1QPI6CPUCPU875432118-GPUNode22QPI6CPUCPU8754321TenantATenantBTenantCTenantATenantBTenantC如何让调度兼顾SLA?如何让调度兼顾SLA?不使用抢占调度问题:但是无法保证SLA?挑战:无法像传统OS上下文切换设计目标:兼顾有限资源利用和服务等级协议(SLA)

使用抢占调度App2更快结束App1动机1:GPU集群对深度学习作业的影响动机1:GPU集群对深度学习作业的影响多GPU集群运行深度学习问题与挑战:受到GPU拓扑结构影响受到服务器上同时运行作业的干扰启发优化策略:考虑拓扑结构的亲和性(Affinity)调度动机2:深度学习作业的特点动机2:深度学习作业的特点深度学习作业特点:切分为小时间窗口的任务不同的时间点做检查点有不同的数据量资源消耗可预测性,可以通过运行时监控获取启发优化:时分复用(Timeslicing)与超额订阅(Oversubscription)装箱(Packing)迁移(Migration)…Gandiva调度策略Gandiva调度策略设计目标(Goals)(earlyfeedback)(clusterefficiency)(fairness):fairness)modes)ReactiveModeReactiveMode亲和性(affinity)作业到达(arrivals(departures),失效(failures)考虑亲和性的调度策略Nodeswithsame“affinity”Nodeswith“noaffinity”Nodeswithaffinity”Oversubscription:suspend-resumeonsame“affinity”nodesJobqueuedIntrospectiveModeIntrospectiveMode监控并定期优化当前作业的放置(placement)早反馈(Earlyfeedback):packingmigrationgrow-shrinktimeslicing深度学习还有其他问题影响调度?深度学习还有其他问题影响调度?深度学习作业:作业资源占用多样,造成资源分配后容易形成低利用率和资源碎片深度学习模型越来越大,对Gandiva中提出的suspend-resume等机制提出更大挑战…集群:GPU软件栈对GPU状态备份,资源隔离做的不够完善,无法很好的支持时分复用(timeslicing),(packing)等传统OS兼顾调度公平性…小结与讨论小结与讨论不同调度算法为解决不同的问题和目标而优化,对比不同算法的侧重点会倾向于选择哪种调度算法?代表性异构计算集群管理系统简介代表性异构计算集群管理系统简介Kubeflow…PAIMonitorHDFSYARN+AIPAIRuntimeAutoMLPAIMonitorHDFSYARN+AIPAIRuntimeAutoMLJobsPAIRuntimeBigDataJobsPAIRuntimeDLJobsLauncherRESTServerWebPortal利用可扩展性强,成熟度高利用K8s当前流行的服务部署模式可扩展DeepLearningManagedbyKubernetesManagedbyHadoop+AIManagedbyKubernetesManagedbyHadoop+AI模块化(Storage,Scheduler)高效:细粒度GPU调度,IB/RDMA可管理鲁棒性容错云原生支持本地和云部署

V

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论