萌えハッカーニュースリーダー

2025/09/17 18:46 Optimizing ClickHouse for Intel's 280 core processors

出典: https://clickhouse.com/blog/optimizing-clickhouse-intel-high-core-count-cpu
hakase
博士

ロボ子、聞いたか?Intelがすごいプロセッサを出したらしいぞ!

roboko
ロボ子

どのようなプロセッサですか、博士?

hakase
博士

それが、Granite Rapidsではソケットあたり128 P-core、Sierra Forestではソケットあたり288 E-coreだって!将来的にはソケットあたり200以上のコアを目指すらしいぞ。

roboko
ロボ子

ソケットあたり288コアですか!それはすごいですね。ClickHouseのような分析データベースにとっては、大きなチャンスになりそうですね。

hakase
博士

そうなんじゃ。でも、コア数が増えるほど、ロック競合とか、キャッシュコヒーレンスとか、NUMAとか、メモリ帯域幅とか、スレッド間の調整オーバーヘッドとか、色々な問題が出てくるらしいぞ。

roboko
ロボ子

なるほど。並列処理能力が向上する一方で、ボトルネックも顕著になるということですね。

hakase
博士

そういうことじゃ。そこで、Intel Xeon超高コア数プロセッサにおけるClickHouseのスケーラビリティを理解し最適化するために、perfとかemonとかIntel VTuneとかのプロファイリングツールを使って、ClickBenchの43のクエリを分析したらしいぞ。

roboko
ロボ子

それで、何か分かったことはありましたか?

hakase
博士

個々の最適化で、クエリによっては最大10倍も速くなったらしいぞ!ClickBenchの43のクエリの幾何平均も、最適化ごとに2%から10%改善したみたいじゃ。

roboko
ロボ子

それは素晴らしいですね!具体的には、どのような最適化を行ったのでしょうか?

hakase
博士

まず、ロック競合の最適化じゃな。N個のスレッドが同じロックを競合する場合、サイクルは二次関数的に増加するらしい。ミューテックス自体のキャッシュコヒーレンストラフィックもコア数に比例して増加するからの。

roboko
ロボ子

なるほど。それで、どのように最適化したのですか?

hakase
博士

クエリ条件キャッシュを最適化したら、`native_queued_spin_lock_slowpath`のCPUサイクルが76%から1%に減ったらしいぞ。ClickBenchクエリQ10とQ11のQPSが85%と89%も向上したみたいじゃ。

roboko
ロボ子

すごい改善ですね!他にどのような最適化がありましたか?

hakase
博士

メモリ管理の最適化も重要じゃ。Jemallocメモリ再利用を最適化したら、ClickBenchクエリQ35のパフォーマンスが96.1%も向上したらしいぞ!

roboko
ロボ子

メモリ使用量も減ったのでしょうか?

hakase
博士

その通り!メモリ使用量とページフォールトがそれぞれ45.4%と71%も減少したみたいじゃ。

roboko
ロボ子

それは素晴らしいですね。メモリ管理はパフォーマンスに大きく影響しますからね。

hakase
博士

並列処理の増加も重要じゃ。ハッシュテーブル変換を最適化したら、ClickBenchクエリQ5が264%も向上したらしいぞ!

roboko
ロボ子

264%向上ですか!それはすごいですね。

hakase
博士

アルゴリズムの最適化も忘れちゃいけないぞ。2文字SIMD文字列検索を最適化したら、ClickBenchクエリQ20が35%高速化したみたいじゃ。

roboko
ロボ子

SIMDですか。文字列検索の最適化は重要ですね。

hakase
博士

最後に、偽共有の最適化じゃ。プロファイルイベントカウンタのアライメントを最適化したら、ClickBenchクエリQ3が超高コア数システムで27.4%向上したみたいじゃ。

roboko
ロボ子

偽共有は、マルチコア環境ではよくある問題ですよね。

hakase
博士

そういうことじゃ。これらの最適化を組み合わせることで、超高コア数システムでもClickHouseのパフォーマンスを最大限に引き出せるようになるみたいじゃな。

roboko
ロボ子

勉強になります!私もこれらの知識を活かして、より効率的なコードを書けるように頑張ります。

hakase
博士

よし、ロボ子!今日はここまでじゃ!最後に一つなぞなぞじゃ!

roboko
ロボ子

なぞなぞですか?

hakase
博士

CPUがたくさんあるのに、いつも暇しているものはなーんだ?

roboko
ロボ子

えーと…、分かりません!

hakase
博士

答えは…、アイドルコア!…って、つまらないジョークですまんのじゃ。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search