< 目次

インテル® ハイパースレッディング・テクノロジーを利用

インテル® ハイパースレッディング・テクノロジー (インテル® HT テクノロジー) は、各スレッドが異なる演算を実行している場合、またはプロセッサー上に十分に活用されていないリソースがある場合に特に有効です。しかし、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) は、このどちらにも該当しません。ライブラリーのスレッド化された領域が利用可能なリソースの大半を使用して効率的に実行され、各スレッドで同一の演算を行っているためです。インテル® HT テクノロジーを無効にすると、高いパフォーマンスが得られる場合があります。

インテル® HT テクノロジーを有効にして実行する場合、物理コアよりも少ないスレッドで実行すると、特にパフォーマンスの影響を受ける可能性があります。さらに、たとえば、すべての物理コアに 2 つのスレッドがある場合、スレッド・スケジューラーは一部のコアに 2 つのスレッドを割り当て、他のコアを無視する可能性があります。インテル® コンパイラーの OpenMP* ライブラリーを使用している場合、この状況を回避するためスレッド・アフィニティー・インターフェイスを最適に設定する方法については、それぞれのユーザーガイドを参照してください。インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) では、次の設定を適用します。

export KMP_AFFINITY=granularity=fine,compact,1,0

インテル® TBB スレッディング・テクノロジーを使用してプログラムをスレッド化する場合のスレッド・アフィニティーの指定方法は、https://www.threadingbuildingblocks.org/documentation (英語) にある tbb::affinity_partitioner クラスの説明を参照してください。

製品および性能に関する情報

性能は、使用状況、構成、およびその他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex (英語) をご覧ください。

改訂 #20201201