Intel® Fortran provides OpenMP* Fortran compiler directives that comply with OpenMP Fortran Application Program Interface (API) specification Version 1.1 and most of Version 2.0.
To use these directives, you must specify compiler option -openmp (Linux and Mac OS X) or /Qopenmp (Windows).
Options that use OpenMP* are available for both Intel® microprocessors and non-Intel microprocessors, but these options may perform additional optimizations on Intel® microprocessors than they perform on non-Intel microprocessors. The list of major, user-visible OpenMP constructs and features that may perform differently on Intel® microprocessors vs. non-Intel microprocessors includes: locks (internal and user visible), the SINGLE construct, barriers (explicit and implicit), parallel loop scheduling, reductions, memory allocation, thread affinity, and binding.
This section discusses data scope attribute clauses, conditional compilation rules, nesting and binding rules, and the following directives:
Specifies that a specific memory location is to be updated dynamically.
Synchronizes all the threads in a team.
Restricts access for a block of code to only one thread at a time.
Specifies that the iterations of the immediately following DO loop must be executed in parallel.
Specifies synchronization points where the implementation must have a consistent view of memory.
Specifies a block of code to be executed by the master thread of the team.
Specifies a block of code to be executed sequentially.
Defines a parallel region.
Defines a parallel region that contains a single DO directive.
Defines a parallel region that contains SECTIONS directives.
Defines a parallel region that contains a single WORKSHARE directive.
Specifies a block of code to be divided among threads in a team (a worksharing area).
Specifies a block of code to be executed by only one thread in a team.
Defines a task region.
Specifies a wait on the completion of child tasks generated since the beginning of the current task.
Specifies that the current task can be suspended in favor of execution of a different task.
Makes named common blocks private to a thread but global within the thread.
Divides the work of executing a block of statements or constructs into separate units.
The OpenMP parallel directives can be grouped into the categories shown in the following table:
Category |
Description |
---|---|
Parallel region |
Defines a parallel region: PARALLEL |
Task region |
Defines a task region: TASK |
Work-sharing |
Divide the execution of the enclosed block of code among the members of the team that encounter it: DO and SECTIONS |
Combined parallel work-sharing |
Shortcut for denoting a parallel region that contains only one work-sharing construct: PARALLEL DO and PARALLEL SECTIONS |
Synchronization |
Provide various aspects of synchronization; for example, access to a block of code, or execution order of statements within a block of code: ATOMIC, BARRIER, CRITICAL, FLUSH, MASTER, ORDERED, TASKWAIT, and TASKYIELD. |
Data Environment |
Control the data environment during the execution of parallel constructs: THREADPRIVATE |
Note that certain general directives and rules can affect DO loops. For more information, see Rules for General Directives that Affect DO Loops.
最適化に関する注意事項 |
---|
インテル® コンパイラー、関連ライブラリーおよび関連開発ツールには、インテル製マイクロプロセッサーおよび互換マイクロプロセッサーで利用可能な命令セット (SIMD 命令セットなど) 向けの最適化オプションが含まれているか、あるいはオプションを利用している可能性がありますが、両者では結果が異なります。また、インテル® コンパイラー用の特定のコンパイラー・オプション (インテル® マイクロアーキテクチャーに非固有のオプションを含む) は、インテル製マイクロプロセッサー向けに予約されています。これらのコンパイラー・オプションと関連する命令セットおよび特定のマイクロプロセッサーの詳細は、『インテル® コンパイラー・ユーザー・リファレンス・ガイド』の「コンパイラー・オプション」を参照してください。インテル® コンパイラー製品のライブラリー・ルーチンの多くは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより高度に最適化されます。インテル® コンパイラー製品のコンパイラーとライブラリーは、選択されたオプション、コード、およびその他の要因に基づいてインテル製マイクロプロセッサーおよび互換マイクロプロセッサー向けに最適化されますが、インテル製マイクロプロセッサーにおいてより優れたパフォーマンスが得られる傾向にあります。 インテル® コンパイラー、関連ライブラリーおよび関連開発ツールは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれます。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロセッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。 インテルでは、インテル® コンパイラーおよびライブラリーがインテル製マイクロプロセッサーおよび互換マイクロプロセッサーにおいて、優れたパフォーマンスを引き出すのに役立つ選択肢であると信じておりますが、お客様の要件に最適なコンパイラーを選択いただくよう、他のコンパイラーの評価を行うことを推奨しています。インテルでは、あらゆるコンパイラーやライブラリーで優れたパフォーマンスが引き出され、お客様のビジネスの成功のお役に立ちたいと願っております。お気づきの点がございましたら、お知らせください。 改訂 #20110307 |
The OpenMP web site http://www.openmp.org/
© 1996-2011 Intel Corporation. 無断での引用、転載を禁じます。