Introduction to Optimizing Applications

This document explains how to use the IntelŪ Fortran Compiler to enhance application performance. How you use the information presented in this document depends on what you are trying to accomplish.

Where applicable, this document explains how compiler options and optimization methods apply on IA-32, ItaniumŪ, and IntelŪ Extended Memory 64 Technology (IntelŪ EM64T) architectures on Linux*, Windows*, and Mac OS* systems. In general, the compiler features and options supported for IA-32 Linux are supported on IntelŪ-based systems running Mac OS. For more detailed information about compiler support on a specific operating system see the IntelŪ Compiler Release Notes.

In addition to compiler options that can affect application performance, the compiler includes features that enhance your application performance such as directives, intrinsics, run-time library routines, and various utilities.

The following table lists some possible starting points for your optimization efforts.

If you are trying to...

Then start with...

Improve performance for a specific type of application

Applying Performance Enhancement Strategies

Using a Performance Enhancement Methodology

Using IntelŪ Performance Analysis Tools

Optimize an application for speed or a specific architecture

Compiler Optimization Overview

Optimization Options Summary

Optimizing for Specific Processors Overview

Use programming strategies to improve performance

 

Setting Data Type and Alignment

Using Arrays Efficiently

Improving I/O Performance

Improving Run-time Efficiency

Using Intrinsics for Itanium®-based Systems

Coding Guidelines for Intel Architectures

Create application profiles to help optimization

Profile-guided Optimizations (PGO)

PGO Tools Overview

Enable optimization for calls and jumps

Interprocedural Optimizations (IPO)

IPO Compilation Mode

Optimize loops, arrays, and data layout

High-level Optimizations (HLO)

Loop Unrolling

Loop Independence

Generate reports on compiler optimizations

Compiler Reports Overview

Use language intrinsics, directives, run-time libraries to enhance application performance

Optimization Support Features Overview

Compiler Directives Overview

Create parallel programs or parallelize existing programs

Parallelism Overview

Auto-vectorization (IA-32 Only)

Auto-parallelization

Parallelization with OpenMP*