<<  2  >> インテル® C/C++ コンパイラー OpenMP* 活用ガイド デュアルコア・マルチコア対応アプリケーション開発A 1.はじめに 今後は、より多くのコアが一つのプロセッサー上に実装されるデュアルコアとマルチコアが一般的なプロセッサーと なることは間違いありません。デュアルコアとマルチコアの持つ大きな可能性とその能力を最大限に発揮するための キーとなるのがマルチスレッドでのアプリケーション実行の高速化です。 このアプリケーションの高速化には、複数のスレッドが並列に処理を行うことが必要になります。ここで問題となる のは、アプリケーション・プログラムに対して並列処理を適用する為の特別な作業やそのための開発工数が必要にな るかということです。実際には、マルチスレッド化や並列化といった作業はそれほどの時間を必要とするものではあり ません。マルチスレッド対応の開発ツールがあれば、これらの並列化は容易に行うことが可能です。プログラムの開 発者やプログラマーは、プログラムの本質的なロジックを記述することに専念し、並列化については、既に高度に最 適化・並列化されたライブラリーを利用したり、並列化コンパイラーの支援をしたりすることによって、プログラムのマ ルチスレッド化を図ることが現在では可能になっています。 インテル®コンパイラーバージョン 9.0 は、優れたマルチスレッド対応の開発ツールです。32 bit と 64 bit Linux* 及 び 32 bit と64 bit Windows* のオブジェクト・コードを作成し、それぞれのプラットフォームでのプログラムの性能を最 大限に引き出すことを可能とします。バージョン 9.0 ででサポートされているプログラムのマルチスレッド化は、大きく 2つに分けられます。一つは自動並列化、そしてもうひとつが OpenMP* のサポートです。自動並列化では、その名の とおりコンパイラーがソースコードを解析し、自動的にプログラムの構造に適したマルチスレッド実行が可能な実行モ ジュールを作成します。自動並列化のオプションによって、アプリケーション内で複数のスレッドや拡張機能の自動作 成が 可能になっています。OpenMP* はユーザーがプログラムの並列化を指示する構文をプログラム中に記述すること で、マルチスレッド並列プログラムを開発する枠組みを提供します。バージョン 9.0 では、OpenMP* 2.5 仕様の実装がなされており、最新の OpenMP* の機能が利用可能となっています。ここでは、この OpenMP* によるマルチスレッ ド・プログラミングの基本をご紹介致します。