Fortran MP Applications Development
Writing programs that run on multiple processors and take maximum advantage of the hardware can be a complex task. Debugging and tuning these programs is even more difficult. The SGI developer environment is specifically designed to facilitate the development of parallel programs.
The ProDev MP Fortran bundle creates a powerful development environment:
The Power Fortran Analyzer is used for initial code parallelization. Users run their code through PFA, which looks at the program structure, determines which loops it can parallelize, which are best left serial, and which have one or more obstacles preventing their parallelization.
PFA always errs conservatively - if it is not sure whether it can parallelize a loop safely, it will not do so. PFA modifies the user original source to a transformed source that is optimized and parallelized. It acts as a preprocessor for the SGI MIPSpro Fortran compiler, which understands the parallel directives and has its own MP extensions.
Pro MPF provides a powerful visual interface into PFA transformations to show which loops were parallelized, which were not, and why they were not. In all cases where a loop could not be parallelized, Pro MPF will show the user the obstacles to parallelization and allow the user to rearrange the algorithm to circumvent those obstacles. Where it can, Pro MPF will prompt the user for the additional information that will allow PFA to parallelize that code section.
Pro MPF also allows control over PFA assertions and directives, as well as parallelization and MP scheduling controls. Integration with the ProDev WorkShop Performance Analyzer allows the user to identify the most expensive loops in the program and concentrate on those, rather than waste effort tuning loops that do not use significant time during execution.
Using Pro MPF, programmers can develop their multiprocess applications on a single processor system, use Pro MPF to understand the code and produce a multiprocessor version. Programmers can also execute the parallelized program on a multiple processor system. The compiled executable will automatically determine the number of processors available and execute accordingly.
Understanding Parallelized Code
Pro MPF provides the following capabilities that allow programmers to understand and develop parallelized code more easily:
This 64-bit ANSI Fortran 77 compiler is ideal for systems based on MIPS R8000 running IRIX 6. It is compatible with VAX/VMS Fortran and supports Cray extensions.
MIPSpro Fortran 90 Compiler
A 64 bit ANSI Fortran 90 compiler with additional support for user-defined multi-processing directives for systems based on MIPS R8000 running IRIX 6. Compatible with VAX/VMS Fortran and supports Cray extensions.
For more information, read about the MIPSpro compilers.
The ProDev WorkShop programming environment is specifically designed to handle the debugging and tuning of MP programs.
The multiprocess view of the debugger allows users to more easily debug parallelized programs. This view allows users to set breakpoints at the creation of a new process, handle sprocs and threads. MP view also provides a separate debugging view for each thread of the program.
The ProDev WorkShop Performance Analyzer has several views. All of the views can be used to look at performance of each thread of an executing program.
Performance Data Sampling Paradigm
The ProDev WorkShop Performance Analyzer utilizes a sampling paradigm that allows the collection of performance data at specified points during program execution, and analysis of that data during the different phases of the program execution. The sampling paradigm is critical for very large programs as it allows for analysis of specific portions of the program, and tuning of each portion individually.
Combined, these tools provide a superb environment for facilitating the development of applications to run on MP systems. Whether you are an experienced MP application developer, or are trying to write your first MP program, the SGI MP development tools provide you with the functionality you need to take advantage of all of the power of your systems.
To purchase SGI developer products, contact your local sales office or call SGI at (800) 800-7441.