私はインテルXeon E5-2620に24個のCPUを搭載しています。私はopensslを使ってAESの解読のために24のスレッドを作成するアプリケーションを書いています。 1万回のデータ復号化でスレッド数を1から24に増やすと、次のような結果が得られます。 24コアCPUでスレッド数を4以上に増やすことでパフォーマンスが低下
問題は、問題がコアの使用ではないか、ということを示しているラムの少なくとも半分は無料で、常に私は、スレッド数を増加させたときに私が決定したコアの全てが100%になっているし、ため、システムの32ギガバイトのRAMラム限界。 OSレベルでパフォーマンスを向上させるための特別なパラメータを設定しなければならないか、最大限のパフォーマンスで4スレッド以上に達することができないプロセス制限であることが分かります。 私は "openssl evp ..."を実行すると、プロセスフォークのためにaes暗号化復号化をテストすると、コアパフォーマンスの約20倍以上のパフォーマンスが向上することに言及する必要があります。 誰もが考えていますか?
一つの問題は、「コア」の半分である*実際の*コアではなく、いくつかのパイプラインのトリックをエミュレートする仮想コアの種類、: 次のコマンドを使用して第七コアを無効にすることができます。だから、あなたが12スレッド以上になると、(小さな)バンプがあるのです。 –
'openssl evp'はシングルスレッドですか? – malat
考えられる説明がたくさんありますが、ベンチマークcosde * ...(ヒント)を表示していない場合は*推測できます。 –