|
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:
- detection of concurrent parts of the FORTRAN program
- 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).
 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
|