Sun Performance WorkShop Fortran Overview

Multiprocessing and Multithreading

Multiprocessing (MP) is the hardware technology on the SPARC platform that supports tightly coupled multi-CPU systems with shared memory. Multiple CPUs provide more power to drive application performance.

Multithreading (MT) is the software technology that enables the development of parallel applications, whether on single- or multiple-processor systems. Independent threads of execution can be scheduled on multiple CPUs in a multiprocessor system, but they share resources such as memory and files, allowing single applications to execute code in parallel. Threads share resources, synchronize, and communicate with each other through the use of mutual exclusion (mutex) locks provided by the operating system. Multiprocessing and multithreading together give you a scalable solution for higher application performance.

Take Advantage of Parallelism

If your applications use parallelism, use the new multiprocessing systems and multithreaded operating environments to improve performance, responsiveness, and flexibility. With multithreading you can:

Speed Error Detection With Multithreaded Development Tools

Use multithreaded development tools to extend the Sun WorkShop Compilers Fortran (and multiprocessing C compiler) for multiprocessing optimizations. The multiprocessing/multithreading tool set includes multithreaded extensions to the Sun WorkShop debugger and dbx, and two additional tools: LockLint and LoopTool.

Find Inconsistent Lock Use With LockLint

Use LockLint to do static analysis of the use of mutex and read/write locks. In searching for inconsistent lock use, LockLint detects the most common causes of data races and deadlocks.

Analyze Loop Information

Take advantage of LoopTool and LoopReport, performance analysis tools used with the multiprocessing Fortran and C compilers. The compilers automatically parallelize loops when they determine that it is safe and profitable to do so. With LoopTool you can:

Use the LoopReport command-line tool to create a summary table of all loop runtimes correlated with compiler hints about why a loop was not parallelized.

For More Details, Use Call Grapher and gprof

You can use the -pg option to the Fortran compilers to compile an application for call graph profiling. Once your program is compiled in this manner, call graph profile data is sent to a file called gmon.out after each run. Use the gprof command to interpret the results of the profile.