インテル®コンパイラー OpenMP*入門 デュアルコア・マルチコア対応アプリケーション開発@ <<  7  >> 4  . ハイパースレッドとマルチコアシステム マルチスレッド並列処理は、デュアルコアとマルチコアシステムだけで有効なのではありません。SMP(対称型マル チプロセッシング) や NUMA(不均等メモリーアクセス) といったアーキテクチャーを持つ、より多くのプロセッサーとプロ セッサー・コアの実装が可能なシステムでも、インテルのソフトウェア開発ツール「インテル® コンパイラーバージョン 9.0」を利用することで容易な並列処理が可能となります。また、インテル® コンパイラーによる並列処理機能は、ハイ パースレッディング・テクノロジー (HT テクノロジー) を搭載したプロセッサーでも利用可能です。この HT テクノロジー とデュアルコアやマルチコアの技術は、ユーザーからするとほぼ同じ技術のように思われますが、プロセッサーの構成 とそこから得られる性能は大きく違ってきます。 HT テクノロジーでは、2 つのスレッドを 1 つのプロセッサー・コア上で同時に実行することを実現しました。 従来の プロセッサーでも複数のスレッドの処理は可能でしたが、同時に実行できるスレッドは 1 つに限られていました。HT テクノロジー対応のプロセッサーは、 物理的には 1 つのプロセッサーでありながら、 対応する OS やアプリケーション からは、あたかも 2 つのプロセッサーがあるかのように機能します。シングルコアのプロセッサーがプログラムを実行 する場合、 常にプロセッサー・コアのリソースを 100 %使い切ることはありません。HTテクノロジーはこのようなリソー スの空きを活用してもう一 つのインストラクション・ストリームを同時に実行できるようにする仕組みです。その結果、 HT テクノロジー対応のプロセッサーを搭載したシステムでは、OS が 複数のスレッドのスケジューリングを行うことが可 能になっています。HT テクノロジーは、マルチスレッドの同時処理を可能としますが、実際に 2 つのスレッドを同時 に実行するには、リソースが不足しています。そのため、マルチスレッド化されたプログラムは HT テクノロジーで受 けることのできる性能上の恩恵は 20%-30% が 限度といわれています。 AS (Architecture State) は、汎用レジスターや制御レジスター、APIC (Advanced Programmable Interrupt Controller) レジスタ ーなどプロセッサーの状態を保持するものです。 プロセッサー 実行 リソース AS AS プロセッサー 実行 リソース プロセッサー 実行 リソース プロセッサー 実行 リソース AS プロセッサー 実行 リソース AS マルチプロセッサー ハイパースレッド デュアルコアプロセッサー AS AS