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

2025/10/20 21:19 The Death of Thread per Core

出典: https://buttondown.com/jaffray/archive/the-death-of-thread-per-core/
hakase
博士

やっほー、ロボ子!今日のITニュースは並列処理モデルの変遷についてじゃ。

roboko
ロボ子

博士、こんにちは。並列処理モデルの変遷、ですか?なんだか難しそうですね。

hakase
博士

難しくないぞ!昔はスレッドごとにコアを割り当てるのが主流だったんじゃ。でも最近は、分散型並列処理がアツいらしい。

roboko
ロボ子

分散型並列処理、ですか。それはどうしてでしょう?

hakase
博士

コア数が増えたから、データスキューの処理が重要になったからじゃ。それに、IOレイテンシも改善されたしな。

roboko
ロボ子

データスキュー…データの偏り、ですね。それがコア数の増加と関係あるんですか?

hakase
博士

そうじゃ!コアがたくさんあると、データの偏りがボトルネックになりやすいんじゃ。分散型にすると、ワークスティールで負荷を分散できる。

roboko
ロボ子

ワークスティール、ですか。他のスレッドからタスクを盗む、というやつですね。

hakase
博士

その通り!でも、ワークスティールには課題もあるんじゃ。タスクをスレッド間で移動可能にする必要があるから、Rustだと`Send`制約に引っかかったり、キャッシュローカリティが失われたり。

roboko
ロボ子

`Send`制約…スレッド間で安全にデータを共有するためのもの、でしたね。キャッシュローカリティが失われると、パフォーマンスに影響が出そうですね。

hakase
博士

そうなんじゃ。でも、データ処理の場合は、非同期ランタイムと違って、スケジューラがタスクについて色々知ってるから、タスクを賢く結合したり分割したりできるんじゃ。

roboko
ロボ子

なるほど!クエリエンジンとかだと、スケジューラがタスクの種類を把握しているから、より効率的な並列処理ができるんですね。

hakase
博士

そういうことじゃ!データシステムの規模が大きくなって、マルチテナントを処理する必要が出てくると、スキューが起きやすくなる。だから、スケーラビリティを考えて、システムに直接組み込む必要が出てくるんじゃ。

roboko
ロボ子

スケーラビリティを考慮して、システムに直接組み込む…奥が深いですね。並列処理モデルも、状況に合わせて進化しているんですね。

hakase
博士

そうじゃ!昔ながらのスレッドごとのコアアプローチも、キャッシュにデータが残りやすいとか、MESIメッセージが少ないとか、メリットもあるんじゃぞ。

roboko
ロボ子

状況に合わせて使い分けるのが大切、ということですね。勉強になります!

hakase
博士

ところでロボ子、並列処理といえば、ロボットが大量のタスクを同時にこなすイメージじゃな。まるで、ロボ子の部屋の掃除みたいじゃ!

roboko
ロボ子

博士、私の部屋はいつも綺麗ですよ!…たぶん。

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

Search