アプリケーションをスレッド化する

インテル® インテグレーテッド・パフォーマンス・プリミティブ (インテル® IPP) 関数はスレッドセーフです。 つまり、アプリケーションをスレッド化し、別のスレッドが同じインテル® IPP 関数を呼び出しても、同期の問題なくその関数を呼び出すことができます。インテル® スレッディング・ビルディング・ブロック (インテル® TBB) とインテル® Cilk™ Plus は、マルチコア・アーキテクチャーの利点を活用できる 2 つのスレッド化手法です。

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


  1. ライフゲーム・アプリケーションをシリアルに実行するには、IPPTBBLife.cpp ファイルの 行 5 あたりにある #define USE_TBB 文をコメントアウトします。 以下のようになります。

  2. Windows のタスク マネージャを起動し、[パフォーマンス] タブをクリックします。 [CPU 使用率] セクションに注目します。これには、アプリケーションを実行し、イメージを表示するための CPU サイクルが含まれます。ライフゲーム・アプリケーションのみ (表示に費やされるサイクルはなし) の CPU 使用率を取得するには、Life.vb の行 68 あたりの PictureBox1.Refresh() への呼び出しをコメントアウトします。

  3. アプリケーションを実行して、[CPU 使用率] のパーセントをメモしておきます。

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


  1. IPPTBBLife.cpp ファイルで、行 5 あたりにある #define USE_TBB 文のコメントを外します。 これは、インテル® TBB を使用してライフゲーム・アプリケーションをスレッド化します。
  2. アプリケーションを実行して、[CPU 使用率] のパーセントをメモしておきます。

インテル® TBB は複数のプロセッサーに処理を分割しているので、[CPU 使用率] のパーセントは、シリアルよりマルチコアシステムのほうが大幅に高いでしょう。より高い [CPU 使用率] のパーセントは、より多くの処理が行われていることを示します。つまり、より良いアプリケーション・パフォーマンスという意味です。

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

インテル® Cilk™ Plus を使用して、ライフゲーム ・アプリケーションをどのようにスレッド化できるか、次の手順を行って確認してみましょう。


  1. Life.vb の行 51 あたりにある IPPCilkLife 関数のコメントを外します。

  2. IPPTBBLifeSerialLife 関数をコメントアウトします。

  3. IPPClkLife.cpp の行5 あたりにある #define USE_CILK 文をコメントアウトします。これにより、ライフゲーム・アプリケーションはシリアルに実行されます。

  4. Windows のタスク マネージャを起動し、[パフォーマンス] タブをクリックします。そして、アプリケーションを実行して [CPU 使用率] のパーセントをメモしておきます。

  5. IPPTBBLife.cpp の行5 あたりにある #define USE_CILK 文のコメントを外します。 これは、インテル® Cilk™ Plus を使用してライフゲーム・アプリケーションをスレッド化します。

  6. アプリケーションを実行して、[CPU 使用率] のパーセントをメモしておきます。

インテル® Cilk™ Plus は複数のプロセッサーに処理を分割しているので、[CPU 使用率] のパーセントは、シリアルよりマルチコアシステムのほうが大幅に高いでしょう。 より高い [CPU 使用率] のパーセントは、より多くの処理が行われていることを示します。つまり、より良いアプリケーション・パフォーマンスという意味です。

戻る: インテル(R) IPP 関数を使用する  次へ: 並列化アプローチ


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

© 2010 Intel Corporation. 無断での引用、転載を禁じます。