Optimization question: Using temporary variables instead of direct array access


lately I've seen a piece of code out of a famous scientific article, which is known for its fastness. In it the author always uses temporary variables to restrict access to array elements to a minimum. For example in a inner loop for a recurrent formula he uses:

real :: temp
real :: p(:)
do i=2,m
    ... some read access to 'temp' 
        for other variables...
end do

I personally would prefer:

gFortran to iFortran static build

Background: I maintain a large legacy Fortran77 code with that has, for many years, been successfully compiled and linked under a c-shell with gFortran and g++, now under OS X Yosemite. I am moving the code from gFortran to Intel Fortran in an attempt to address some 32-bit pointer issues that seem to be cropping up as I increase the size of internal arrays. My first attempt to compile the Fortran code with ifort was successful but the link to the c++ binary is problematic as I need to access the static Intel 64-bit fortran libraries like I do under gFortran.

install option desired

I would like an install option that does not appear to be offered.

We have set aside a couple of our Linux Intel Fortran licenses for use in classified military environments.  Typically, we will install ifort to support an event for a couple of weeks, then remove all of our files after we are done.

Due to being in a secure environment with no Internet access, and system administrators who are paid to be "paranoid", we do an offline install limited to the user. This installs the compiler under ~/intel (i.e., /home/user/intel) and we extend $PATH with ~/intel/bin

Application crash with Thread analyzer


our inspected application reproducibly crashes when started with Intel Inspector XE 2015, even when running with only "Detect deadlocks" enabled.
The Crash occurs approx. 20 seconds after the application has started.
It does not crash when started with Memory analyzer.
It does not Crash when I deselect ALL Options of the Thread analyzer.

performance when running one compiled app vs. multiple ones simultaneously

So, this confused the daylights out of me.

I'm running on an Intel Core i7-3770 @ 3.4 GHz, 4 cores x hyperthreaded = 8 cores.

For case 1, I compiled on ifort 2013 SP1 Update 4, as:

      <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" MultiProcessorCompilation="true" GenAlternateCodePaths="codeForAVX" IntegerKIND="integerKIND8" RealKIND="realKIND8" LocalSavedScalarsZero="true" FloatingPointExceptionHandling="fpe0" FloatingPointModel="source" FlushDenormalResultsToZero="true" Traceback="true" />

Suscribirse a Fortran