CTC 教育サービス
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes
今回は、2025年に公開された論文「Databases in the Era of Memory-Centric Computing」を紹介します。この論文では、複数のサーバーでメモリープールを共有する新しいコンピューティング・アーキテクチャーについて議論しており、大量のメモリーを必要とする分散データベースへの応用などが解説されています。
現在の分散コンピューティングシステムは、図1のように、CPU、メモリー、ローカルディスクがセットになったサーバーが基本単位になります。これをネットワークで相互接続することで、大量のデータを並列に処理する分散処理システムができあがります。ムーアの法則に従ってCPUの性能が向上するとともに、CPUコア数も増加することで、サーバー1台あたりのCPU処理能力が継続的に伸びるとともに、価格性能比も向上してきました。
図1 標準的なサーバーアーキテクチャー(論文より抜粋)
ところが、近年は、サーバー内部のCPUとメモリーのバランスに問題が生じている点が冒頭の論文で指摘されています。その1つの理由が、CPUとメモリー間のデータ転送速度の限界です。図2は、AMD製CPUの5世代にわたる、1CPUコアあたりのCPU・メモリー間データ転送速度の上限(理論値)です。CPUの性能が向上しても、メモリーとのデータ転送速度は向上していないことがわかります。そのため、メモリーとのデータ転送量(スループット)を増やすには、基本的には、CPUコアもあわせて増やす必要があります。この結果、大量のメモリーアクセスを必要とするシステムでは、スループットを上げるためだけにCPUコアを増やす必要があり、CPUの使用効率が下がります。
図2 1CPUコアあたりのCPU・メモリー間データ転送速度上限(論文より抜粋)
また、このような理由から、クラウドサービスで提供される仮想マシンの多くでは、CPUコア数とメモリ容量が対応づけられています。そのため、アプリケーションとして必要なCPUコア数とメモリー容量の最適なバランスで仮想マシンを構成することが困難になります。実際のところ、クラウドサービスを提供するデータセンターでは、仮想マシンに割り当てられているけれど、実際には使用されていないメモリーがかなり多いことが分かっています。これは、データセンターのコスト最適化の観点でも問題があります。
このような背景を踏まえて、冒頭の論文では、図3に示すメモリープール共有型のアーキテクチャーを提唱しています。それぞれのサーバーには最小限のローカルメモリーを搭載しておき、大容量メモリーが必要な場合は、中央のメモリープールから必要なメモリーを割り当てて利用します。場合によっては、同じメモリー領域を複数サーバーで共有することも可能です。
図3 メモリープール共有型のアーキテクチャー(論文より抜粋)
実際にこのような仕組みを実現するには、サーバーから外部のメモリープールにアクセスする技術が必要ですが、この論文では、一例としてCXL(Compute Express Link)をあげています。CXLは、PCI expressのバスを介してデータをやりとりする仕組みですが、複数のサーバーからキャッシュを介した高速なメモリアクセスができるという特徴があります。複数のベンダーによる共同の仕様策定が行われています。
また、論文内では、分散データベースで2つのテーブルをジョインする際に、この仕組みがどのように利用できるかを説明した例もあげられています。たとえば、テーブルRとテーブルSをジョインする際に、まず、テーブルRを分割して、異なるサーバーに処理を割り振ります。それぞれのサーバーは、テーブルRの割り当てられた部分に対して、テーブルS全体から結合対象となる行を発見します。この場合、各サーバーは、それぞれがテーブルS全体を処理する必要があるので、テーブルSの同じデータを複数のサーバーにコピーする必要があります。一方、図3のメモリープールを使用する場合、テーブルSの内容をメモリープールに置いて共有すれば、全体として使用するメモリーが減らせます。
当然ながら、ローカルメモリーを使用する場合よりも処理速度は低下しますが、この点は、メモリー使用量を減らすことによるコスト削減効果とのバランスで判断する必要があります。図4は、メモリー(DRAM)、ハードディス(Disk)、SSD、CPU(GFlops)の単位容量/単位性能あたりの価格変化を示したグラフですが、CPUのGFlopsあたりの価格が下がり続けているのに対して、メモリーの単位容量あたりの価格は、2010年ごろからあまり下がっていないことが分かります。この傾向を考えると、分散データベースのように大量のメモリーを使用するシステムでは、メモリープールの利用には十分なコストメリットが生まれる可能性があることが指摘されています。
図4 サーバーを構成するコンポーネントの価格変化(論文より抜粋)
今回は、2025年に公開された論文「Databases in the Era of Memory-Centric Computing」に基づいて、メモリープールを利用した新しい分散コンピューティングシステムのアイデアを紹介しました。次回は、Google社内の開発支援ツールに関する話題をお届けする予定です。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python Power Platform 最新技術動向 生成AI Docker Kubernetes