|
C-DAC's
parallelizing compiler (PCF90) automatically locates
implicit parallelism in sequential programs and generates
parallel executables. Functionally the output of the
parallelizing compiler is same as the serial compiler;
but the executable code can run in a multiprocessor
environment with improved performance. Thus, the parallelizing
compiler frees the programmers from the difficult task
of explicitly managing parallelism in their programs.
PCF90 for FORTRAN 77/90
applications, employs data parallelism and is targeted
towards shared memory architecture. When compute intensive
applications are compiled with PCF90 and executed on
symmetric multi processors there is a significant acceleration
in the execution time.
DESCRIPTION
The PCF90 compiler
uses OpenMP API to generate multithreaded executable,
which can run on Symmetric Multi Processor architecture.
The OpenMP is a portable, scalable model that gives
shared memory programmers a simple and flexible interface
for developing parallel applications for a wide range
of platforms. The PCF90 compiler parallelizes loops
with considerable amount of computation.
PCF90 usage
The compiler is provided
with a list of names of Fortran 77/ Fortran 90 files
to be parallelized and compiled. A set of default options
is used for compilation. These defaults can be changed
to fit the specific requirements.
- User's control over the
backend OpenMP compiler
The user has the
flexibility of giving compiler options to the backend
OpenMP compiler.
- User's control over the Intermediate
files
The user can modify the intermediate C + OpenMP file
generated by the compiler.
- User's control over the number
of threads
The compiler by default sets the number of threads
to be equal to the number of processors. The user
can overrule this setting using an environment variable.
KEY FEATURES
- Performs automatic parallelization
- Provides parallelization statistics
- Allows greater control over parallelization
- Performs explicit parallelization
- Provides Backend compiler control
- Provides flexibility to edit intermediate
files
- Allows to specify number of
threads
 |
The OpenMP Application
Program Interface (API) supports multi-platform
shared-memory parallel programming in C/C++
and Fortran on all architectures, including
Unix platforms and Windows NT platforms.
Jointly defined by a group of major computer
hardware and software vendors, OpenMP is
a portable, scalable model that gives shared-memory
parallel programmers a simple and flexible
interface for developing parallel applications
for platforms ranging from the desktop to
the supercomputer. |
|
Automatic parallelization
of loops
When the user submits
the sequential code as the input to the compiler, the
compiler automatically detects the inherent parallelism
in it and generates the parallel code. However, the
compiler may not parallelize few loops because of the
limitations of data dependency analysis. The missed
out loops may be manually parallelized by the user.
To facilitate manual parallelization, PCF90 compiler
provides the explicit parallelization facility.
Statistics of automatic
parallelization
The compiler displays
the statistics of parallelized and non-parallelized
loops. It also provides the reason for the non-parallelizability
of loops. This information will help the user in manual
parallelization of the loops, which are not automatically
parallelized.
Error Detection
Full Syntax and semantic
check of input language is carried out and elaborate
error messages are generated in case of erroneous programs.
Warning messages for ambiguous statements are generated
by the compiler.
Related Tools
CDF90 is a highly optimizing
Fortran 90 and Fortran 77 compiler developed by C-DAC.
It is fully ANSI X3.9:1978 and ISO/IEC 1539:1991 compliant.
C-DAC has developed an integrated Fortran program development
environment, which includes the Fortran 90 compiler,
debugger, browser, profiler and project manager.
AVAILABILITY
| Supported
Hardware |
UNIX Workstations |
| Supported
Operating System |
AIX, Solaris
and Linux |
| User
Interfaces |
Command line
interface |
| Prerequisite
Software |
OpenMP C compiler
(compliant to OpenMP standards) |
|

|