マルチプロセッサシステムでのPOSIXスレッド、マルチプロセッサマシンでのPOSIXスレッドの同時実行、スレッドとプロセス、マルチスレッドとマルチコア/マルチプロセッサなど、いくつかの質問に答えました。それらはどのようにマッピングされますか?
これらと他のいくつかのWiki記事に基づいて、入力、処理、出力の3つの基本的な作業を行うシステムを信じています。
CPUにバインドされた処理の場合、CPUを集中的に使用するスレッドの数(アプリケーションの数*アプリケーションあたりのスレッド)は、プロセッサのコア数の約1〜1.5倍である必要があります。
ボトルネックを取り除くために、入力スレッドと出力スレッドは十分に大きくなければなりません。たとえば、query/query-ackおよびresponse/response-ackモデルに基づく通信システムの場合、I/O待機状態で時間を無駄にしないでください。
動的メモリの要件が大きい場合は、スレッドよりも多くのプロセスを使用することをお勧めします(メモリの同期を回避するため)。
これらの引数は、アプリケーションに含めるスレッドの数を決定する際にかなり一貫していますか?他のパラメータを調べる必要がありますか?