What's New with LSU Proteus

14 January 1998

Version L3.13 Available

Proteus version 3.13 is available. Changes include bug fixes and improvements to stats. The fixed bugs would be encountered when more than one thread per processor were active, and would result in abnormal termination when virtual memory was used. The statistics viewer, stats, includes new features for comparing the output of two or more runs. For example, the dividers (used to determine colors on graphs) in one window can be synchronized to another (so a color would represent the same range of values in two or more windows). Dividers can also be selected and pasted to and from any other X program, for example a text editor. See release notes (News) for further details.

26 August 1997

Additional Sample Output Posted

Output of simulations of systems running five Splash 2 applications have been added. One page shows shows Radiosity output and the other, Barnes, FMM, Ocean, and Water N2.

25 August 1997

Version L3.12 Available

Proteus version 3.12, primarily a bug-fix release, is available. Several bugs in 3.11 and earlier releases have been fixed. A miss latency graph has been added and the cache hit ratio graph is now accurate under all circumstances (AFAIK). (In 3.11, the hit ratio could be off slightly when multiple memory accesses are possible per thread.) For details, see the release notes (News) file in the distribution.

4 August 1997

Version L3.11 Available

Proteus version 3.11, a major upgrade, is available. Some changes are described below, for other changes see the News file and the documentation.

Virtual Memory

The simulated system can provide virtual memory, the delays due to TLB misses, page table access, and page locking are realistically simulated. Processors have fully associative TLBs; directory poisoning is used to provide efficient page relocation (movement of pages between processors). Page selection can use color matching or bin hopping.

Nonblocking Stores

Stores (writes) to shared memory can be nonblocking. When this option is set, a store instruction will not block the following instruction in program order. Stores complete in program order. Loads can complete in or out of order. With in-order loads the system is sequentially consistent, with out-of-order loads its not.

Adjustable Instruction Issue Rate

The instruction issue rate can be adjusted (e.g., set to 3 instructions per cycle). Because Proteus does not perform microarchitecture simulation, this is only a crude approximation of the performance of multiple issue processors, but should be sufficient for parallel system simulation.

Improvements to Snapshot

Snapshot provides more source information. The thread information option now prints a stack trace (showing source code file and line number).

Improvements to Stats

Stats can now scale events, so that instead of, for example, giving (total) memory contention per 100 messages, it gives average memory contention. Stats now displays the average value of visible events in ArrayGraphs. Graph specifications can be placed in the event file.

Coherence Protocol Changes

Upgrade messages have been added to the coherence protocol, slightly reducing traffic volume.

22 April 1997, 9:17:18 CDT

Version L3.10 Available

Proteus version 3.10, a minor upgrade is available. Changes include better installation of cycle-counted libraries, better error trapping, and minor bug fixes in stats. The latest version of stats is included in the distribution.

Installation Bug Fix

Improved installation of libraries. Now, all Proteus cycle-counted functions are used; previously only those library functions with counterparts in the system libraries were included. This change will avoid hard-to-find runtime errors that occur when such functions are called in simulator code ("ENGINE" mode) (in contrast to code running on the simulated systems ["USER" mode], where these functions would not cause problems).

Improved Error Detection and Messages

Cycle-counted functions (library and user) now test if they are started in the proper mode. If not, a fatal error is issued.

A call stack is now printed after fatal errors.

Stats Font Bug Fix

Because of a bug, earlier versions of stats might end up using narrow Helvetica fonts. These are difficult to read and worse, would not work in the Postscript output. The bug is now fixed.

26 February 1997, 18:13:26 CST

Stats Version 3.42 Available

The newest version of Stats, version 3.42, is available (but not included in the current Proteus distribution). PostScript output now closely matches the screen, incomplete event files can be read, and the distribution of data in certain graphs is given in the key. There are also some user-interface improvements such as keyboard pan and zoom. See the News file, html'd below. Solaris 2.5 (dynamic linking), SunOS 4.1.3 (dynamic linking), and SunOS 4.1.3 (libC library statically linked), versions have been prepared. The Solaris version includes a new InterViews library (libIV.so) because the one distributed with Proteus L3.9 has a minor bug (which does not affect the old version of stats).

The tar-zip files linked to below contain the program, brief documentation, and libIV.so for the Solaris version. The tar file unpacks into the current directory. The stats file should be placed in Proteus' bin directory and Solaris users should place the lib file in a directory on the library path.

Solaris 2.5 Stats

SunOS 4.1.3 Stats requires libC.so (check /usr/lang/lib on your system).

SunOS 4.1.3 Stats

New Features in Stats L3.42

Incomplete Event Files

Stats can now read incomplete event files; this is useful for simulations that end abnormally or are in progress. (Gee, I wonder if it's in an infinite loop?)


The current and total number of views is now displayed in the upper left-hand-corner of the graph.

The "x" values of views are preserved when switching to compatible graphs. For example, if you zoom in on cycles 1000000 to 1200000 in the states graph and then switch to the access latency graph, that same range will be visible.


Double clicking on a row (typically displaying data from a particular processor) in an event graph will zoom the graph to display only that row.

Keyboard Navigation

The keyboard can now be used to pan, zoom, and switch between views. The key bindings are:

 [left]      Pan (user's view) left 20% of current view.
 [S-left]    Pan left 4% of current view.
 [right]     Pan right 20% of current view.
 [S-right]   Pan right 4% of current view.
 [up]	     Pan up 20% of current view.
 [down]	     Pan down 20% of current view.
 [pageup]    Pan to maximum y value.
 [pagedown]  Pan to minimum y value.
 [home]	     Pan to minimum x value.
 [end]	     Pan to maximum x value.
 [C-up]	     Zoom out.
 [C-down]    Zoom in.
 [M-left]    Previous view.
 [M-right]   Next view.
 [M-up]	     First view (entire graph).

where, [S-up] indicates shift-up-arrow, [C-up] indicates control-up-arrow, [M-left] indicates meta-left-arrow, etc. (The meta key is near the space bar, labeled with a black diamond.)

Sometimes these pan and zoom commands change the current view, sometimes they increment the current view and apply there. (The View menu or the [M-left] and [M-right] keys can be used to switch between views.) The rules are:

General rule: if it's not reversible it creates a new view.

The first view always displays the entire graph so any pan or zoom in the first view will modify or initialize the second view.

Keyboard zooms affect the current view. Mouse zooms (double clicking or dragging) always create a new view.

Arrow-key pans effect the current view, other keyboard pans create new views.

Bin Occupancy Data

The key for event graphs can now indicate the number or percentage of events in the current view within each range. For example, the states graph now indicates the amount of time idle, waiting in a barrier, etc. This information can be switched off from the options menu.

PostScript Output

PostScript output now closely matches the displayed graph. New standard sizes are available (identified by size rather than their intended use) as well as PostScript matching the current window size. The PostScript generation code does not prevent text from overlapping. If it does, either shorten the text by editing the PostScript file or select a larger plot.

The title, subtitle, and the plot background color can easily be changed by editing the PostScript; comments have been included to guide those making these and more extensive changes.

(For those familiar with PostScript, the title and subtitle can even by changed by defining keys before the graph file itself is read within some other environment. One could, say, specify the title in a TeX file processed by dvips using \special{!/stats-title (Experiment 1 Results) def}, though this would set the title of all included stats graphs.)

A useful feature has been removed. It is no longer possible to generate PostScript using command-line arguments.

The Splash 2 state plots and the radix plots were generated from stats' PostScript output.

ECE Home Page Up
David M. Koppelman - koppel@ece.lsu.edu
Modified 28 Nov 2007 18:33 (033 UTC)