CAPO (Computer-Aided Parallelizer and Optimizer)
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
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
the generated OpenMP codes can
potentially run on a wide range of SMP machines.
The success of CAPO relies on accurate interprocedual data dependence
information which is currently provided by CAPTools. CAPO generates
compiler directives in three stages:
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.
- identification of parallel loops in the outer-most level,
- construction of parallel regions around parallel loops and
optimization of parallel regions, and
- insertion of directives with automatic identification of private,
reduction, induction, and shared variables.
CAPO Graphical User Interface
Here is the main GUI (Directives Browser) for CAPO.
Here is a test case of CAPO on parallelizing a large CFD code.
- 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
- CAPO is capable of generating parallel codes
with directives quickly and good performance can be achieved with
small amount of user interaction.
Some Documents and Publications
- "The Code Parallelization with CAPO - A User Manual,"
Haoqiang Jin, Michael Frumkin and Jerry Yan,
NAS Technical Report NAS-01-008, NASA Ames Research Center,
link 2 if the first one failed).
- "ParaWise/CAPO Parallelization Environment,"
H. Jin, presented as part of the tools training at NASA Ames,
June, 2005 (pdf file, 1.07MB).
- "Automatic Generation of OpenMP Directives and Its Application to
Computational Fluid Dynamics Codes,"
H. Jin, M. Frumkin and J. Yan, presented in the Workshop on OpenMP
Experiences and Implementations (WOMPEI), in Proceedings of the
Third International Symposium on High Performance Computing
(ISHPC), Tokyo, Japan, October 2000.
- "The Semi-Automatic Parallelisation of Scientific Application Codes
Using a Computer Aided Parallelisation Toolkit,"
C. Ierotheou, S. Johnson, P. Leggett, M. Cross, E. Evans (Univ.
of Greenwich), H. Jin, M. Frumkin and J. Yan (NASA Ames),
presented at the Workshop on OpenMP: Application and Tools
(WOMPAT), San Diego, CA, 2000;
in Special Issue of Scientific Programming Journal, Vol. 9,
No.2+3, 2001, p163-173.
- "Automatic Multilevel Parallelization Using OpenMP,"
H. Jin, G. Jost, J. Yan (NASA Ames), E. Ayguade, M. Gonzalez,
and X. Martorell (CEPBA),
presented at the European Workshop on OpenMP (EWOMP2001),
Barcelona, Spain, September 2001;
Scientific Programming, Vol. 11, No. 2 (2003) 177-190.
- "Interfacing Computer Aided Parallelization and Performance Analysis"
G. Jost, H. Jin (NASA Ames), J. Labarta, J. Gimenez (CEPBA),
presented in the International Conference on Computational
Science 2003 (ICCS2003), special section on Tools for Programming
Development and Analysis in Computational Science
Melbourne, Australia, June 2003.
- "Experience on the Parallelization of a Cloud Modeling Code
Using Computer-Aided Tools"
Haoqiang Jin, Gabriele Jost (NASA Ames),
Dan Johnson and Wei-Kuo Tao (NASA GSFC),
NAS Technical Report NAS-03-006, NASA Ames Research Center,
- "Automatic Relative Debugging of OpenMP Programs"
G. Matthews, R. Hood, H. Jin (NASA Ames),
S. Johnson, and C. Ierotheou (Univ. of Greenwich),
in the Proceedings of the European Workshop on OpenMP (EWOMP2003),
Aachen, Germany, Sept. 22-26, 2003.
Point of Contact
For further information on CAPO, please contact: