Prism Version 2.0 Release Notes 1 : ABOUT VERSION 2.0 ********************* Version 2.0 is a major release of the Prism programming environment. It includes support for message-passing programs, as well as other new features. Message-passing support is provided via a new interface called Node Prism. On the CM-5, Node Prism Version 2.0 requires CMOST Version 7.3. If you don't use Node Prism, you need CMOST Version 7.2 or later. Prism Version 2.0 supports, but does not require, Version X11 R5 of the X Window System. 2 : NODE PRISM ************** To enter Node Prism, use the prism command with the -node option: % prism -node You can also use the -C option to bring up a command-line version of Node Prism. For complete information on Node Prism, see Chapter 10 of the Prism User's Guide. NOTE: There is currently a C* driver bug that requires you to add -Zcmmd-ld "-u _CMC5_dbx" on the link line when compiling with -node -g. 3 : OTHER NEW FEATURES ********************** Except as otherwise noted, these features apply both to Prism (for both the CM-5 and the CM-2/200) and to Node Prism. 3.1 NEW COMMAND-LINE VERSION THAT DISPLAYS WINDOWS --------------------------------------------------- Some users prefer the command-line version of Prism. Some information, however, is best presented graphically, and this graphical presentation has not been available to users of command-line Prism. As of Version 2.0, Prism provides an option that lets users running under X use command-line Prism in an Xterm, but redirect output to windows for certain Prism information. To run this version of Prism, specify the option -CX on the prism command line in your Xterm: % prism -CX The (prism) prompt will appear, and you can run command-line Prism as you normally would. In addition, however, you can redirect this output to X windows: o visualizers (including structure visualizers)--print or display command o performance data--perf command o Where graph(Node Prism only)--where command o PN Sets window (Node Prism only)--show pnsets command To redirect the output, issue the appropriate command with the on dedicated or on snapshot syntax, just as you would in graphical Prism. For example, this command displays a visualizer for x in a dedicated window: (prism) print x on dedicated This command displays performance data in a snapshot window: (prism) perf on snapshot In addition, you can display help windows from within windows that you pop up in this way. 3.2 ENABLING AND DISABLING EVENTS ---------------------------------- Prism Version 2.0 lets you disable and enable events. When you disable an event, Prism keeps it in the event list, but it no longer affects execution. You can subsequently enable it when you once again want it to affect execution. This can be more convenient than deleting events and then redefining them. From the event table: The event table now has an Enabled field. By default, there is a y in this field, meaning that the event being defined or edited is enabled. Click on the field and change the y to an n to disable the event. The event remains in the event list, but is labeled (disabled). You can then edit the event in the usual way and change the field back to a y to enable the event once again. From the command line: Issue the disable command to disable an event. Use the event's ID as the argument. You can obtain this ID from the event list in the event table, or by issuing the show events command. For example, this sequence of commands displays the event list, then disables an event, then redisplays the event list: (prism) show events (1) trace (2) when stopped { print board } (prism) disable 1 event 1 disabled (prism) show events (1) trace (disabled) (2) when stopped { print board } Issue the enable command to enable an event that has been disabled. Specify the ID of the disabled event as the argument. For example, enable 1 enables the trace event listed above. 3.3 NEW INFORMATION IN THE LINE-NUMBER REGION ---------------------------------------------- Prism now displays a T in the line-number region next to a line at which a tracepoint has been set. (If both a breakpoint and a tracepoint have been set on a line, Prism displays a B.) Shift-click on the letter in the line-number region to display the complete event (or events) associated with it. NOTE: In split-screen mode in Prism Version 1.2, shift-left-click in the line-number region displayed pound signs to indicate the mapping between source lines in the master and slave panes. In Version 2.0, use Ctrl-left-click to do this. Node Prism provides more information in the line-number region; see the discussion of debugging in Chapter 10 of the Prism User's Guide. 3.4 NEW BEHAVIOR OF THE PN DEBUG SELECTION ------------------------------------------- When Prism is running on a CM-5 system running CMOST Version 7.3, choosing the PN Debug selection from the Utilities menu now starts up Node Prism. If the CM-5 is running CMOST Version 7.2, choosing PN Debug starts up pndbx. 3.5 NEW RESOURCE: PRISM.SPECTRALMAPSIZE ---------------------------------------- Use the new resource Prism.spectralMapSize to specify how large the default spectral color map is to be for colormap visualizers. The default is 100 entries. You would typically use this resource to specify fewer entries, if this number causes problems on your workstation. To set the default to 50, for example, set the resource in your X resource database as follows: Prism.spectralMapSize: 50 3.6 NEW MOUSE OPTION IN STRUCTURE VISUALIZERS ---------------------------------------------- You can now left-click or shift-left-click on a zoomed-out (that is, tiny) structure visualizer node to pop up a window showing the full contents of the node. 3.7 INTERFACE TO CMVIEW ------------------------ Choosing the Online Doc selection in the Doc menu now executes CMview, Thinking Machines Corporation's on-line documentation system. 3.8 NEW ON-LINE HELP SYSTEM ---------------------------- Prism Version 2.0 contains a new on-line help system based on the WorldView viewing software also used in CMview. 4 : PERFORMANCE ANALYSIS ************************ In Prism Version 2.0, the display and interpretation of performance data have changed somewhat: o By default, Prism now displays seconds, rather than utilization percentages, as the units for performance data. This is also the default when printing an ASCII version of the data via the perf command. Use the new argument util to print utilization percentages. o At the top of the Performance Data window, Prism now displays two versions of execution time. The first, Wallclock time, represents the actual wallclock time from when the program started to when it finished; thus, it is sensitive to effects of timesharing and front-end or partition-manager load. The second, CM elapsed time, represents the time the CM or the nodes were allocated to the program; this measurement takes into account timesharing on the CM, and should be reasonably consistent no matter what the load is on the front end or partition manager. Thus, this measurement gives an indication of what your program's performance would be on a dedicated system. o Wallclock time is now used in the calculation of utilization percentages. This means that utilization percentages can vary considerably from run to run of the program. If you choose the Utilization display option, a popup window warns you of this possibility. Note that, although the actual percentages may vary considerably, the relative percentages for most resources will remain the same. For example, if Node cpu (user) uses twice as much time as any other resource on one run of the program, it should use twice as much time as any other resource on the next run. I/O time, however, is an exception; it can vary non- proportionally to the other resources from run to run. o The CM cpu (system) (for CM-2/200s) and Node cpu (system) (for CM-5s) resources have been eliminated. The time previously allocated to these resources is now added to CM cpu (user) and Node cpu (user), respectively. 4.1 PROBLEM WITH THE FRONT-END OR PARTITION-MANAGER CPU (USER) RESOURCE ------------------------------------------------------------------------ Under certain circumstances, the time assigned to the front-end or partition-manager CPU (user) resource will incorrectly include time spent waiting for the CM or the nodes. In such cases, this resource may appear to be the bottleneck for the program, when in fact it is not. When this is the most-used resource, the performance advisor prints a warning, and the Procedures pane of the Performance Data window displays data for the most-used CM or node resource instead. 5 : THE PRISM MAILING LIST ************************** As described in Chapter 8 of the Prism User's Guide, Thinking Machines maintains a mailing list, prism-talk@think.com, where Prism users can discuss how to get the most out of the Prism programming environment. To join this list, simply send e-mail to prism-talk-request@think.com.