Cray Pointers: threshold reached; long compile times


Problem

Version 10.1 of the Intel Fortran Compiler may take a long time to compile applications that contain very many Cray pointers. With version 11.0 of the compiler, such applications may be compiled at a reduced optimization level, and the following warning may be emitted: "number of cray pointer threshhold reached".


Environment

Windows*, Linux* or Mac OS* X  on IA-32 or Intel64 systems


Root Cause

Dependency testing, including tests for pointer aliasing, becomes slow as the number of combinations to be tested increases.


Resolution

With the 10.1 compiler, if the Cray pointers are known not to be aliased, (i.e., targets can only be accessed through a unique pointer), try compiling with -safe-cray-ptr (Linux* and Mac OS* X) or /Qsafe-cray-ptr (Windows*). Alternatively, either move to version 11.0 of the Intel compiler, or adapt your application to use Fortran90 pointers and/or allocatable arrays.

If you are using the 11.0 compiler and see the warning message

number of cray pointer threshhold reached=

the optimization level may have been reduced. If compilation time is not a concern and your system has sufficient memory to avoid excessive page faults, you may wish to experiment with the switch -override-limits (Linux* and Mac OS* X) or /Qoverride-limits (Windows*) to avoid the reduction in optimization level.

 

Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione