OpenMP* のサポート・ライブラリ

OpenMP* をサポートするインテル® C++ コンパイラは、製品サポート・ライブラリ libguide.a を提供します。このライブラリを使用して、アプリケーションを異なる実行モードで実行することができます。これは、既にチューニングされているアプリケーションによる通常実行またはパフォーマンスが重要な実行において使用します。

実行モード

OpenMP をサポートするインテル・コンパイラは、ランタイム時に指定した実行モードでアプリケーションを実行することができます。このライブラリはserial、turnaroundおよびthroughputモードをサポートします。これらのモードは、実行時にKMP_LIBRARY 環境変数を使用することによって選択されます。

Serial

Serialモードは、並列アプリケーションをシングル・プロセッサ上で強制的に実行します。

Turnaround

すべてのプロセッサが、プログラムの全実行に対し排他的に割り当てられる専用 (バッチまたはシングルユーザ) 並列環境では、常にすべてのプロセッサを効果的に利用することが最も重要です。turnaroundモードは、並列計算を行うすべてのプロセッサをアクティブな状態で維持して、単一ジョブの実行時間を最小限に抑えるよう設計されています。作業スレッドは、追加の並列作業を他のスレッドにわたすことなく、アクティブな状態で待機します。

過剰なシステムリソースの割り当てを避けてください。過剰なシステムリソースの割り当ては、スレッドが多すぎるか、または実行時に利用可能なプロセッサが少なすぎる場合に発生します。システムリソースが過剰に割り当てられると、このモードはパフォーマンスの低下を起こします。この問題が発生した場合、throughputモードを使用してください。

Throughput

並列マシン上のロードが一定ではない、またはジョブ・ストリームが予測できないマルチユーザ環境下では、throughput用にデザインおよびチューニングする方が良い場合もあります。これにより、複数のジョブを同時に実行した際の合計時間を最小限に抑えることができます。このモードでは、作業スレッドは追加の並行作業の待機中、他のスレッドへ作業を渡します。

turnaroundモードは、プログラムにその実行環境を認知させ (つまりシステムの読み込み)、リソースの使用を調整することで、動的環境における効率の良い実行を行えるよう設計されています。Throughputモードはデフォルトです。