BERT 77 Executive Summary

The BERT 77 (or "BERT") software tool attempts to automatically and efficiently convert sequential FORTRAN 77 programs for a parallel computing environment. BERT produces code that is compatible with the standard message passing model supported by PVM and MPI. Although the current BERT output assumes the message passing model, it is possible to use the analysis provided by BERT to assist with shared memory parallelizations supported by the hardware vendors. Like most other conversion tools BERT provides two important features:

  1. detection of concurrent parts of the FORTRAN program
  2. re-coding a parallel version of these concurrent parts

In contrast to many other conversion tools, however, BERT examines the concurrent parts of your program to see whether they should be executed in parallel. BERT understands that overall performance depends upon how efficiently concurrent portions of your program can be executed on separate processors in parallel. Without considering computation times and communication times, there is no guarantee that concurrent portions of your program can be efficiently executed in parallel.

To determine parallel efficiency, BERT includes a scheduler between the concurrency detection and code generation portions of the program. The following figure shows how the scheduler fits into the generalized conversion process. The BERT scheduler requires that any portion executed in parallel provide an execution speed-up. Concurrent portions of your program that are not found to be efficient are not converted to parallel by BERT (unless you override BERT's decision).

BERT Process
Figure One: The BERT process

BERT makes efficiency decisions by consulting a machine information file for each target host parallel computer. The machine information file contains execution and communication times so that BERT can determine whether concurrent portions should be executed in parallel.

Based on previous experience, completely converting a program on the first pass is a rare event. Programs often contain "parallelization inhibitors" (recursive variables or loop carried dependencies) which are detected by BERT. Quite often, the program was written without regard to parallelization or parallel efficiency. BERT provides a solution to this problem by providing a rapid and cost effective method to analyze and convert sequential FORTRAN 77 applications to efficient parallel programs.

The following are some of the features and benefits you can expect from BERT.

  • Parallelization of loops with procedure calls - using a powerful interprocedural analysis
  • Parallel efficiency analysis of all concurrent and non-current loops
  • Support for task parallelism
  • Pre-runtime performance estimations

Expected Benefits After Using BERT for Several Hours

  • Know if your program can run efficiently under a "dataflow" model and what to do if it will not
  • Know where the parallel and non-parallel loops (inhibited loops) are in your program
  • Know how much each loop contributes to the overall computation time of your program
  • Eliminate possible parallelization strategies that will not work
  • Use BERT output to help place parallelization directives for other FORTRAN compilers
  • Run a converted program
  • Continue to use your original source code on sequential or vector machines

Expected Benefits After Using BERT for Several Days

  • Have a firm grasp of the parallel nature of your program
  • Determine if "inhibited loops" can be made parallel
  • Run an efficient conversion of your program in parallel
Last Updated ( Monday, 17 July 2006 )