1

プロセス間の超大量のメッセージ配信のためのマルチスレッド共有メモリメッセージングシステムを作成します。メッセージは、Webサーバーのワーカースレッドから発信されます。同じCPU共有をコアとするCPUキャッシュの局所性を活用したいと思います。そのため、このIPCシステムの受信側でワーカースレッドをウェイクアップするときに、同じCPUでスレッドをウェイクアップします。

Linux(一般的にはPOSIX)とWindowsが必要です。API呼び出しとビットマスキングを使用して、実行中のスレッドIDを分類できるようにする情報を抽出します。このスレッドのコンテキストから次の構造体を使用します。 :

struct thread_core_id
{
    uint16_t cpu_Id;
    uint16_t core_Id;
};

両方のプラットフォームの機能が高く評価されます。これがシステムコール、つまりコンテキストスイッチなしで実行できることを望んでいます。

- 編集 -

現在はx86に焦点を当てていますが、他のアーキテクチャも同様に役立つでしょう。

4

1 に答える 1

1

/proc/cpuinfo特にLinuxの場合、必要な情報を取得して呼び出し/sys/devices/system/cpu/cpu*/cacheで使用できるはずです。What Every Programmer Should Know About Memorysched_{s|g}etaffinity()をまだ見ていない場合は、セクション 5.3 あたりを見てください。

于 2010-01-11T19:41:35.487 に答える