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
920
JobSet超入門
kubernetes meetup tokyo 60の登壇資料です。
Hiroyuki Moriya
August 22, 2023
Tweet
Share
More Decks by Hiroyuki Moriya
See All by Hiroyuki Moriya
IVRyエンジニア忘年LT大会2024 LLM監視の最前線
gekko0114
1
320
kueueに新しいPriorityClassを足した話
gekko0114
0
700
Other Decks in Programming
See All in Programming
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
170
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
980
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
320
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
140
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
110
C++20 射影変換
faithandbrave
0
540
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
150
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
460
Result型で“失敗”を型にするPHPコードの書き方
kajitack
4
490
PicoRuby on Rails
makicamel
2
110
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
200
Benchmark
sysong
0
270
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Building an army of robots
kneath
306
45k
It's Worth the Effort
3n
185
28k
Being A Developer After 40
akosma
90
590k
Why Our Code Smells
bkeepers
PRO
337
57k
Automating Front-end Workflow
addyosmani
1370
200k
Into the Great Unknown - MozCon
thekraken
39
1.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Designing Experiences People Love
moore
142
24k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
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