2024微軟人工智能系統(tǒng)異構(gòu)計(jì)算集群調(diào)度與資源管理系統(tǒng)_第1頁
2024微軟人工智能系統(tǒng)異構(gòu)計(jì)算集群調(diào)度與資源管理系統(tǒng)_第2頁
2024微軟人工智能系統(tǒng)異構(gòu)計(jì)算集群調(diào)度與資源管理系統(tǒng)_第3頁
2024微軟人工智能系統(tǒng)異構(gòu)計(jì)算集群調(diào)度與資源管理系統(tǒng)_第4頁
2024微軟人工智能系統(tǒng)異構(gòu)計(jì)算集群調(diào)度與資源管理系統(tǒng)_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1課程概覽在多租(Multi-Tenant)GPU集群運(yùn)行作業(yè)(Job)10GPU

提交TFJob

20GPU提交PyTorchJob

多用戶共享多GPU服務(wù)器多作業(yè)(Job),多用戶作業(yè)環(huán)境需求多樣作業(yè)資源需求多樣服務(wù)器軟件環(huán)境單一擁有100GPU配額

GPU集群提交MXNetJob調(diào)度與資源管理系統(tǒng)重要性調(diào)度與資源管理系統(tǒng)重要性提供人工智能基礎(chǔ)架構(gòu)支持深度學(xué)習(xí)作業(yè)(Job)調(diào)度(Scheduling)與管理異構(gòu)硬件管理提升生產(chǎn)力用戶專注于模型創(chuàng)新,無需關(guān)注系統(tǒng)部署,管理模型,代碼和數(shù)據(jù)共享,加速研究與創(chuàng)新深度學(xué)習(xí)作業(yè)(Job)的生命周期深度學(xué)習(xí)作業(yè)(Job)的生命周期作業(yè)提交與排隊(duì)作業(yè)資源分配與調(diào)度GPU集群作業(yè),鏡像與容器作業(yè),鏡像與容器深度學(xué)習(xí)作業(yè)鏡像容器獨(dú)占服務(wù)器執(zhí)行深度學(xué)習(xí)作業(yè)獨(dú)占服務(wù)器執(zhí)行深度學(xué)習(xí)作業(yè)GPU服務(wù)器P100獨(dú)占環(huán)境,無需考慮環(huán)境,資源隔離問題P100本地/anaconda3GPU本地/usr/local/cuda本地/data直接執(zhí)行啟動(dòng)腳本:pythontrain.py--batch_size=256 --model_name=resnet50作業(yè)提交到平臺(tái)作業(yè)提交到平臺(tái)P100提交作業(yè)P100提交作業(yè)GPU集群"image":"jobName":"restnet","image":"example.tensorflow:stable","dataDir":"/tmp/data",...

"/tmp/output",環(huán)境依賴

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

數(shù)據(jù)與代碼任務(wù)數(shù)量}]

"pythontrain.py--batch_size=256\--model_name=resnet50"資源占用作業(yè)啟動(dòng)命令}作業(yè)環(huán)境依賴問題作業(yè)環(huán)境依賴問題問題:服務(wù)器上沒有預(yù)裝好所需要的個(gè)性化環(huán)境?不同作業(yè)需要的框架,依賴和版本不同,安裝繁瑣且重復(fù)?部署服務(wù)器上可能會(huì)有大量重復(fù)安裝的庫,占用空間?深度學(xué)習(xí)特有問題:深度學(xué)習(xí)作業(yè)需要安裝依賴和深度學(xué)習(xí)框架等目標(biāo):復(fù)用整體安裝環(huán)境并創(chuàng)建新環(huán)境層級(jí)構(gòu)建依賴,復(fù)用每一層級(jí)的依賴作業(yè)運(yùn)行時(shí)資源隔離問題作業(yè)運(yùn)行時(shí)資源隔離問題問題:集群資源被共享,如何保證作業(yè)互相之間不干擾和多占用資源?如何能夠讓不同作業(yè)可以運(yùn)行不同的操作系統(tǒng)和命名空間?如何保證隔離的同時(shí),作業(yè)啟動(dòng)的越快越好?深度學(xué)習(xí)特有問題:GPU和GPUmemory如何隔離目標(biāo):資源隔離輕量級(jí)啟動(dòng)鏡像與容器-Docker鏡像與容器-DockerImage打包作業(yè)環(huán)境依賴

push

pullRegistry共享鏡像Container

build Dockerfile Image

DockerContainer鏡像(Image)鏡像(Image)含有可讀和讀寫層unionmount支持多種文件系統(tǒng)…

容器鏡像層級(jí)關(guān)系Dockerfile實(shí)例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鏡像文件系統(tǒng)實(shí)例鏡像文件系統(tǒng)實(shí)例file1file4file1file4file2file3 file4file1 file2 file3 file4Imagelayer2Imagelayer1ImagebaselayerAUFS存儲(chǔ)驅(qū)動(dòng)實(shí)例容器(Container)容器(Container)DLJob1DLJob2DLJob3DLDLJob1DLJob2DLJob3DLJob1DLJob2DLJob3Linuxcontainersareimplementationsofoperatingsystem-levelvirtualizationfortheLinuxsystem.支撐技術(shù):cgroup,namespace命名空間(Namespace)命名空間(Namespace)命名空間隔離類型pidnetmntipcuser...

RootPIDNamespacePIDNamespacexPIDNamespacexpid3(pid1)pid2(pid2)pid5(pid3)pid4(pid2)pid1(pid1)black:RealPIDblue:getid()togetthisPID控制組控制組Linux通過cgroup對(duì)進(jìn)程組的資源:CPUMemoryNetworkStorageIO控制(control)CPUMemoryNetworkStorageIO計(jì)數(shù)(accounting)隔離(isolation)CGOUP1CGOUP4類型:CGOUP1CGOUP4CGOUP2cpuCGOUP2CGOUP3memoryCGOUP3blocki/onetwork…容器資源分配與隔離子系統(tǒng)實(shí)例容器資源分配與隔離子系統(tǒng)實(shí)例SubsystemTypeDescriptioncpusetisolationConfineprocessestoprocessorandmemorynodesubsetsnsisolationForshowingprivateview(namespace)ofsystemtoprocessesincgroupcpucontrolShareCPUbandwidthbetweengroupscpuacctaccountingTheCPUAccounting(cpuacct)subsystemgeneratesautomaticreportsonCPUresourcesmemorycontrolThememorycontrollersupportsreportingandlimitingofprocessmemory,kernelmemory,andswapusedbycgroups.devicesisolationThissupportscontrollingwhichprocessesmaycreate(mknod)devicesaswellasopenthemforreadingorwriting.rdmacontrolTheRDMAcontrollerpermitslimitingtheuseofRDMA/IB-spe‐cificresourcespercgroup.blk_iocontrolTheblkiocgroupcontrolsandlimitsaccesstospecifiedblockdevicesbyapplyingIOcontrolGPU資源分配與隔離-NvidiaDockerGPU資源分配與隔離-NvidiaDocker功能:GPU粒度的隔離問題:無法像傳統(tǒng)OS對(duì)CPU時(shí)分復(fù)用隔離GPU內(nèi)存無法隔離潛在解決方法:NvidiaMPS等技術(shù)NvidiaDocker實(shí)例NvidiaDocker實(shí)例#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小結(jié)與討論小結(jié)與討論容器與鏡像解決了環(huán)境依賴,資源隔離進(jìn)而奠定未來調(diào)度系統(tǒng)多租的基石相比傳統(tǒng)OS,在GPU技術(shù)棧還不完善的功能是?調(diào)度調(diào)度群調(diào)度(GangScheduling)DRF調(diào)度(DominantScheduling)容量調(diào)度(CapacityScheduling)(Preemption)前沿調(diào)度算法調(diào)度目標(biāo)調(diào)度目標(biāo)針對(duì)一批作業(yè)調(diào)度,常??紤]以下指標(biāo):吞吐(Throughput)完工時(shí)間(Makespan/AverageTime)公平(Fairness)利用率(Utilization)/(Efficiency)服務(wù)水平協(xié)議(SLA)調(diào)度并行或分布式作業(yè)會(huì)有哪些問題?調(diào)度并行或分布式作業(yè)會(huì)有哪些問題?深度學(xué)習(xí)訓(xùn)練特點(diǎn):GPU目標(biāo):HighThroughput,HighUtilizationandShortTimes

JobAJobBNode11234a1a2a3a4a1a31234a1a2a3a4a1a3a4b1b2資源浪費(fèi)a2Time

GPUNode25567 8b1 b2 bb1b2b3b4b3 b3b4…b…b5a5無法啟動(dòng),JobA無法訓(xùn)練群調(diào)度(GangScheduling)群調(diào)度(GangScheduling)Wiki定義:

JobAJobB

JobCTaskAschedulingalgorithmforparallelsystemsthatschedulesthreadsorprocessesto

Node1 Node25567 81a12a23a34a4Timet1 a5 1a12a23a34a4Timerunsimultaneouslyon

t2 a1

a3

a5 a6differentprocessors.

t3 C1 C2 C3

b1 b2 b3 b4策略:同時(shí)啟動(dòng)深度學(xué)習(xí)任務(wù)進(jìn)程

t4 b1 b2 b3 b4GPUClusterJobQueueJob11GPU4GB1GPUClusterJobQueueJob11GPU4GB11GPU4GB2Job22GPU2GBRAM33GPU2GB4CPU,Hostmemoryetc.),并且需要調(diào)度GPU及GPUmemory設(shè)計(jì)目標(biāo):吞吐(ThroughputClusterResources:[10GPU,20GBRAM…]DominantDominant(DRF)優(yōu)化目標(biāo):DRF嘗試最大化系統(tǒng)中的最小主導(dǎo)份額(smallestdominantshare)策略:定主導(dǎo)資源(dominantresource)基于最大最小公平(max-minfairness)的針對(duì)多資源類型(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如何讓多個(gè)小組共享集群?如何讓多個(gè)小組共享集群?WastedfreeresourcesUser145%UsedCapacity45%User145%UsedCapacity45%FreeCapacity45%TeamATeamA組織提供最小容量保證?5%5%5%TeamBUsedCapacity10%業(yè)也需要考慮調(diào)度GPU及GPUmemoryTeamBUsedCapacity10%U1U2U3U4設(shè)計(jì)目標(biāo):Utilization,andU1U2U3U4TeamCTeamCNofreeresources,jobcannotbescheduled容量調(diào)度(CapacityScheduling)容量調(diào)度(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每個(gè)8-GPUNode

Rack8-GPUNode28-GPUNode3 4348-GPUNode8-GPUNode1QPI6CPU8-GPUNode8-GPUNode1QPI6CPUCPU875432118-GPUNode22QPI6CPUCPU8754321TenantATenantBTenantCTenantATenantBTenantC如何讓調(diào)度兼顧SLA?如何讓調(diào)度兼顧SLA?不使用搶占調(diào)度問題:但是無法保證SLA?挑戰(zhàn):無法像傳統(tǒng)OS上下文切換設(shè)計(jì)目標(biāo):兼顧有限資源利用和服務(wù)等級(jí)協(xié)議(SLA)

使用搶占調(diào)度App2更快結(jié)束App1動(dòng)機(jī)1:GPU集群對(duì)深度學(xué)習(xí)作業(yè)的影響動(dòng)機(jī)1:GPU集群對(duì)深度學(xué)習(xí)作業(yè)的影響多GPU集群運(yùn)行深度學(xué)習(xí)問題與挑戰(zhàn):受到GPU拓?fù)浣Y(jié)構(gòu)影響受到服務(wù)器上同時(shí)運(yùn)行作業(yè)的干擾啟發(fā)優(yōu)化策略:考慮拓?fù)浣Y(jié)構(gòu)的親和性(Affinity)調(diào)度動(dòng)機(jī)2:深度學(xué)習(xí)作業(yè)的特點(diǎn)動(dòng)機(jī)2:深度學(xué)習(xí)作業(yè)的特點(diǎn)深度學(xué)習(xí)作業(yè)特點(diǎn):切分為小時(shí)間窗口的任務(wù)不同的時(shí)間點(diǎn)做檢查點(diǎn)有不同的數(shù)據(jù)量資源消耗可預(yù)測(cè)性,可以通過運(yùn)行時(shí)監(jiān)控獲取啟發(fā)優(yōu)化:時(shí)分復(fù)用(Timeslicing)與超額訂閱(Oversubscription)裝箱(Packing)遷移(Migration)…Gandiva調(diào)度策略Gandiva調(diào)度策略設(shè)計(jì)目標(biāo)(Goals)(earlyfeedback)(clusterefficiency)(fairness):fairness)modes)ReactiveModeReactiveMode親和性(affinity)作業(yè)到達(dá)(arrivals(departures),失效(failures)考慮親和性的調(diào)度策略Nodeswithsame“affinity”Nodeswith“noaffinity”Nodeswithaffinity”O(jiān)versubscription:suspend-resumeonsame“affinity”nodesJobqueuedIntrospectiveModeIntrospectiveMode監(jiān)控并定期優(yōu)化當(dāng)前作業(yè)的放置(placement)早反饋(Earlyfeedback):packingmigrationgrow-shrinktimeslicing深度學(xué)習(xí)還有其他問題影響調(diào)度?深度學(xué)習(xí)還有其他問題影響調(diào)度?深度學(xué)習(xí)作業(yè):作業(yè)資源占用多樣,造成資源分配后容易形成低利用率和資源碎片深度學(xué)習(xí)模型越來越大,對(duì)Gandiva中提出的suspend-resume等機(jī)制提出更大挑戰(zhàn)…集群:GPU軟件棧對(duì)GPU狀態(tài)備份,資源隔離做的不夠完善,無法很好的支持時(shí)分復(fù)用(timeslicing),(packing)等傳統(tǒng)OS兼顧調(diào)度公平性…小結(jié)與討論小結(jié)與討論不同調(diào)度算法為解決不同的問題和目標(biāo)而優(yōu)化,對(duì)比不同算法的側(cè)重點(diǎn)會(huì)傾向于選擇哪種調(diào)度算法?代表性異構(gòu)計(jì)算集群管理系統(tǒng)簡(jiǎn)介代表性異構(gòu)計(jì)算集群管理系統(tǒng)簡(jiǎn)介Kubeflow…PAIMonitorHDFSYARN+AIPAIRuntimeAutoMLPAIMonitorHDFSYARN+AIPAIRuntimeAutoMLJobsPAIRuntimeBigDataJobsPAIRuntimeDLJobsLauncherRESTServerWebPortal利用可擴(kuò)展性強(qiáng),成熟度高利用K8s當(dāng)前流行的服務(wù)部署模式可擴(kuò)展DeepLearningManagedbyKubernetesManagedbyHadoop+AIManagedbyKubernetesManagedbyHadoop+AI模塊化(Storage,Scheduler)高效:細(xì)粒度GPU調(diào)度,IB/RDMA可管理魯棒性容錯(cuò)云原生支持本地和云部署

V

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論