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.
If your applications use parallelism, use the new multiprocessing systems and multithreaded operating environments to improve performance, responsiveness, and flexibility. With multithreading you can:
Increase performance on multiprocessor systems
Increase performance on uniprocessor systems
Use resources more efficiently
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.
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.
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:
Browse parallel and sequential loops and view a graph of loop runtimes
View displays of performance data showing which loops were parallelized
Obtain compiler hints about why a loop was not parallelized
Go directly from the graphical display to the source code for any loop, simplifying source code editing
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.
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.