2011-01-14 13 views

答えて

2

example(これは単なるベンチマークです)、スレッドのアフィニティを設定するときに実際のパフォーマンスを得ることができます(アフィニティおよびその他のハッキングでパフォーマンスが10倍向上します)。

このベンチマークアフィニティ設定では、実際にコアクワッドの機能を利用することができます。これは実際には2つのデュアルコアプロセッサであるため、異なるコア間の通信価格は同じではありません。

2つの並列シミュレーションを実行して、コアペア間の高価な相互作用を排除します。各シミュレーションはそのコアのペアで実行され、ここで親和性はスレッドを別のコアから別のコアに移動して戻すのを避けるために再び役立ちます。

+0

+1、興味深い例。他のハックや実際のアフィニティの使用に関するリンク –

+1

http://www.rsdn.ru/forum/cpp/3539197.1.aspxここでは、C実装についての優れた記事ですが、ロシア語です。 Google翻訳で翻訳することができます:http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=ru&tl=en&u=http%3A%2F%2Fwww.rsdn。 ru%2Fforum%2Fcpp%2F3539197.1.aspx – ssmir

0

ある時点で、バッチ処理を行うためにMicrosoft Wordを自動化していて、マルチCPUシステムでランダムにクラッシュしていました。メモリアクセスのバグであり、Wordプロセスのアフィニティを単一のコアでのみ実行するように設定し始めたと考えました。それが問題を解決しました。 これは正確にあなたが探しているものではないことを知っているが、共有することに決めました:)

1

あなたはスケジューラを圧倒することができると思う。これはかなり珍しいはずです。

+0

icですが、スケジューラは私のプログラムと環境についてほとんど知りません。スレッド数=ハードウェアの並列性、専用サーバーを検討してください。別のコアにスレッドを接続しないと、システムスレッドによって引き起こされるいくつかの散発的なコンテキストスイッチが削除されますか? –

+2

@robinコンテキストスイッチは、どのコアが実行されているか、または中断できるかどうかではなく、実行中のコア(親和性)がコンテキストスイッチを排除しません。あなたが得るかもしれないのは、同じコアに戻って再スケジューリングされた場合(そしてアーキテクチャーがコアごとにローカルキャッシュをサポートしている場合)、スレッドがまだローカルキャッシュにホットメモリを持つ可能性があるということです。 –

+0

@chibacity:ホットキャッシュは良い点です、tnx。コンテキストスイッチについて - 私はプログラムスレッドを中断するいくつかのシステムスレッドについて考えました。プログラムスレッドがコアに接続されている場合は、それが戻って2つのスイッチがあります。スケジューラがそのようなケースを完全に処理するかどうかわからない別のプログラムスレッドを中断することができます。 –

0

MKは、アプリケーションが一定量のコアで実行する必要があると感じる場合にのみ、この必要条件が述べられています。彼の例では合理的です。他のケースでは、アプリケーションがシステムにボトルネックを起こさないようにしたい場合があります。たとえば、プロセスが4コアのマシンで同時に実行され、余分な時間を待たなければならない他のプログラムが発生します。代わりに、2つのコアだけを使用して、他の2つのコアがさまざまなアプリケーションの他の重要な情報を処理できるようにプログラムを設定することもできます。ほとんどの場合、特定のニーズがある場合やアプリケーションが特定のパフォーマンス調整を必要とする場合を除いて、それ自体で、または他のアプリケーションと効率的に実行する必要がない限り、これを行う必要はありません。

+0

は、前述のケースでスレッド優先順位が設計されていませんか? –

+0

それはあなたのアプリケーションが何をするかで終わりますが、ミューテックスを使用する方が良い場合もあれば、スピンロックがうまくいく場合もあります。スレッドの優先順位は次のような状況で使用できます:私はタスク1,2,3を持っています。私は現在タスク1と2を実行しています。タスク1が終了すると、タスク3を行うことができます。そのため、タスク1当面の優先事項として、タスクをすばやく完了できるようにします。これもまた、アプリケーションに大きく依存し、何が達成される必要があるかにも依存します。 –

関連する問題