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.
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.
This document uses the following conventions and symbols:
Bold | Indicates literal command-line options, keywords, function names, and subroutine names in text. | |
Italics | 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. | |
Courier | 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. |
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.
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
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.
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.