PCF90

PCF90 - Scalable Automatic Parallelizing Compiler for Fortran

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.

DESCRIPTIONM

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.

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)