About This Guide

This document describes how to use the MIPSpro Auto-Parallelizing Option (APO) to automatically detect and exploit parallelism in Fortran 77, Fortran 90, C, and C++ programs. The MIPSpro APO, an optional extension available since the 7.2 release of the MIPSpro compilers, supports N32 and N64 application binary interfaces (ABIs). For information about parallelization for the O32 ABI, refer to the guides listed under “Parallelization for O32 Compilers”. See the ABI(5) reference page for explanations of the N32, N64, and O32 ABIs.

In its original release, this document was called the MIPSpro Automatic Parallelizer Programmer's Guide. The major change in its content is information about the OpenMP proposed standard for parallel computing, and the new -apo command-line option. See the MIPSpro APO release notes for other changes.

What This Guide Contains

This document contains the following chapters:

Chapter 1, “Automatic Parallelization for MIPSpro Compilers,” describes the Auto-Parallelizing Option, how to invoke it, and how to select its output files.

Chapter 2, “Understanding Incomplete Optimization,” explains how to recognize and avoid problems that may arise using the MIPSpro APO.

Chapter 3, “Assisting the MIPSpro Auto-Parallelizing Option,” explains the compiler directives recognized by the MIPSpro APO.

Conventions Used in This Guide

This document uses the following conventions and symbols:


Indicates literal command-line options, keywords, function names, and subroutine names in text.


Represents user-defined values. Replace the item in italics with a legal value. Italics are also used for command names, manual titles, filenames, pathnames, and directory names.


Indicates command syntax, program listings, computer output, and error messages.

[ ] 

Enclose optional command arguments.

( ) 

Surround arguments or are empty if the function has no arguments following function or subroutine names. Surround reference page section in which the command is described.

{ } 

Enclose two or more items from which you must specify exactly one.


Separates two or more optional items.


Indicates that the preceding optional items can appear more than once in succession.

Here is an example illustrating the syntax conventions:

f77 options -apo[{list|keep}] [-mplist] filename 

The previous syntax statement indicates that

  • you must use the command f77

  • you may specify one or more options, each separated by a space

  • you must use the option -apo

  • you may specify either list or keep

  • you may specify -mplist

  • you must use a filename

The following statements are valid examples of the syntax described above:

f77 -O3 -n32 -mips4 -c -apo -mplist myProg.f 
f77 -O3 -n32 -mips4 -apo list test.f -c. 

Additional Reading

This guide describes using the MIPSpro Auto-Parallelizing Option to automatically parallelize programs written for the N32 and N64 ABIs. Related readings on manual parallelization, other types of optimization, and the parallelization of programs for the O32 ABI are listed in the following sections.

Manual Parallelization References

For details about using manual parallelization directives to label parallel loops and code regions for multiprocessing, refer to the appropriate chapters in the following:

  • MIPSpro Fortran 77 Programmer's Guide

  • MIPSpro 7 Fortran 90 Commands and Directives Reference Manual

  • C Language Reference Manual

References on Optimization Techniques

For details about different kinds of optimization, refer to the following:

  • MIPSpro Compiling and Performance Tuning Guide. This guide details the components of the MIPSpro compiler system, other programming tools and interfaces, and dynamic shared objects. It also explains ways to improve program performance when using N32, N64, or O32 object code.

  • Developer Magic: WorkShop Pro MPF User's Guide. This guide describes how to use Developer Magic: WorkShop Pro MPF, a graphical tool for analyzing the structure and parallelization of multiprocessing Fortran 77 applications.

  • Developer Magic: Performance Analyzer User's Guide. This guide describes how to use the Performance Analyzer, a group of tools for analyzing program performance.

  • SpeedShop User's Guide. This guide describes how to use the SpeedShop performance tools to analyze a program's performance.

  • Wolfe, Michael. High Performance Compilers for Parallel Computing. Redwood City: Addison-Wesley Publishing Company, 1996. This text covers principles and techniques of parallel compiler optimization.

Parallelization for O32 Compilers

The Auto-Parallelizing Option can be used with 7.2 and newer releases of the MIPSpro compilers. It does not support earlier MIPSpro releases or the O32 ABI. If you are using O32 compilers, you can use the following references for parallelization information:

  • IRIS Power C User's Guide. This guide describes how to use IRIS Power C, a C compiler that analyzes sequential code to determine where loops can run in parallel and generates object code that can use multiple processors.

  • POWER Fortran Accelerator User's Guide. This guide describes how to use the POWER Fortran Accelerator (PFA), a source-to-source preprocessor that enables existing Fortran 77 programs to run efficiently on Silicon Graphics POWER Series multiprocessor systems.