What is ParaWise ?

ParaWise - the Computer Aided Parallelization Toolkit (previously known as CAPTools) is a semi-automatic parallelization tool developed by Parallel Software Products Inc. The tools have been developed through a number of projects and have been funded by :

bullet

NASA Ames

bullet

SGI

bullet

ASC/DoD

bullet

European Commission

bullet

DTI

bullet

EPSRC

ParaWise has been developed primarily to aid in the parallelization of existing serial FORTRAN 77, FORTRAN 90 or FORTRAN 95 Computational Mechanics software. ParaWise generates either parallel source code containing Message Passing library calls or  OpenMP Shared Memory directives.

For a code parallelization that uses Message Passing calls, ParaWise analyzes the serial code and, with user interaction, generates either a parallel FORTRAN 77, FORTRAN 90 or FORTRAN 95 version (depending on the original serial code) which is very similar to the original serial code but with communication calls inserted and modifications to the code that will allow it to run on a parallel system. At every stage of the parallelization process,  the various ParaWise browsers not only present information to help the user understand what has been done, but also provide facilities that allow the user to make modifications to improve the quality of the parallel code.

For a code parallelization that uses OpenMP directives, ParaWise analyzes the serial code and with user interaction generates Shared Memory directive-based code.

What are the main components of ParaWise ?

bullet

ParaWise uses powerful, state of the art dependence analysis techniques.

bullet

In depth interprocedural analysis using symbolic algebra techniques

bullet

GUI interactive front end

bullet

Generates Shared Memory directive code using OpenMP after the analysis stage.

bullet

Automatic user directed array partitioning

bullet

Automatically inserted communications calls referencing CAPLib. Calls can then map to MPI, PVM, etc.

bullet

Automatic generation of portable and scalable parallel code.

Is ParaWise a Compiler ?

ParaWise is not a compiler. ParaWise has two distinct differences from a traditional parallelizing compiler:

bullet

The essential requirement for user interaction. This feature is essential for all stages of the parallelization process, including the dependence analysis, the inspection of loop types, the data partitioning strategy and the communication and code generation.

bullet

The constraint on analysis time placed on a compiler as opposed to a parallelizing tool. To be commercially acceptable, a compiler must perform a parallelization in a fairly short time frame (typically minutes to an hour). However, a low quality analysis will greatly increase the required effort to optimize the generated parallel code, whose quality has been directly diminished by the poor analysis. In our experience a parallelization with a poor analysis is often disastrous with little the user can do to redeem the poor parallel performance that is invariably exhibited by the generated code. The ParaWise dependence analysis can take a number of hours to perform for large codes or codes with complex control flow. However, the user time required to complete the parallelization is then not excessive.

What are the benefits of using ParaWise ?

bullet

The speedy parallelization of FORTRAN 77, FORTRAN 90 or FORTRAN 95 code

bullet

The parallel code is generic i.e. it is not restricted to any one parallel processing system

bullet

Parallel code is recognizable to the user, this allows
bullet

the parallel code to be maintained in the future

bullet

the parallel code to be optimized further for efficiency

bullet

The execution of the parallel code is not restricted to a fixed number of processors

How do I obtain Parawise ?

For further details on pricing and how to obtain a copy of the latest version (Version 3.1) of ParaWise please contact Parallel Software Products.

You can download the ParaWise user manual in PDF format from our documentation page. The manual includes a series of five tutorials, where the time for each parallelization ranges from a few minutes to a few hours.

Does ParaWise analyze and parallelize FORTRAN 90 or FORTRAN 95 codes ?

ParaWise has been extended to analyze and parallelize FORTRAN 90 and FORTRAN 95 codes and is currently available.

Does ParaWise generate code for Shared Memory based systems ?

ParaWise has been extended to allow the generation of Shared Memory directive code using OpenMP. For further details visit the ParaWise-based Automatic Parallelizer using OpenMP (CAPO) page.

Why do we use our own communication library ?

The message passing parallel code generated by ParaWise uses the ParaWise communication library known as CAPLib. The CAPLib is a high level generic communication library developed by Parallel Software Products Inc. These map onto the low level communication calls of either machine specific communications such as Cray SHMEM or onto communication libraries such as MPI or PVM. This allows the generated parallel code to be easily (and quickly) ported from one machine or communication library to another simply by linking in the correct CAPLib library. CAPLib may also be easily adapted for use with any other communication library or low level communications, that is available now or in the future.

The CAPLib communication library is freely available from our Downloads page.

More Information

We have a range of results for Message PassingOpenMP and hybrid Message Passing+OpenMP parallelizations. 

Y2K Statement

ParaWise is Year 2000 Compliant. Here is our Y2K Statement.