Parallel Software Products





ParaWise Basic Operation













Main Components of ParaWise






Is ParaWise a Compiler?





Benefits of ParaWise

Sample ParaWise OpenMP Speedup
Results using OpenMP on 64 threads for SEA
                      code

Sample ParaWise Message Passing Speedup
Speedup on 256 processors for nas-bt


Other Questions




ParaWise Version 4.0

Download a free trial version of ParaWise-4.0 now for the Message Passing and OpenMP parallelization of Fortran code and now the OpenMP parallelization of C code.


What is ParaWise ?

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

- NASA Ames
- SGi
- ASC/DoD
- European Commission
- UK DTI
- UK EPSRC

ParaWise has been developed primarily to aid in the parallelization of existing serial C, 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 Fortran or C code and with generates Shared Memory directive-based code. User interation explains the decisions ParaWIse has made to the user and allows then to provide information to improve the parallel code.

What are the main components of ParaWise ?

  • ParaWise uses powerful, state of the art dependence analysis techniques.
  • In depth interprocedural analysis using symbolic algebra techniques.
  • GUI interactive front end.
  • Automatic user directed array partitioning for message passing parallelisations.
  • Automatically inserted communications calls for message passing referencing CAPLib. Calls can then map to MPI, PVM, SHMEM etc.
  • Generates Shared Memory directive code using OpenMP after the analysis stage and after generating message passing code.
  • 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:

  • 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.
  • 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 ?

  • The rapid parallelization of C, FORTRAN 77, FORTRAN 90 or FORTRAN 95 code
  • The parallel code is generic i.e. it is not restricted to any particular parallel processing system
  • Parallel code is recognizable to the user, this allows
    • the parallel code to be maintained in the future
    • the parallel code to be optimized further for efficiency
  • The execution of the parallel code is not restricted to a fixed number of processors
  • Parallel code that exploit "best manual practice" allowing it to exhibit good parallel efficiency and be scalable to large numbers of processors/threads



How do I obtain Parawise ?

For further details on pricing and how to obtain a copy of the latest version (Version 4.0) of ParaWise please go to our Downloads page.

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 C, FORTRAN 90 or FORTRAN 95 codes ?

ParaWise has been extended to analyze and parallelize C with OpenMP along with the FORTRAN 90 and FORTRAN 95 OpenMP and message passing parallelization capabilities of previous versions.

Does ParaWise also generate code specifically for Shared Memory systems ?

ParaWise has been extended to allow the generation of Shared Memory directive code using OpenMP. For further details visit the ParaWise-based OpenMP code generation 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 Ltd. 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 Fortran Message PassingOpenMP and hybrid Message Passing+OpenMP parallelizations as well as C code parallelised using OpenMP