User and Reference Guide for the Intel® Fortran Compiler 14.0
This topic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).
The Intel® Fortran Compiler provides several elements to enable programming for and building binaries to run on the Intel® Many Integrated Core Architecture (Intel® MIC Architecture), including:
language extensions
compiler options
environment variables
OpenMP* considerations
Code that is defined for offloading runs on an Intel® Xeon® processor-based host, running Linux* or Windows*, and on targets supporting Intel® MIC Architecture.
You can write parallel programs that can offload sections of code to run on Intel® MIC Architecture, or alternatively, that run natively on Intel® MIC Architecture. The compiler provides the following language extensions to facilitate programming for Intel® MIC Architecture:
|
Name |
Description |
|---|---|
|
OFFLOAD directive OFFLOAD_ATTRIBUTE directive OFFLOAD_TRANSFER directive OFFLOAD_WAIT directive OFFLOAD BEGIN and END OFFLOAD directive PREFETCH/NOPREFETCH directive |
Directives to control the data transfer between the CPU and the coprocessor. |
|
ATTRIBUTES OFFLOAD directive |
A directive for placing variables and functions on the coprocessor. |
|
__MIC__ preprocessor symbol __KNC__ preprocessor symbol __INTEL_OFFLOAD preprocessor symbol |
Predefined preprocessor symbols you can use when programming for Intel® MIC Architecture. |
|
APIs in mic_lib.f90 |
A set of functions for:
|
The compiler provides the following compiler options and environment variables that you can use when building a binary for Intel® MIC Architecture:
|
Compiler Option |
Description |
|---|---|
|
The negative form of [Q]offload |
Ignores language constructs for offloading. |
|
Qmic (Windows*) mmic (Linux*) |
Builds an application that runs natively on Intel® MIC Architecture. |
|
[Q]offload-attribute-target |
Flags every global routine and global data object in the source file with the offload attribute target(mic). |
|
[Q]offload-option |
Specifies options to be used for the specified target and tool. |
|
[Q]opt-report-phase=offload |
Specifies the offload optimizer phase to use when optimization reports are generated. |
|
[Q]opt-assume-safe-padding |
Determines whether the compiler assumes that variables and dynamically allocated memory are padded past the end of the object. |
|
[Q]opt-streaming-cache-evict |
Specifies the cache eviction level to be used by the compiler for streaming loads and stores. |
|
[Q]opt-threads-per-core |
Informs the compiler about the number of hardware threads per core that will be used for an application. |
|
[Q]opt-gather-scatter-unroll |
Specifies an alternative loop unroll sequence for gather and scatter loops. |
The following environment variables are only a few of the available environment variables for Intel® MIC Architecture:
|
Environment Variable |
Description |
|---|---|
|
MIC_STACKSIZE |
Sets the stack size on the coprocessor. |
|
MIC_ENV_PREFIX |
Controls environment variables passed to the coprocessor. |
|
MIC_PROXY_IO |
Controls the I/O proxy of stderr and stdout. |