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
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
190
5分でわかるDuckDB
chanyou0311
10
3.2k
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
2
250
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
1
170
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
310
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
180
NW-JAWS #14 re:Invent 2024(予選落ち含)で 発表された推しアップデートについて
nagisa53
0
260
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
220
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
840
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
280
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
190
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
Designing Experiences People Love
moore
138
23k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Rails Girls Zürich Keynote
gr2m
94
13k
Typedesign – Prime Four
hannesfritz
40
2.4k
GraphQLとの向き合い方2022年版
quramy
44
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Raft: Consensus for Rubyists
vanstee
137
6.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Building Your Own Lightsaber
phodgson
103
6.1k
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