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
ビッグデータ分析システムにおける 分散分析基盤のリソース割当最適化
Search
Rina Ueno
June 22, 2023
Technology
0
58
ビッグデータ分析システムにおける 分散分析基盤のリソース割当最適化
2023/6/2-3 会津大学にて開催されたサービスコンピューティング研究会に登壇しました。そのときに発表資料です。
現在Rayの利活用について調査しています。
その時の研究アイデアです。
Rina Ueno
June 22, 2023
Tweet
Share
More Decks by Rina Ueno
See All by Rina Ueno
Open Policy Agentを用いたAPI Gatewayの認可制御 / Authorization in API Gateway using Open Policy Agent
enori
3
530
Other Decks in Technology
See All in Technology
MLOps の現場から
asei
6
650
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
170
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
37
14k
20241220_S3 tablesの使い方を検証してみた
handy
4
610
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
210
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
200
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
260
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
590
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
A Philosophy of Restraint
colly
203
16k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Writing Fast Ruby
sferik
628
61k
Agile that works and the tools we love
rasmusluckow
328
21k
Automating Front-end Workflow
addyosmani
1366
200k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
Transcript
© Hitachi, Ltd. FY2023. All rights reserved. ビッグデータ分析システムにおける 分散分析基盤のリソース割当最適化 2023/6/2-3
サービスコンピューティング研究会 ㈱日立製作所 研究開発グループ 〇上野 里奈、藪崎 仁史
© Hitachi, Ltd. FY2023. All rights reserved. クラウド上での分散分析の課題 ▪ ビッグデータ処理は処理コストが高く「実行時間が長い」
▪ 処理を高速化するため、分散分析基盤で処理を並列化 ◇ Hadoop, Spark, Ray 1
© Hitachi, Ltd. FY2023. All rights reserved. Ray framework Ray
AI Runtime ▪ MLエンジニア、データサイエンティスト、研究者向け ▪ MLアプリケーションのためのスケーラブルで統一的なツールキット ▪ オープンソース、Python、ドメイン固有のライブラリセットで提供 Ray Core ▪ MLエンジニア、Python開発者向け ▪ オープンソースで、Pythonで、汎用的な、分散コンピューティングのライブラリ ▪ PythonアプリケーションでMLワークロードを拡張する作業を速くできる Ray Cluster ▪ Head NodeとWorker Nodeのセット ▪ クラスタのサイズは固定でも、ジョブが必要とするリソースサイズにオートスケールす ることもできる ▪ ローカルマシン、Kubernetes Pod、AWSやGCPのインスタンスなどでも構成可能 2 head worker worker Scale out/in … Ray Cluster
© Hitachi, Ltd. FY2023. All rights reserved. クラウド上での分散分析の課題 ▪ ビッグデータ処理は処理コストが高く「実行時間が長い」
▪ 処理を高速化するため、分散分析基盤で処理を並列化 ◇ Hadoop, Spark, Ray ▪ クラウド上でビッグデータを分散処理すると利用コストが高くなる ▪ 実行時間の最小化をしつつ、リソースの利用コストを抑えることが重要 3
© Hitachi, Ltd. FY2023. All rights reserved. 分散分析基盤のスケジューリングの色々 ▪ ベストエフォート方式
◇ リクエスト順にでデプロイ済みのリソースのうち使用可能なものを割り当てる ◇ 使用可能なリソースがなく待機時間が長くなる場合は、分散分析基盤のリソースポリシーの 範囲内でリソースをスケールする ▪ スケジュール方式 ◇ リソースの事前予約と実行完了期限の設定によって、優先的にリソースを割り当てる ▪ 優先度方式 ◇ ジョブに優先度を付与し、優先度の高い順にリソースを割り当てる ◇ 使用可能なリソースがない場合は、低優先度のジョブを一時停止して使用可能なリソースを つくって譲る 4
© Hitachi, Ltd. FY2023. All rights reserved. リソース使用量と実行時間のバランスの最適化 ワークロードごとにリソース割当量と実行時間との関係を表すパラメータを定義 ◇
リソースの使用効率が高く、実行時間が短くなるリソース量を推定 5 ピーク使用量かつ顕著な性能低下がない点 リソース量 ジョブ実行時間 (s) リソース量とジョブ実行時間は指数関数的に減少する リソース割当量とジョブ実行時間はトレードオフの関係
© Hitachi, Ltd. FY2023. All rights reserved. 課題 ▪ データの分散に伴う転送遅延などのオーバーヘッドがある
オーバーヘッドは分析対象のデータの量に依存する ▪ 既存手法は、与えるジョブは単一、分析対象のデータの量は一定、を前提としてる。 リソース割当量は、デフォルト値や事前定義した値通り。 ▪ 分析対象のデータ量が可変なアプリケーションへは適用できない ▪ 何回もいろんな処理に対して分散分析基盤を用いたいアプリケーションへの適用ができない ◇ 処理の中でデータ量が変わっていくから ▪ オーバーヘッド、分析対象データの量を考慮して、リソース使用量の最小化と実行時間の最小化 の両立 6
© Hitachi, Ltd. FY2023. All rights reserved. 1. 2. 分散分析基盤のリソース割当最適化の提案の概要
1. ワークロードごとにリソース割当量と実行時間とデータ量の関係を表すパラメーターを定義 2. アプリケーション内のタスクを認識・識別、 各タスクの最適なリソース量を瞬時に決定・スケーリングする方法 7 データ量 実行時間 リソース割当量 タスクの 処理内容 データ量 最適な リソース量 ? import math def dsin(x): return math.sin(math.radians(x)) def dcos(x): return math.cos(math.radians(x)) def dtan(x): return math.tan(math.radians(x)) print("sin60°: {}".format(dsin(60))) print("cos60°: {}".format(dcos(60))) print("tan60°: {}".format(dtan(60))) TaskX 最適なリソース量 TaskX アプリケーション実行
© Hitachi, Ltd. FY2023. All rights reserved. ソースコードの記述 リソース最適化を適用する関数には、 「リソース最適化適用の関数アノテーション」を
付与 リソース最適化処理をする際に必要な機能の ライブラリを取り込む 1 import ray 2 import ray[resource_optimizer] 3 4 5 def func1(): 6 print(‘func1’) 7 with … 8 9 @ray.remote() 10 def func2(): 11 print(‘func2’) 12 with … 13 14 @ray.remote(optimize_resource=True) 15 def func3(): 16 print(‘func3’) 17 with … 18 19 @ray.remote(optimize_resource=True) 20 def func4(): 21 print(‘func4’) 22 with … 23 … 最適リソース推定 ライブラリの読込 分散分析基盤の リソース最適化を 適用するタスクT1 分散分析基盤の リソース最適化を 適用するタスクT2 リソース最適化適用の 関数アノテーション 8
© Hitachi, Ltd. FY2023. All rights reserved. リソース量予測モデルの生成 import ray
import ray[resource_optimizer] @ray.remote (optimize_resource=True) def func1(): print(‘hello world’) … モデルの生成 対象タスクの抽出 対象タスクの実行 分析の サンプル データ モデル生成コンテナ 分散分析基盤 トレーシング 情報 保存 学習データ リソース量予測モデル アプリケーションコード 実行命令/結果 読込 保存 読込 9 実行時間に対する割当リソースデータ量の相関 実行時間T ・・・ タスクごとに 存在する タスクごとに 存在する ソースコードからリソース最適化の対象となるタスクを発見して タスクを実際に実行することで 「リソース量」「データ量」「実行時間」で1セットの 学習データをたくさん収集する 表上の点はリソースの使用効率がX%となる点
© Hitachi, Ltd. FY2023. All rights reserved. 最適リソース量の逐次推定 実行命令/ 結果
アプリケーション リソース最適化コンテナ 分析データ 処理をホールド 処理のホールド解除 分散処理 処理の開始・継続 リソース 動的最適化処理 対象タスクの検出 データの受取 モデルの選出/ データ量の計量 リソースの最適量の決定 リソースのスケールの要求 スケール完了 分散分析基盤 スケール確認 命令 処理の完了 分析データ リソース最適化ライブラリ 10 関数名からモデルを選出 モデルに利用可能なリソース量/入力データ量を与えて、 リソース量を決定
© Hitachi, Ltd. FY2023. All rights reserved. まとめ • クラウド上でビッグデータの分散処理をする際、
実行時間の最小化をしつつ、リソースの利用コストを抑えることが重要 • 課題:リソースを効率的に使える範囲で処理時間を可能な限り短くするリソース量を推定 • 分散フレームワークRayをご紹介 • AIやPythonアプリを高速・シンプルに分散並列化するための計算レイヤーを提供 • 複数ノードでクラスタを構成 • アプリケーションコードへの関数アノテーションとライブラリを付与 データ量・リソース量・実行時間からリソース量予測モデルを生成 アプリ実行中にタスクを検出・識別し、データ量とモデルから最適なリソース量を決定しスケール • アプリケーション実行時間の短縮、リソースの動的割当、リソースの利用効率の向上が可能 11
© Hitachi, Ltd. FY2023. All rights reserved. 商標 • Python、Pythonのロゴは、米国Python
Software Foundationの登録商標です。 • Apache Hadoop、Hadoop、Apache、Apache、Apache Featherのロゴ、Apache Hadoop プロジェクトのロゴは、米国およびその他の国におけるApache Software Foundationの登録商 標または商標です。 12