Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JobSet超入門
Search
Hiroyuki Moriya
August 22, 2023
Programming
1
740
JobSet超入門
kubernetes meetup tokyo 60の登壇資料です。
Hiroyuki Moriya
August 22, 2023
Tweet
Share
More Decks by Hiroyuki Moriya
See All by Hiroyuki Moriya
kueueに新しいPriorityClassを足した話
gekko0114
0
560
Other Decks in Programming
See All in Programming
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
160
Clean Architecture by TypeScript & NestJS
ryounasso
0
150
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
TiDB Serverless ~理想のServerless DBを考える~
soso_15315
1
160
Async Await: Mastering Python's Time-Bending Tricks - EuroPython2024
yanbo
1
290
Android開発者のための Kotlin Multiplatform入門
ntaro
0
190
なぜ宣言的 UI は壊れにくいのか / Why declarative UI is less fragile
uenitty
29
13k
日付と正規化
megmogmog1965
0
140
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
gotok365
6
1.3k
Ruby メモリ管理 プログラミング
megmogmog1965
0
130
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
Rust.Nagoya #1
codemountains
0
170
Featured
See All Featured
The Invisible Customer
myddelton
117
13k
Leading Effective Engineering Teams 2024
addyosmani
3
300
Speed Design
sergeychernyshev
9
270
Teambox: Starting and Learning
jrom
130
8.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
13
430
The Language of Interfaces
destraynor
151
23k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
Thoughts on Productivity
jonyablonski
64
4.1k
How to name files
jennybc
67
96k
Happy Clients
brianwarren
94
6.6k
A Tale of Four Properties
chriscoyier
155
22k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
78
15k
Transcript
JobSet超入門 Hiroyuki Moriya
Self introduction ▶ GitHub: @Gekko0114 ▶ Software Engineer ▶ 趣味でk8s関連のOSSの調査
▶ 技術系のイベント初登壇です
今日話すこと ▶ kubernetes-sigs/JobSetがどんなものかを簡単に紹介します ▶ 開発途上のOSS(version 0.2.0)で日本語資料がほとんどありません ▶ 今回の内容は未実装の機能も含みます ▶ 今後の方針によって機能が変更される可能性もあります
JobSet開発の背景 ▶ k8sは、AI/ML関連のJob向けの機能開発に力を入れてこなかった ▶ PodとDeployment/StatefulSetのような存在がJobには無い ▶ AI/MLをk8s上で管理するOSSが開発されてきた (kubeflowなど) ▶ kubeflowでは、フレームワークで共通の機能が、重複実装されている
JobSetで何をしたい? ▶ 複数のJobを管理できるCRD ▶ フレームワーク間で共通の機能を、重複せずに実装したい ▶ 個別のフレームワークに必要な機能も備えたい
JobSetで何をしたい?(詳しく) ▶ 複数templateの同時実行:ML分散学習はDriverとworkerが必要 ▶ network設定:Job間のnetworkを良い感じにしたい ▶ Scaling:HPAが動作してほしい ▶ Startup sequence:ジョブの実行順序も定義したい
▶ フレームワーク(PyTorch, tensorflow etc)毎に必要な設定を管理
ジョブの実行順序の制御とは? ▶ フレームワークによって、起動したいPodの順番が決まっている ▶ 例1: RayやSparkだと、Driverを最初に起動しないといけない ▶ 例2: MPIだと、Workerを最初に起動しないといけない
フレームワーク毎に必要な設定とは? ▶ kubeflowではtraining-operator等がうまくやってくれている ▶ 例:tensorflowのTF_CONFIG, PyTorchのinit_process_group
JobSetでこれらの問題を解決しよう! ▶ kubeflowがうまくやってる点(フレームワーク毎の対応)もなんとかする
JobSetでカバーする機能 ▶ 複数templateの同時実行が可能 ▶ network設定:headless serviceが良い感じにしてくれる ▶ Scaling:HPAがちゃんと動く ▶ Startup
sequence:ジョブの実行順を定義可能予定 ▶ JobSetConfig:フレームワーク毎に設定ファイルを用意する予定 など
Yaml ▶ replicatedJobsにJob を書く
まとめ ▶ JobSetの開発が進めば、ML/AI workflowが簡易化されるかも ▶ 開発途上なのでcontribution chance ▶ コメントあればお願いします!
ご清聴ありがとうございました! ▶ 参考資料 ▶ JobSetAPI https://docs.google.com/document/d/1WqjSeFOrMneGS1wlC5cmhtHrpF2rErh-EIfkVN7rBrA/edit ▶ Repo https://github.com/kubernetes-sigs/jobset
参考:TFJob ▶ tf.distributeによる分散学習をサポート(参考) ▶ TF_CONFIG (chief, worker, ps, evaluator)の設定など
参考:PyTorchJob ▶ DataParallel, DistributedDataParallel, DistributedElastic ▶ 各分散処理向けの実装が必要 ▶ 例1: DistributedDataParallel実行のためのinit_process_group
▶ 例2: DistributedElasticのためのrendezvous