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
56
ビッグデータ分析システムにおける 分散分析基盤のリソース割当最適化
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
520
Other Decks in Technology
See All in Technology
ABEMA のコンテンツ制作を最適化!生成 AI x クラウド映像編集システム / abema-ai-editor
cyberagentdevelopers
PRO
1
180
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
290k
ガチ勢によるPipeCD運用大全〜滑らかなCI/CDを添えて〜 / ai-pipecd-encyclopedia
cyberagentdevelopers
PRO
3
210
生成AIと知識グラフの相互利用に基づく文書解析
koujikozaki
1
140
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
130
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
1
180
プロダクトチームへのSystem Risk Records導入・運用事例の紹介/Introduction and Case Studies on Implementing and Operating System Risk Records for Product Teams
taddy_919
1
170
2024-10-30-reInventStandby_StudyGroup_Intro
shinichirokawano
1
630
Autify Company Deck
autifyhq
1
39k
話題のGraphRAG、その可能性と課題を理解する
hide212131
4
1.5k
10分でわかるfreeeのQA
freee
1
3.4k
AWS re:Inventを徹底的に楽しむためのTips / Tips for thoroughly enjoying AWS re:Invent
yuj1osm
1
570
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Art, The Web, and Tiny UX
lynnandtonic
296
20k
A designer walks into a library…
pauljervisheath
202
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
How GitHub (no longer) Works
holman
311
140k
A better future with KSS
kneath
238
17k
The Language of Interfaces
destraynor
154
24k
Designing for humans not robots
tammielis
249
25k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
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