Improving Performance with Interprocedural Optimization

The compiler may be able to perform additional optimizations if it is able to optimize across source line boundaries. These may include, but are not limited to, function inlining. This is enabled with the -ipo option.

Recompile the program using the -ipo option to enable interprocedural optimization.

ifort -real-size 64 -qopt-report=2 -qopt-report-phase=vec -D ALIGNED -ipo matvec.f90 driver.f90 -o MatVector


The coarrays feature of Fortran 2008 provides a Single Program Multiple Data (SPMD) approach to parallelism, which is integrated into the Fortran language for ease of programming. An application using coarrays runs the same program, called an image, in parallel, where coarray variables are shared across the images in a model called Partitioned Global Address Space (PGAS).

This tutorial shows you how to build and run a serial application, and then convert it to run in parallel using coarrays.

Building the Serial Version

To build the serial version, you will compile the sample which is the serial version. You will then run the sample application and note the time to run the application. This time will be your baseline performance time.

In the tachyon directory, build the sample by running the following command:

%make serial

The makefile automatically runs the sample after it is built.

Introduction to Using Coarray Fortran

The Intel® Fortran Compiler supports parallel programming using coarrays as defined in the Fortran 2008 standard. As an extension to the Fortran language, coarrays offer one method to use Fortran as a robust and efficient parallel programming language. Coarrays are supported in the Intel® Fortran Compiler.

This tutorial demonstrates writing, building, and running a Fortran application using coarrays.

This tutorial is available for Windows* only.

Assine o Tutorial