入門チュートリアル: インテル® インテグレーテッド・パフォーマンス・プリミティブ 8.2 を使用したアプリケーションの最適化

アプリケーションのスレッド化

インテル® IPP 関数はスレッドセーフです。つまり、同じ関数が異なるスレッドで呼び出されても、同期問題が発生することなく、アプリケーションをスレッド化してインテル® IPP 関数を呼び出すことができます。インテル® TBB およびインテル® Cilk™ Plus は、マルチコア・アーキテクチャーを活用できる 2 つのスレッド化テクノロジーです。

スレッド化なしでアプリケーションを実行

  1. IPPTBBLife.cpp の 5 行目付近の #define USE_TBB ステートメントをコメントアウトします。 この変更により、ライフゲーム・アプリケーションはシリアルに実行されます。

  2. Windows* タスク・マネージャーを起動して、[パフォーマンス] タブをクリックします。 [CPU 使用率] セクションを確認します。 表示に消費されるサイクルを含まない、ライフゲーム・アプリケーションのみの CPU 使用率になるように、Life.vb の 68 行目付近の PictureBox1.Refresh() の呼び出しをコメントアウトします。

  3. アプリケーションを実行して、CPU 使用率を確認します。

インテル® TBB でアプリケーションをスレッド化

インテル® TBB を使用してライフゲーム・アプリケーションをスレッド化するには、以下の操作を行います。

  1. IPPTBBLife.cpp の 5 行目付近の #define USE_TBB ステートメントのコメントを外します。 この変更により、ライフゲーム・アプリケーションはインテル® TBB を使用してスレッド化されます。

  2. アプリケーションを実行して、CPU 使用率を確認します。

インテル® Cilk™ Plus でアプリケーションをスレッド化

インテル® Cilk™ Plus を使用してライフゲーム・アプリケーションをスレッド化するには、以下の操作を行います。

  1. Life.vb の 51 行目付近の IPPCilkLife 関数のコメントを外します。

  2. IPPTBBLife 関数および SerialLife 関数をコメントアウトします。

  3. IPPClkLife.cpp の 5 行目付近の #define USE_CILK ステートメントをコメントアウトします。 この変更により、ライフゲーム・アプリケーションはシリアルに実行されます。

  4. Windows* タスク・マネージャーを起動して、[パフォーマンス] タブをクリックします。 アプリケーションを実行して、CPU 使用率を確認します。

  5. IPPClkLife.cpp の 5 行目付近の #define USE_CILK ステートメントのコメントを外します。 この変更により、ライフゲーム・アプリケーションはインテル® Cilk™ Plus を使用してスレッド化されます。

  6. アプリケーションを実行して、[CPU 使用率] を確認します。

インテル® Cilk™ Plus が複数のプロセッサーに作業を分割するため、マルチコアシステムではシリアルの場合よりも [CPU 使用率] が大幅に高くなります。 [CPU 使用率] が高いということは、単位時間あたりに実行される作業の数がより多い、つまりアプリケーションのパフォーマンスがより優れていることを意味します。

戻る 次へ


このヘルプトピックについてのフィードバックを送信