CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回に続いて、2023年に公開された論文「Profiling Hyperscale Big Data Processing」に基づいて、Googleの大規模データ処理システムのプロファイリングデータを紹介します。今回は、前回に紹介できなかった、「システムを構成するノードによるCPU処理時間」の詳細について説明します。
前回の記事で、プロファイリング対象の処理時間を階層的に分割することを説明しました。そこでは、「システムを構成するノードによるCPU処理時間」を次の3つに分割すると説明しましたが、それぞれの内訳はまだ述べていませんでした。
ここで、それぞれの内訳について説明を加えておきます。まず、「Datacenter Tax」の内訳は、図1になります。分散処理のためにノード間でデータを移動する際に必要な処理が含まれています。
図1 Datacenter Taxの内訳(論文より抜粋)
それぞれのシステムにおけるこれらの分布は、図2になります。データ圧縮(Compression)、プロトコルバッファのシリアライゼーション(Protobuf)、そして、他のサービスを呼び出す処理(RPC)が大きな割合を占めています。これらは、プロトコルバッファを使用したRPCに共通の処理ですので、プロトコルバッファの処理に特化したアクセラレーターが効果を発揮すると予想されます。
図2 Datacenter Taxの分布(論文より抜粋)
続いて、「System Tax」の内訳は、図3、そして、各システムでの分布は、図4になります。OSカーネル(Operating Systems)と標準ライブラリー(STL)の処理時間が大きな割合を占めていることがわかります。
図3 System Taxの内訳(論文より抜粋)
図4 System Taxの分布(論文より抜粋)
最後に、「Core Compute」の内訳ですが、これはアプリケーションとして実行するべきデータ処理にあたるものですので、システムごとに内容が異なります。この論文では、SpannerとBigTableについては、図5、そして、BigQueryについては、図6の分類を適用しています。
図5 SpannerとBigTableに対するCore Computeの内訳(論文より抜粋)
図6 BigQueryに対するCore Computeの内訳(論文より抜粋)
そして、それぞれのシステムにおける分布は、図7になります。この結果を見ると、それぞれのシステムにおいて、関連したいくつかの処理が大きな割合を占めています。たとえば、BigQueryであれば、「Aggregate」「Filter」「Compute」の処理が大きな割合を占めています。そのため、それぞれの処理に特化したアクセラレーターを個別に実装するのではなく、複数のアクセラレーターが連携して、これらの処理を1つのパイプラインとしてまとめて実行するといったアイデアが考えられます。
図7 Core Computeの分布(論文より抜粋)
今回は、2023年に公開された論文「Profiling Hyperscale Big Data Processing」に基づいて、Googleを代表する大規模データ処理システムから収集されたプロファイリングデータ、特に、CPU処理時間の詳細を紹介しました。論文内では、それぞれの処理に対するアクセラレーターが実装できた場合に、どこまでの高速化が実現できるかをシミュレーションで見積もった結果も紹介されています。興味のある方は、実際の論文にも目を通してみてください。
次回は、大規模言語モデルによるコードレビュー支援の事例を紹介する予定です。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes