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.
SunOS 4.1.3 Stats requires libC.so (check /usr/lang/lib on your system).
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?)
Views
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.
Zoom-to-Processor
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.