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
大規模データ基盤チームのオンプレTiDB運用への挑戦 / dpu-tidb
cyberagentdevelopers
PRO
1
110
[AWS JAPAN 生成AIハッカソン] Dialog の紹介
yoshimi0227
0
150
20241031_AWS_生成AIハッカソン_GenMuck
tsumita
0
110
2024-10-30-reInventStandby_StudyGroup_Intro
shinichirokawano
1
640
「 SharePoint 難しい」ってよく聞くけど、そんなに言うなら8歳の息子に試してもらった
taichinakamura
1
630
生成AIと知識グラフの相互利用に基づく文書解析
koujikozaki
1
140
AWS CDKでデータリストアの運用、どのように設計する?~Aurora・EFSの実践事例を紹介~/aws-cdk-data-restore-aurora-efs
mhrtech
4
660
生成AIとAWS CDKで実現! 自社ブログレビューの効率化
ymae
2
330
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.6k
「最高のチューニング」をしないために / hack@delta 24.10
fujiwara3
21
3.5k
Vueで Webコンポーネントを作って Reactで使う / 20241030-cloudsign-vuefes_after_night
bengo4com
4
2.5k
生成AIの強みと弱みを理解して、生成AIがもたらすパワーをプロダクトの価値へ繋げるために実践したこと / advance-ai-generating
cyberagentdevelopers
PRO
1
180
Featured
See All Featured
Ruby is Unlike a Banana
tanoku
96
11k
Speed Design
sergeychernyshev
24
570
BBQ
matthewcrist
85
9.3k
The Invisible Side of Design
smashingmag
297
50k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
GraphQLとの向き合い方2022年版
quramy
43
13k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Optimizing for Happiness
mojombo
376
69k
The Cult of Friendly URLs
andyhume
78
6k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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