Documentation Home
> Prism 6.0 User's Guide
Prism 6.0 User's Guide
Book Information
Preface
Chapter 1 The Prism Environment
Overview
The Look and Feel of Prism
Loading and Executing Programs
Debugging
Visualizing Data
Analyzing Program Performance
Editing and Compiling
Obtaining Online Help and Documentation
Customizing Prism
Chapter 2 Using Prism
Before Entering Prism
Supported Languages and Compilers
Compiling and Linking Your Program
Combining Compiler Options
Setting Up Your Environment
DISPLAY Variable
PATH Variable
PRISM_BROWSER_SCRIPT Variable
Entering Prism
Prism Options
Loading Programs
Attaching to a Process
Working With a Core File
Specifying Commands-Only Prism
Specifying X Toolkit Options
Specifying Input and Output Files
Methods of Specifying MP Prism Options
Specifying Where Host Prism Is to Run
Specifying MP Prism Command-line Options
Specifying Environment-Specific Options After Launching Prism
Using bsubargs
Using mprunargs
Executing Commands Within Prism
Using the Mouse
Using Keyboard Alternatives to the Mouse
Issuing Commands
Using the Menu Bar
Keyboard Accelerators
Using the Source Window
Moving Through the Source Code
Selecting Text
Splitting the Source Window
Using the Line-Number Region
Using the Command Window
Using the Command Line
Using the History Region
Redirecting Output
Logging Commands and Output
Executing Commands From a File
Writing Expressions in Prism
How Prism Chooses the Correct Variable or Procedure
Using Qualified Names
Using Fortran Intrinsic Functions in Expressions
Using C Arrays in Expressions
Using Array-Section Syntax in C arrays
Hints for Detecting NaNs and Infinities
Using Fortran 90 Generic Procedures
Issuing Solaris Commands
Changing the Current Working Directory
Setting and Displaying Environment Variables
Leaving Prism
Chapter 3 Loading and Executing a Program
Loading a Program
From the Menu Bar
From the Command Window
What Happens When You Load a Program
Loading Subsequent Programs
Associating a Core File With a Loaded Program
Examining Local Process Core Files
Attaching to a Running Process
Attaching to a Running Process (Serial Program)
Attaching to a Running Message-Passing Process
Executing a Program in Scalar Prism
Running a Program
Program I/O
Stepping Through a Program
Interrupting and Continuing Execution
Status Messages
Executing a Program in MP Prism
Stepping and Continuing Through a Program
Interrupting and Waiting for Processes
Execution Pointer
Finding Out Execution Status
Setting MPI_INIT_TIMEOUT
Executing a Program in the Commands-Only Mode of MP Prism
Quitting
Using Psets in MP Prism
Using the Psets Window
Predefined Psets
Defining Psets
Syntax for Defining a Pset
Naming Psets
Evaluating Variable Psets
Viewing the Contents of Psets
From the Psets Window
From the Command Line
Deleting Psets
Current Pset
Finding Out the Current Pset
Current Pset and Dynamic Psets
Current Pset and Variable Psets
The Current Process
The cycle Pset
Cycle Visualizer Window
Using Psets in Commands
Using MP Prism With Sun MPI Client/Server Programs
Choosing the Current File and Function
Creating a Directory List for Source Files
Chapter 4 Debugging a Program
Overview of Events
Using the Event Table
Description of the Event Table
Adding an Event
Deleting an Existing Event
Editing an Existing Event
Enabling and Disabling Events
Saving Events
Events Taking Pset Qualifiers (MP Prism Only)
Events and Dynamic Psets
Events and Variable Psets
Actions in Events
Displaying Events by Process
Events and Deleted Psets
Setting Breakpoints
Using the Line-Number Region
Deleting Breakpoints via the Line-Number Region
What Happens in a Split Source Window
Using the Line-Number Region in MP Prism
Using the Event Table and the Events Menu
Deleting Breakpoints via the Event Table
Using Commands
Examples
For Machine Instructions
Deleting Breakpoints via the Command Window
Tracing Program Execution
Using the Event Table and the Events Menu
Deleting Traces via the Event Table
Using Commands
For Machine Instructions
Deleting Traces via the Command Window
Displaying and Moving Through the Call Stack
Displaying the Call Stack
Moving Through the Call Stack
Scope in MP Prism
Where Graph
Panning and Zooming in the Where Graph
Shrinking Selected Portions of the Where Graph
Moving Through the Where Graph
Making a Function the Current Pset
Issuing the where Command in MP Prism
Combining Debug and Optimization Options
Interpreting Prism Interaction With an Optimized Program
Accessing Variables in Optimized Routines
Examining the Contents of Memory and Registers
Displaying Memory
Displaying the Contents of Registers
Chapter 5 Visualizing Data
Overview of Data Visualization
Printing and Displaying
Visualization Methods
Changing the Default Radix
Data Visualization Limits
Choosing the Data to Visualize
Printing and Displaying From the Debug Menu
Printing and Displaying From the Source Window
Printing and Displaying From the Events Menu
Printing and Displaying From the Event Table
Printing and Displaying From the Command Window
Setting the Context
Specifying the Radix
Working With Visualizers
Using the Data Navigator in a Visualizer
Changing the Axes
Using the Display Window in a Visualizer
Using the File Menu
Using the Options Menu
Choosing the Representation
Setting Parameters
Displaying a Ruler
Displaying Statistics
Using the Set Context Dialog Box
Changing the Radix
Updating and Closing the Visualizer
Saving, Restoring, and Comparing Visualizers
Saving the Values of a Variable
From the Command Line
From a Visualizer
Restoring the Data
Comparing the Data
From the Command Line
From a Visualizer
Visualizing Layouts of Parallel Objects
Visualizing Structures
Expanding Pointers
Panning and Zooming
Deleting Nodes
More About Pointers in Structures
Augmenting the Displayed Information
Updating and Closing a Structure Visualizer
Printing the Type of a Variable
What Is Displayed
Modifying Data
Changing the Radix of Data
Printing the Names and Values of Local Variables
Printing Pointers as Array Sections
Visualizing Multiple Processes in MP Prism
Visualizing MPI Message Queues
Launching the MPI Queue Visualizer
Using the MPI Queue Visualizer
Selecting the Queue to Visualize
Zooming Through Levels of Message Detail
Controlling the Values of Message Labels
Sorting Messages
Displaying Message Fields
Displaying Communicator Data
Data Types
Displaying and Visualizing Sun S3L Arrays
Chapter 6 Obtaining MPI Performance Data
Overview of MPI Performance Analysis
Getting Started
Requirements of MPI Performance Analysis
Environment Variables
PRISM_TNFDIR
LD_LIBRARY_PATH
Settting LD_LIBRARY_PATH For 32-Bit Programs
Settting LD_LIBRARY_PATH For 64-Bit Programs
MPI Performance Analysis Commands
TNF Probes
Collecting Performance Data
Naming TNF Data Files and Controlling Data Collection Buffer Size
Specifying Which TNF Probes to Enable
Turning on the Collection Process in Subsets of Your Code
Using a .prisminit File to Start the Collection of Performance Data
Displaying Performance Data
Using the tnfview Timeline Window
Opening TNF Trace Files
Bookmarking Events
Navigating and Controlling the tnfview Timeline Window
Exiting tnfview
Using the tnfview Graph Window
Creating an Event Dataset
Creating a New Interval
Editing Interval Definitions
Collecting an Interval Dataset
Selecting a Dataset to Plot
Adjusting the Scatter Plot Graph Axes
Updating the Graph
Selecting a Point in the Scatter Plot
Opening the Table View
Opening the Histogram View
Clicking on a Bucket in the Histogram
Specifying the Metric of the Histogram
Performance Analysis Tips
Reusing Performance Data Files
Enabling Probes Selectively
Controlling Buffer Size
Anticipating Timing Problems
Miscellaneous Suggestions
Controlling the Scale of TNF Data Collection
Collecting Trace Data
Tips for Controlling the Scale of Data Collection
Merging Trace Data Files
Managing Disk Space Requirements
Additional Information
Chapter 7 Applying Prism's MPI Performance Analysis
First Case Study - Point-to-Point Message Passing
Data Collection.
Message-Passing Activity At a Glance.
Summary Statistics of MPI Usage.
Finding Hotspots.
Fixing the Problem.
Second Case Study - Collective Operations
Synchronizing Skewed Processes: Timeline View
Synchronizing Skewed Processes: Scatter Plot View
Interpreting Performance Using Histograms
Prism/TNF case study summary
Performance Analysis Tips
Coping With Buffer Wraparound
Using Larger Trace Buffers.
Selectively Enabling Probes
Profiling Isolated Sections of Code At Run Time.
Profiling Isolated Sections of Code Within Source Code.
Inserting TNF Probes Into User Code.
Collecting Data, Batch Style
Accounting for MPI Time.
Chapter 8 Editing and Compiling Programs
Editing Source Code
Using the make Utility
Creating the Makefile
Using the Makefile
Chapter 9 Getting Help
Prism's Online Help Systems
Using the Browser-based Help System
Choosing Selections From the Help Menu
Getting Help on Using the Mouse
Obtaining Help From the Command Window
Obtaining Online Documentation
Viewing Manual Pages
Chapter 10 Customizing Prism
Customizing Different Versions of Prism
Using the Tear-Off Region
Adding Menu Selections to the Tear-Off Region
Adding Prism Commands to the Tear-Off Region
Creating Aliases for Commands and Variables
Using the Customize Utility
How to Change a Setting
Resources
Where Prism Stores Your Changes
Changing Prism Defaults
Adding Prism Resources to the Resource Database
Specifying the Editor and Its Placement
Specifying the Window for Error Messages
Changing the Text Fonts
Changing Colors
Changing the Colors Used for Colormap Visualizers
Changing Prism's Standard Colors
Changing the Colors of MPI Communicators in the MPI Queue Visualizer
Changing Keyboard Translations
Changing Keyboard Translations in Text Widgets
Changing General Motif Keyboard Translations
Changing the Xterm to Use for I/O
Changing the Way Prism Signals an Error
Changing the make Utility to Use
Changing How Prism Treats Stale Data in Visualizers
Specifying the Browser to Use for Displaying Help
Changing the Way Prism Handles Fortran 90 Generic Procedures
Initializing Prism
Chapter 11 Troubleshooting
Troubleshooting Tips
Launch Prism Without Invoking bsub or mprun
Avoid Using the -xs Compiler Option
Keep .o Files after Compilation
Expect a Pause After Issuing the First run Command
Monitor Your Use of Color Resources
Expect Only Stopped Processes to Be Displayed in the Where Graph
Use MP Prism to Load MPI Programs
Verify That /opt/SUNWlsf/bin Is in Your PATH
Use the -32 Option to Load 32-Bit Binaries For Performance Analysis on Solaris 7
Appendix A Commands-Only Prism
Specifying the Commands-Only Option
Issuing Commands
Useful Commands
Leaving Commands-Only Prism
Running Commands-Only Prism From an Xterm: The -CX Option
Appendix B C++ and Fortran 90 Support
C++ Support in Prism 6.0
Fully Supported C++ Features
Data Members in Methods
C++ Linkage Names
Methods of a Class
Class Member Variables
Variables of Class Type and Template Classes
this Identifier
Overloaded Method Names
Template Functions
Scope Operator in Prism Identifier Syntax
Partially Supported C++ Features
Casts
Static Class Members
Break Points in Methods
Unsupported C++ Features
Inlined Methods Used in Multiple Source Files
Calling C++ Methods
Variables of Type Reference
Fortran 90 Support in Prism 6.0
Fully Supported Fortran 90 Features
Derived Types
Generic Functions
Simple Pointers
Interactive Examples of Prism Support for Fortran 90 Pointers
Pointers to Arrays
Pointers to Sections of an Array in Fortran 90
Allocatable Arrays:
Array Sections and Operations on Arrays
Masked Array Operations
Variable Attributes
Partially Supported Fortran 90 Features
User-Defined Operators
Internal Procedures
Supported Intrinsics
Unsupported Fortran 90 Features
Derived Type Constructors.
Generic Functions
Pointer Assignment Error Checking
Printing Array Valued Functions
Appendix C General Profiling Methodology, Timers, And Other Profiling Utilities
General Profiling Methodology and the Use of Timers
Using Timers
MPI Profiling Interface
Using gprof
The tnfdump Utility
TNF Data Collection Without Prism
Using prex With CRE
Using prex with LSF
Index
Numbers and Symbols
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
© 2010, Oracle Corporation and/or its affiliates