SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Shingo Omura (@everpeace), Preferred Networks, Inc.
Kubernetes Meetup Tokyo #13 2018-09-28
schedulerとdevice-pluginをカスタムし
て機械学習ジョブクラスタを
作っている話
1
大村伸吾 (おおむらしんご)
• エンジニア, Preferred Networks, Inc.
• 社内向けGPUクラスタの開発運用
• Chainerのクラウドでのユーザビリティ向上
• kubeflow/chainer-operator 開発
– ChainerMNによる分散深層学習も
single yamlで動きます
– 仲間募集中!
– v0.3(今月末予定)で正式リリース!
• @everpeace (twitter)
• shingo.omura (facebook)
2
We’re Hiring!!
Shingo Omura
KeyNote at July Tech Festa 2018
SlideShare
Kubeflow Meetup #1
SlideShare
3
PFNの機械学習クラスタ
の概要
4
構築・運用: NTT Communications / NTT PC Communications
MN-1
5
PFN における Kubernetes クラスタ
credits:                             
gpu by Misha Petrishchev, Cpu Chip by Vectors Market, Memory by Jugalbandi, Network Switch by Creaticca Creative Agency,
Webhooks by Paul Dietzel, label by nauraicon, schedule by Pixel Lab from the Noun Project
128 (P100)
512 (V100)
56 Gbps x 2
100 Gbps x 24608 vCore
192 vCore
24 TiB
4 TiB
64 nodes (MN-1b)
16 nodes (MN-1a) (全体では128 node)
v1.11.1
NVIDIA/k8s-device-plugin
everpeace/k8s-host-device-plugin
custom
admission
webhook
custom
node feature
discovery
custom
kube
-scheduler
6
日々絶賛拡張中
InfiniBand
• 息を吸うように分散機械学習
– ChainerMN ➔ GPU, InfiniBand をスケジュールしたい
• 日常的なグランドチャレンジ
– Preemptionを活用したい
• オンプレなのでキャパは有限
– Preemptionを活用したい(長時間のジョブは優先度低)
– Preemptionが起きないようにパッキング
• 未対応だが将来やりたい
– スケジューリングの改善(100人以上で使うので何らかの公平性を)
– ギャングスケジューリング(複数のpodを同時にschedule)
PFN の Kubernetes クラスタに求められるもの
7
クラスタ全体を専有して
ブレイクスルーを目指す実験
• 息を吸うように分散機械学習
– ChainerMN ➔ GPU, InfiniBand をスケジュールしたい
• 日常的なグランドチャレンジ
– Preemption を 活用したい
• オンプレなのでキャパは有限
– Preemptionを活用したい & カスタムPreemptionロジック
– Preemptionが起きにくいようにパッキング
• 未対応だが将来やりたい
– スケジューリングの改善(100人以上で使うので何らかの公平性を)
– ギャングスケジューリング(複数のpodを同時にschedule)
customized kube-schedulercustomized kube-scheduler
カスタムしているコンポーネント
custom device plugin
8
PriorityClass
Kubernetes Device Plugin
とは
9
Kubernetes Device Pluginとは
• 本体を変更せずに計算リソースを
kubeletにadvertiseする仕組み
– Extended Resourceと呼ばれる
– 非特権コンテナでデバイス利用可
• v1.8 で 登場
• 現 api バージョンは v1beta1
• 通常DeamonSetでデプロイ
• GPU以外にもある(公式ドキュメント)
– GPU (Nvidia, AMD, Intel),
FPGA (Intel), RDMA devices, etc.
# your container spec
resources:
limits:
my-special-device: 1
こんな風にできるようになる
# kubectl describe nodes
Allocatable:
my-special-device: 15
10
Kubernetes Device Plugin の制約
• 整数単位のみでの指定
– 0.5 とかは駄目
• overcommit できない
– 要 requests == limits
• コンテナ同士でシェアはできない
• unlimited リソース は 未対応
– capabilityっぽいリソース
– dirty hack あり (後述)
# your container A
resources:
requests:
nvidia.com/gpu: 1
limits:
nvidia.com/gpu: 1
# your container B
resources:
limits:
nvidia.com/gpu: 1
別々のGPU
要同値&整数
11
● gRPC on unix socket で通信
● device id や deviceファイル情報 をやり取り
● kubelet は起動時に --device, -v オプションを
つけてコンテナを起動
Kubernetes Device Plugin 動作概要
12
/dev/my0 /dev/my1 /dev/my2 /dev/my3
device-plugin
Pod
/dev/my0, 1
--device, -v, --env
等のoption付きで起動
kubelet
Kubernetes Device Plugin の 動作概要
• design doc, api定義(v1beta1) が詳しい
kubelet device plugin
gRPC API
Action
Register
ListAndWatch
Container起動前
Register
ListAndWatch
Allocate
PreStartContainer
kubelet.sock
hoge.sock
unix socket
主に
Register処理
と
2つのAPI
を実装する
13
Kubernetes Device Plugin: Register
kubelet device plugin gRPC API
Action
Register Registerkubelet.sock
unix socket
# rpc Register (RegisterRequest) returns (Empty) {}
RegisterRequest {
version = “v1beta1”
endpoint = “/var/lib/kubelet/device-plugin/hoge.socket” ← pluginのsocket名
resource = “my-device-name” ← デバイス名
options = DevicePluginOptions {
pre_start_required = true ← Allocate 後に PreStartContainer を呼んでほしいか
}
}
問題があればエラー
が返る
14
Kubernetes Device Plugin: ListAndWatch
kubelet device plugin
gRPC API
Action
ListAndWatch ListAndWatchhoge.sock
unix socket
デバイスリストを
更新し続ける
# rpc ListAndWatch (Empty) returns (stream ListAndWatchResponse) {}
# デバイスの状態が変わったら速やかに全デバイスのリストを再送信
ListAndWatchResponse {
devices = [ Device {
ID = “GPU-fef8089b-4820-abfc-e83e-94318197576e” ← デバイスのID
health = “Healthy” ← Healthy or Unhealthy
}, ... ]
}
15
Kubernetes Device Plugin: Allocate
kubelet device plugin gRPC API
Action
Container起動前 Allocatehoge.sock unix socket
デバイスを要求
# rpc Allocate (AllocateRequest) returns (AllocateResponse)
AllocateRequest {
container_requests = [
ContainerAllocateRequest {
deviceIDs = [ “GPU-...”, “GPU-...” ] ← 各コンテナに割り当てたいIDのリスト
} ]
}
16
Kubernetes Device Plugin: Allocate
# rpc Allocate (AllocateRequest) returns (AllocateResponse)
AllocateResponse { container_responses = [
ContainerAllocateResponse {
envs = map( “env_name”: “env_value” ) ← 環境変数
mounts= [ Mount { ← ホストボリュームマウント指定(-v)
host_path = “...”
mount_path = “...”
read_only = true/false
} ]
devices = [ DeviceSpec { ← ホストデバイスマウント指定(--device)
container_path = “/dev/foo”
host_path = “/dev/bar”
permissions = r / w / m ← r = read, w = write, m = mknod 権限
} ]
annotations = map( “key”: “value” ) ← コンテナアノテーション
},
]} 17
Kubernetes Device Plugin: PreStartContainer
kubelet device plugin gRPC API
Action
Container起動前 PreStartContainerhoge.sock unix socket
# rpc PreStartContainer (PreStartContainerRequest) returns (PreStartContainerResponse) {}
PreStartContainerRequest {
devicesIDs = [ “GPU-...”, “GPU-...” ] ← 初期化等の前処理をするデバイスIDs
}
PreStartContainerResponse { } ← レスポンスは中身なし
pre_start_required = true
の場合のみ呼ばれる
18
InfiniBand 用に Unlimited な Extended Resource を擬似的に作る
Pod
PFN における 自作device plugin (everpeace/k8s-host-device-plugin)
19
everpeace/k8s-host-device-plugin
/dev/infiniband/uverbsX
kubelet
/dev/infiniband/uverbsX
/dev/infiniband/rdma_cm
/dev/infiniband/rdma_cm ● 特定のdeviceファイルの集合 に 大量 のdummy
device IDをつける
● Allocate ではどの ID をリクエストされても
同じDeviceSpecを返す
まだまだ発展途上なので注意が必要
• KEP や issueがたくさんあって今後大きく変わる可能性あるかも
– KEP-14: New Resource API proposal (kubernetes/community#2265)
• ResourceClass の提案 (Volume Classみたいな)
• GPUモデルをLabels/Taintsで管理するんじゃなくてもっとちゃんと
– KEP-18: Compute Device Assignment (kubernetes/community#2454)
• ComputeDevice と ComputeDeviceBind 使ってdevice の bindを表現
• kubeletが保存しているlocal checkpoint(containerとdevice IDの対応)からの脱却
– specify hw devices in container (kubernetes/kubernetes#60748)
• Container Spec に hostDevices attributeを追加
20
kube-scheduler
とは
21
• PodをNodeに割り当てる 責務を担うControl Plane のコンポーネント
• kube-schedulerの動作は この2つを読めばほぼ完璧 です
– @tkusumi さんの “Kubernetes: スケジューラの動作”
– チェシャ猫(@y_taka_23) さんの "猫でもわかるPod Preemption"
• 特徴
– schedule policy を 柔軟 にカスタマイズ
• toleration, nodeSelector, affinity といった機能はココ
– priority による preemption
– Extender (Webhook) による拡張
kube-schedulerとは
22
Pod Queue (FIFO)
kube-schedulerの動作
23
Pod を 1個 Pop
対象ノードを選ぶ
ノードに紐づけ
プリエンプション
(犠牲となるPod群を停止)
kube-api
対象ノードがない
Bind リソースを作成
犠牲 Pod群 を Delete
PodをWatch
注: 対象ノードが選べなかった
  時点でPod Statusを更新して
キューの最後尾に入る
Pod Queue (FIFO)
kube-schedulerの動作
24
Pod を 1個 Pop
対象ノードを選ぶ
ノードに紐づけ
プリエンプション
(犠牲になるPod群を停止)
kube-api
Policy 及び Extender
でカスタム可能
Extender
でカスタム可能
Extender
でカスタム可能
対象ノードがない
Bind リソース を作成
犠牲Pod群をDelete
PodをWatch
25出展: Kubernetes: スケジューラの動作 - Qiita by tkusumi
kube-schedulerの動作: ノードを選ぶ
26出展: Kubernetes: スケジューラの動作 - Qiita by tkusumi
kube-schedulerの動作: ノードを選ぶ
● Policyで選べる
● Extenderで独自Predicates
● Policyで選べる
● Extenderで独自ロジック挿せる
kube-schedulerの動作: プリエンプション
27
Node 1
Node 2
Node 3
Node 4
候補ノードを選ぶ
● クリティカルな
FitError以外の
ノード
● 低優先度Podがい
るノード
Node 2
Node 3
Node 4
犠牲Node&Podを選ぶ
1. 低優先Pod全部犠牲候補にして
(抜いてみて) fit するかチェック
2. pdb違反を高優先度から順に
fitする限り救済
3. 残りも高優先度から順にfitする
限り救済
4. 残りを犠牲Podsとする
Node 2
Node 3
Extenderによる調整
● 選ばれたノードと犠牲
Podsを受け取って調
整できる
● Victimを完全に選ぶ
ことはできない
Node 2
Nodeを1つに絞る
下記の順にNodeを絞る
1. PDB違反数最小
2. 最高優先度最小
3. 優先度和最小
4. 犠牲pod数最小
5. ランダム!
kube-scheduler のカスタマイズ方法
• 残念ながらほとんどdocumentはない(記事は幾つか存在する )
• コマンドラインオプションは公式ドキュメント に載っている
– --config でファイルを渡す形式(--write-config-toでdefault書出し可)
– 設定は下記を見ながらyaml, jsonを書くしか無い
• kube-scheduler 自体の設定
→ KubeSchedulerConfiguration (yaml サンプル)
• スケジューリングポリシー(predicates, priorities, extenders, etc.)
→ Policy (json サンプル)
• Extender: ドキュメント(design-doc)
– サンプル: everpeace/k8s-scheduler-extender-example
• 自分で自由にpredicate, priority, preempt, bind等のロジックを
webhookで挿せる
– 応用: everpeace/kube-throttler: Throttle CRDを使ってpodのスケジュールをthrottle
28
PFNでのカスタム事例
• 寄せて詰めたい (= Greedy な Bin Packing)
– podがfitする中で一番空きが少ないところに入れる
– MostRequestedPriority を使う
• Victim を 自由に選びたい
– kube-schedulerが Vicitim Pod を選び、Extenderは調整しか
できないので
– やむなくforkして実装している(諸事情で現在未デプロイ)
• 新バージョンが来たときのrebaseが辛い
• Extenderでもうちょっと柔軟にできるようにしてほしい
29
まだできていないけどやりたい
• キューの改善
– kube-schedulerはFIFO
– 色々と既存のアルゴリズムはある
• ギャングスケジューリング
– 分散学習だとpodを1個ずつscheduleすると簡単にdeadlock
が起きる
• 機械学習を活用したスケジューリング
30
Kubernetes の Scheduler もまだまだ発展途上
• kube-scheduler がものすごく多くのデフォルト機能を実装していて
自作のスケジューラが同じ機能を実装するのが困難なのが実情
• kubernetes-incubator/kube-arbitrator (←やりたいことに近いかも )
– HPC系のスケジューラの機能の実現
– JobQueue, Gang Scheduling, Preemption に対応している
– まだまだ絶賛開発中な模様
• 幾つかのスケジューラ系のKEPも存在
– Add scheduling framework design proposal (kubernetes/community#2281)
• よりカスタマイズできるように schedulerをframework化
– KEP: Gang scheduling (kubernetes/community#2337)
• PodGroup というresourceを導入してGroup単位でschedule
31
PFNでは効率的で柔軟な機械学習クラスタの構築
を一緒に挑戦してみたい人を募集しています
32
https://www.preferred-networks.jp/jobs
We’re Hiring!!
Icons made by Vincent Le Moign from https://icon-icons.com/ licensed by CC 3.0 BY
Thank you for Listening!!
Any Questions?
33
付録
34
ギャングスケジューリング
• 複数のコンテナ(Pod)を同時にノードにスケジュールする
• 分散学習ジョブの場合はギャングスケジューリングでデッドロックを回避できる
– Kubernetes: kubernetes-incubator/kube-arbitrator (未デプロイ)
35
Job A
Job B
Scheduler
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
gpu by Misha Petrishchev from the Noun Project
MN-1a 構成
36
Total: 1024 GPUs (NVIDIA Tesla P100)
8 GPUs x 16 Servers
56 Gps(InfiniBand FDR) x 2
56 Gbps(InfiniBand FDR) x 2
credits:                             
gpu by Misha Petrishchev from the Noun Project
Network Switch by Creaticca Creative Agency from the Noun Project
MN-1b 構成
37
8 GPUs x 16 Servers
100 Gps(InfiniBand EDR) x 2
100 Gbps(InfiniBand EDR) x 2
credits:                             
gpu by Misha Petrishchev from the Noun Project
Network Switch by Creaticca Creative Agency from the Noun Project
MN-1a
Total: 512 GPUs (NVIDIA Tesla V100)

Contenu connexe

Tendances

Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Preferred Networks
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」ManaMurakami1
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Preferred Networks
 
Kubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったことKubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったことh-otter
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengewhywaita
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
GPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIAGPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIANVIDIA Japan
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門Preferred Networks
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす Akihiro Suda
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 
fpgax #11+TFUG ハード部:DNN専用ハードについて語る会-2019-02-02 MN-coreについて 金子 紘也
fpgax #11+TFUG ハード部:DNN専用ハードについて語る会-2019-02-02 MN-coreについて 金子 紘也fpgax #11+TFUG ハード部:DNN専用ハードについて語る会-2019-02-02 MN-coreについて 金子 紘也
fpgax #11+TFUG ハード部:DNN専用ハードについて語る会-2019-02-02 MN-coreについて 金子 紘也Preferred Networks
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活Kuninobu SaSaki
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Masahito Zembutsu
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報Emma Haruka Iwao
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 

Tendances (20)

Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
 
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
 
Kubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったことKubernetesのワーカーノードを自動修復するために必要だったこと
Kubernetesのワーカーノードを自動修復するために必要だったこと
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
GPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIAGPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIA
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 
fpgax #11+TFUG ハード部:DNN専用ハードについて語る会-2019-02-02 MN-coreについて 金子 紘也
fpgax #11+TFUG ハード部:DNN専用ハードについて語る会-2019-02-02 MN-coreについて 金子 紘也fpgax #11+TFUG ハード部:DNN専用ハードについて語る会-2019-02-02 MN-coreについて 金子 紘也
fpgax #11+TFUG ハード部:DNN専用ハードについて語る会-2019-02-02 MN-coreについて 金子 紘也
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
 
分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報分散ストレージ技術Cephの最新情報
分散ストレージ技術Cephの最新情報
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
OSSを活用したIaCの実現
OSSを活用したIaCの実現OSSを活用したIaCの実現
OSSを活用したIaCの実現
 

Similaire à Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster

CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...NTT DATA Technology & Innovation
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみましたShuntaro Saiba
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門Yosuke Onoue
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみたKatsutoshi Nagaoka
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud AutomationEtsuji Nakai
 
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50Preferred Networks
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたAkihito Inoh
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタTakashi Kanai
 
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...JUNICHI YOSHISE
 
OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!Takashi Sogabe
 
Rookの基礎・バージョンアップ
Rookの基礎・バージョンアップRookの基礎・バージョンアップ
Rookの基礎・バージョンアップTakashi Sogabe
 
Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )ロフト くん
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜Masaya Aoyama
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Preferred Networks
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...NTT DATA Technology & Innovation
 

Similaire à Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster (20)

CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
 
kube-system落としてみました
kube-system落としてみましたkube-system落としてみました
kube-system落としてみました
 
PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門PyOpenCLによるGPGPU入門
PyOpenCLによるGPGPU入門
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみた
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
独断と偏見で選んだ Kubernetes 1.24 の注目機能と今後! / Kubernetes Meetup Tokyo 50
 
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみたKubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
Kubernetes Meetup Tokyo #8 Self-hosted Kubernetes を調べてみた
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
 
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
 
[GKE & Spanner 勉強会] GKE 入門
[GKE & Spanner 勉強会] GKE 入門[GKE & Spanner 勉強会] GKE 入門
[GKE & Spanner 勉強会] GKE 入門
 
OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!OpenContrailのソースコードを探検しよう!
OpenContrailのソースコードを探検しよう!
 
Rookの基礎・バージョンアップ
Rookの基礎・バージョンアップRookの基礎・バージョンアップ
Rookの基礎・バージョンアップ
 
Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )Operator reading and writing ( Operator SDK 編 )
Operator reading and writing ( Operator SDK 編 )
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
PGOを用いたPostgreSQL on Kubernetes入門(Open Source Conference 2023 Online/Hokkaido...
 

Plus de Preferred Networks

PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57Preferred Networks
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Preferred Networks
 
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Preferred Networks
 
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...Preferred Networks
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Preferred Networks
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2Preferred Networks
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Preferred Networks
 
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演Preferred Networks
 
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)Preferred Networks
 
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)Preferred Networks
 
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るPreferred Networks
 
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Preferred Networks
 
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会Preferred Networks
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Preferred Networks
 
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...Preferred Networks
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48Preferred Networks
 
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太Preferred Networks
 
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太Preferred Networks
 
MN-3, MN-Core and HPL - SC21 Green500 BOF
MN-3, MN-Core and HPL - SC21 Green500 BOFMN-3, MN-Core and HPL - SC21 Green500 BOF
MN-3, MN-Core and HPL - SC21 Green500 BOFPreferred Networks
 
KubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjp
KubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjpKubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjp
KubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjpPreferred Networks
 

Plus de Preferred Networks (20)

PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
PodSecurityPolicy からGatekeeper に移行しました / Kubernetes Meetup Tokyo #57
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
 
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
Kubernetes + containerd で cgroup v2 に移行したら "failed to create fsnotify watcher...
 
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
深層学習の新しい応用と、 それを支える計算機の進化 - Preferred Networks CEO 西川徹 (SEMICON Japan 2022 Ke...
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
 
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
スタートアップが提案する2030年の材料開発 - 2022/11/11 QPARC講演
 
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
PFNにおける研究開発(2022/10/19 東大大学院「融合情報学特別講義Ⅲ」)
 
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」)
 
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語るKubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
Kubernetes にこれから入るかもしれない注目機能!(2022年11月版) / TechFeed Experts Night #7 〜 コンテナ技術を語る
 
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
Matlantis™のニューラルネットワークポテンシャルPFPの適用範囲拡張
 
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
PFNのオンプレ計算機クラスタの取り組み_第55回情報科学若手の会
 
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
 
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...
PFN Summer Internship 2021 / Kohei Shinohara: Charge Transfer Modeling in Neu...
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
Playgram開発秘話_2022年1月プログラミングシンポジウム招待講演_西澤勇輝、岡本雄太
 
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
東北大学 先端技術の基礎と実践_深層学習による画像認識とデータの話_菊池悠太
 
MN-3, MN-Core and HPL - SC21 Green500 BOF
MN-3, MN-Core and HPL - SC21 Green500 BOFMN-3, MN-Core and HPL - SC21 Green500 BOF
MN-3, MN-Core and HPL - SC21 Green500 BOF
 
KubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjp
KubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjpKubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjp
KubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjp
 

Dernier

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Dernier (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster

  • 1. Shingo Omura (@everpeace), Preferred Networks, Inc. Kubernetes Meetup Tokyo #13 2018-09-28 schedulerとdevice-pluginをカスタムし て機械学習ジョブクラスタを 作っている話 1
  • 2. 大村伸吾 (おおむらしんご) • エンジニア, Preferred Networks, Inc. • 社内向けGPUクラスタの開発運用 • Chainerのクラウドでのユーザビリティ向上 • kubeflow/chainer-operator 開発 – ChainerMNによる分散深層学習も single yamlで動きます – 仲間募集中! – v0.3(今月末予定)で正式リリース! • @everpeace (twitter) • shingo.omura (facebook) 2 We’re Hiring!!
  • 3. Shingo Omura KeyNote at July Tech Festa 2018 SlideShare Kubeflow Meetup #1 SlideShare 3
  • 5. 構築・運用: NTT Communications / NTT PC Communications MN-1 5
  • 6. PFN における Kubernetes クラスタ credits:                              gpu by Misha Petrishchev, Cpu Chip by Vectors Market, Memory by Jugalbandi, Network Switch by Creaticca Creative Agency, Webhooks by Paul Dietzel, label by nauraicon, schedule by Pixel Lab from the Noun Project 128 (P100) 512 (V100) 56 Gbps x 2 100 Gbps x 24608 vCore 192 vCore 24 TiB 4 TiB 64 nodes (MN-1b) 16 nodes (MN-1a) (全体では128 node) v1.11.1 NVIDIA/k8s-device-plugin everpeace/k8s-host-device-plugin custom admission webhook custom node feature discovery custom kube -scheduler 6 日々絶賛拡張中 InfiniBand
  • 7. • 息を吸うように分散機械学習 – ChainerMN ➔ GPU, InfiniBand をスケジュールしたい • 日常的なグランドチャレンジ – Preemptionを活用したい • オンプレなのでキャパは有限 – Preemptionを活用したい(長時間のジョブは優先度低) – Preemptionが起きないようにパッキング • 未対応だが将来やりたい – スケジューリングの改善(100人以上で使うので何らかの公平性を) – ギャングスケジューリング(複数のpodを同時にschedule) PFN の Kubernetes クラスタに求められるもの 7 クラスタ全体を専有して ブレイクスルーを目指す実験
  • 8. • 息を吸うように分散機械学習 – ChainerMN ➔ GPU, InfiniBand をスケジュールしたい • 日常的なグランドチャレンジ – Preemption を 活用したい • オンプレなのでキャパは有限 – Preemptionを活用したい & カスタムPreemptionロジック – Preemptionが起きにくいようにパッキング • 未対応だが将来やりたい – スケジューリングの改善(100人以上で使うので何らかの公平性を) – ギャングスケジューリング(複数のpodを同時にschedule) customized kube-schedulercustomized kube-scheduler カスタムしているコンポーネント custom device plugin 8 PriorityClass
  • 10. Kubernetes Device Pluginとは • 本体を変更せずに計算リソースを kubeletにadvertiseする仕組み – Extended Resourceと呼ばれる – 非特権コンテナでデバイス利用可 • v1.8 で 登場 • 現 api バージョンは v1beta1 • 通常DeamonSetでデプロイ • GPU以外にもある(公式ドキュメント) – GPU (Nvidia, AMD, Intel), FPGA (Intel), RDMA devices, etc. # your container spec resources: limits: my-special-device: 1 こんな風にできるようになる # kubectl describe nodes Allocatable: my-special-device: 15 10
  • 11. Kubernetes Device Plugin の制約 • 整数単位のみでの指定 – 0.5 とかは駄目 • overcommit できない – 要 requests == limits • コンテナ同士でシェアはできない • unlimited リソース は 未対応 – capabilityっぽいリソース – dirty hack あり (後述) # your container A resources: requests: nvidia.com/gpu: 1 limits: nvidia.com/gpu: 1 # your container B resources: limits: nvidia.com/gpu: 1 別々のGPU 要同値&整数 11
  • 12. ● gRPC on unix socket で通信 ● device id や deviceファイル情報 をやり取り ● kubelet は起動時に --device, -v オプションを つけてコンテナを起動 Kubernetes Device Plugin 動作概要 12 /dev/my0 /dev/my1 /dev/my2 /dev/my3 device-plugin Pod /dev/my0, 1 --device, -v, --env 等のoption付きで起動 kubelet
  • 13. Kubernetes Device Plugin の 動作概要 • design doc, api定義(v1beta1) が詳しい kubelet device plugin gRPC API Action Register ListAndWatch Container起動前 Register ListAndWatch Allocate PreStartContainer kubelet.sock hoge.sock unix socket 主に Register処理 と 2つのAPI を実装する 13
  • 14. Kubernetes Device Plugin: Register kubelet device plugin gRPC API Action Register Registerkubelet.sock unix socket # rpc Register (RegisterRequest) returns (Empty) {} RegisterRequest { version = “v1beta1” endpoint = “/var/lib/kubelet/device-plugin/hoge.socket” ← pluginのsocket名 resource = “my-device-name” ← デバイス名 options = DevicePluginOptions { pre_start_required = true ← Allocate 後に PreStartContainer を呼んでほしいか } } 問題があればエラー が返る 14
  • 15. Kubernetes Device Plugin: ListAndWatch kubelet device plugin gRPC API Action ListAndWatch ListAndWatchhoge.sock unix socket デバイスリストを 更新し続ける # rpc ListAndWatch (Empty) returns (stream ListAndWatchResponse) {} # デバイスの状態が変わったら速やかに全デバイスのリストを再送信 ListAndWatchResponse { devices = [ Device { ID = “GPU-fef8089b-4820-abfc-e83e-94318197576e” ← デバイスのID health = “Healthy” ← Healthy or Unhealthy }, ... ] } 15
  • 16. Kubernetes Device Plugin: Allocate kubelet device plugin gRPC API Action Container起動前 Allocatehoge.sock unix socket デバイスを要求 # rpc Allocate (AllocateRequest) returns (AllocateResponse) AllocateRequest { container_requests = [ ContainerAllocateRequest { deviceIDs = [ “GPU-...”, “GPU-...” ] ← 各コンテナに割り当てたいIDのリスト } ] } 16
  • 17. Kubernetes Device Plugin: Allocate # rpc Allocate (AllocateRequest) returns (AllocateResponse) AllocateResponse { container_responses = [ ContainerAllocateResponse { envs = map( “env_name”: “env_value” ) ← 環境変数 mounts= [ Mount { ← ホストボリュームマウント指定(-v) host_path = “...” mount_path = “...” read_only = true/false } ] devices = [ DeviceSpec { ← ホストデバイスマウント指定(--device) container_path = “/dev/foo” host_path = “/dev/bar” permissions = r / w / m ← r = read, w = write, m = mknod 権限 } ] annotations = map( “key”: “value” ) ← コンテナアノテーション }, ]} 17
  • 18. Kubernetes Device Plugin: PreStartContainer kubelet device plugin gRPC API Action Container起動前 PreStartContainerhoge.sock unix socket # rpc PreStartContainer (PreStartContainerRequest) returns (PreStartContainerResponse) {} PreStartContainerRequest { devicesIDs = [ “GPU-...”, “GPU-...” ] ← 初期化等の前処理をするデバイスIDs } PreStartContainerResponse { } ← レスポンスは中身なし pre_start_required = true の場合のみ呼ばれる 18
  • 19. InfiniBand 用に Unlimited な Extended Resource を擬似的に作る Pod PFN における 自作device plugin (everpeace/k8s-host-device-plugin) 19 everpeace/k8s-host-device-plugin /dev/infiniband/uverbsX kubelet /dev/infiniband/uverbsX /dev/infiniband/rdma_cm /dev/infiniband/rdma_cm ● 特定のdeviceファイルの集合 に 大量 のdummy device IDをつける ● Allocate ではどの ID をリクエストされても 同じDeviceSpecを返す
  • 20. まだまだ発展途上なので注意が必要 • KEP や issueがたくさんあって今後大きく変わる可能性あるかも – KEP-14: New Resource API proposal (kubernetes/community#2265) • ResourceClass の提案 (Volume Classみたいな) • GPUモデルをLabels/Taintsで管理するんじゃなくてもっとちゃんと – KEP-18: Compute Device Assignment (kubernetes/community#2454) • ComputeDevice と ComputeDeviceBind 使ってdevice の bindを表現 • kubeletが保存しているlocal checkpoint(containerとdevice IDの対応)からの脱却 – specify hw devices in container (kubernetes/kubernetes#60748) • Container Spec に hostDevices attributeを追加 20
  • 22. • PodをNodeに割り当てる 責務を担うControl Plane のコンポーネント • kube-schedulerの動作は この2つを読めばほぼ完璧 です – @tkusumi さんの “Kubernetes: スケジューラの動作” – チェシャ猫(@y_taka_23) さんの "猫でもわかるPod Preemption" • 特徴 – schedule policy を 柔軟 にカスタマイズ • toleration, nodeSelector, affinity といった機能はココ – priority による preemption – Extender (Webhook) による拡張 kube-schedulerとは 22
  • 23. Pod Queue (FIFO) kube-schedulerの動作 23 Pod を 1個 Pop 対象ノードを選ぶ ノードに紐づけ プリエンプション (犠牲となるPod群を停止) kube-api 対象ノードがない Bind リソースを作成 犠牲 Pod群 を Delete PodをWatch 注: 対象ノードが選べなかった   時点でPod Statusを更新して キューの最後尾に入る
  • 24. Pod Queue (FIFO) kube-schedulerの動作 24 Pod を 1個 Pop 対象ノードを選ぶ ノードに紐づけ プリエンプション (犠牲になるPod群を停止) kube-api Policy 及び Extender でカスタム可能 Extender でカスタム可能 Extender でカスタム可能 対象ノードがない Bind リソース を作成 犠牲Pod群をDelete PodをWatch
  • 25. 25出展: Kubernetes: スケジューラの動作 - Qiita by tkusumi kube-schedulerの動作: ノードを選ぶ
  • 26. 26出展: Kubernetes: スケジューラの動作 - Qiita by tkusumi kube-schedulerの動作: ノードを選ぶ ● Policyで選べる ● Extenderで独自Predicates ● Policyで選べる ● Extenderで独自ロジック挿せる
  • 27. kube-schedulerの動作: プリエンプション 27 Node 1 Node 2 Node 3 Node 4 候補ノードを選ぶ ● クリティカルな FitError以外の ノード ● 低優先度Podがい るノード Node 2 Node 3 Node 4 犠牲Node&Podを選ぶ 1. 低優先Pod全部犠牲候補にして (抜いてみて) fit するかチェック 2. pdb違反を高優先度から順に fitする限り救済 3. 残りも高優先度から順にfitする 限り救済 4. 残りを犠牲Podsとする Node 2 Node 3 Extenderによる調整 ● 選ばれたノードと犠牲 Podsを受け取って調 整できる ● Victimを完全に選ぶ ことはできない Node 2 Nodeを1つに絞る 下記の順にNodeを絞る 1. PDB違反数最小 2. 最高優先度最小 3. 優先度和最小 4. 犠牲pod数最小 5. ランダム!
  • 28. kube-scheduler のカスタマイズ方法 • 残念ながらほとんどdocumentはない(記事は幾つか存在する ) • コマンドラインオプションは公式ドキュメント に載っている – --config でファイルを渡す形式(--write-config-toでdefault書出し可) – 設定は下記を見ながらyaml, jsonを書くしか無い • kube-scheduler 自体の設定 → KubeSchedulerConfiguration (yaml サンプル) • スケジューリングポリシー(predicates, priorities, extenders, etc.) → Policy (json サンプル) • Extender: ドキュメント(design-doc) – サンプル: everpeace/k8s-scheduler-extender-example • 自分で自由にpredicate, priority, preempt, bind等のロジックを webhookで挿せる – 応用: everpeace/kube-throttler: Throttle CRDを使ってpodのスケジュールをthrottle 28
  • 29. PFNでのカスタム事例 • 寄せて詰めたい (= Greedy な Bin Packing) – podがfitする中で一番空きが少ないところに入れる – MostRequestedPriority を使う • Victim を 自由に選びたい – kube-schedulerが Vicitim Pod を選び、Extenderは調整しか できないので – やむなくforkして実装している(諸事情で現在未デプロイ) • 新バージョンが来たときのrebaseが辛い • Extenderでもうちょっと柔軟にできるようにしてほしい 29
  • 30. まだできていないけどやりたい • キューの改善 – kube-schedulerはFIFO – 色々と既存のアルゴリズムはある • ギャングスケジューリング – 分散学習だとpodを1個ずつscheduleすると簡単にdeadlock が起きる • 機械学習を活用したスケジューリング 30
  • 31. Kubernetes の Scheduler もまだまだ発展途上 • kube-scheduler がものすごく多くのデフォルト機能を実装していて 自作のスケジューラが同じ機能を実装するのが困難なのが実情 • kubernetes-incubator/kube-arbitrator (←やりたいことに近いかも ) – HPC系のスケジューラの機能の実現 – JobQueue, Gang Scheduling, Preemption に対応している – まだまだ絶賛開発中な模様 • 幾つかのスケジューラ系のKEPも存在 – Add scheduling framework design proposal (kubernetes/community#2281) • よりカスタマイズできるように schedulerをframework化 – KEP: Gang scheduling (kubernetes/community#2337) • PodGroup というresourceを導入してGroup単位でschedule 31
  • 33. Icons made by Vincent Le Moign from https://icon-icons.com/ licensed by CC 3.0 BY Thank you for Listening!! Any Questions? 33
  • 35. ギャングスケジューリング • 複数のコンテナ(Pod)を同時にノードにスケジュールする • 分散学習ジョブの場合はギャングスケジューリングでデッドロックを回避できる – Kubernetes: kubernetes-incubator/kube-arbitrator (未デプロイ) 35 Job A Job B Scheduler Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY gpu by Misha Petrishchev from the Noun Project
  • 36. MN-1a 構成 36 Total: 1024 GPUs (NVIDIA Tesla P100) 8 GPUs x 16 Servers 56 Gps(InfiniBand FDR) x 2 56 Gbps(InfiniBand FDR) x 2 credits:                              gpu by Misha Petrishchev from the Noun Project Network Switch by Creaticca Creative Agency from the Noun Project
  • 37. MN-1b 構成 37 8 GPUs x 16 Servers 100 Gps(InfiniBand EDR) x 2 100 Gbps(InfiniBand EDR) x 2 credits:                              gpu by Misha Petrishchev from the Noun Project Network Switch by Creaticca Creative Agency from the Noun Project MN-1a Total: 512 GPUs (NVIDIA Tesla V100)