CAPO (Computer-Aided Parallelizer and Optimizer)


Overview

CAPO (Computer-Aided Parallelizer and Optimizer) automates the insertion of compiler directives to facilitate parallel processing on shared memory parallel (SMP) machines. While CAPO is currently integrated seamlessly into CAPTools (developed at the University of Greenwich, now marketed as ParaWise) CAPO is independently developed at NASA Ames Research Center as one of the components for the Legacy Code Modernization (LCM) project. The current version takes serial FORTRAN programs, performs interprocedual data dependence analysis, and generates OpenMP directives. Due to the widely support of the OpenMP standard, the generated OpenMP codes can potentially run on a wide range of SMP machines.

Approach

The success of CAPO relies on accurate interprocedual data dependence information which is currently provided by CAPTools. CAPO generates compiler directives in three stages:
  1. identification of parallel loops in the outer-most level,
  2. construction of parallel regions around parallel loops and optimization of parallel regions, and
  3. insertion of directives with automatic identification of private, reduction, induction, and shared variables.
Attempts have also been made to identify potential pipeline parallelism (implemented with point-to-point synchronization). Although directives are generated automatically, user interaction with the tool is still important for producing good parallel codes. A comprehensive graphical user interface is included for user to interact with the parallelization process.

CAPO Graphical User Interface

Here is the main GUI (Directives Browser) for CAPO.
[Directives Browser]

Result

Here is a test case of CAPO on parallelizing a large CFD code.
Application:
OVERFLOW (~100K lines, 870 subroutines)
Dependence analysis:
3 days on an SGI R10K (175MHz) workstation
Post analysis and code testing:
another 3 days
Testing platform:
Origin2000, 195MHz
Testing cases:
single zone, multiple sizes
Conclusion:
CAPO is capable of generating parallel codes with directives quickly and good performance can be achieved with small amount of user interaction.
[OVERFLOW_Timing]

Software Download

Some Documents and Publications


Point of Contact

For further information on CAPO, please contact:



[Home] [NASA] Updated: Oct. 20, 2002
WebWork: Haoqiang Jin
NASA Responsible Official: Byran Biegel
[Questions] [Help]