Proteus is an execution-driven parallel-computer simulator which
simulates message-passing and shared-memory parallel
computers. It can simulate several network types and memory
configurations; additional ones can be added by users. It
has extensive facilities for collecting and displaying simulation data.
Programs to run on the simulated system are written in an extended
version of C.
Output from a simulation of a 16-processor system running
an N-queens program appears above; for output from the four Splash 2 kernels
Latest entry added 14 January 1998.
Proteus was written at MIT, primarily by Eric Brewer and Chrysanthaos
Dellarocas. A distribution for that version of Proteus can be obtained via
Local Version of Proteus
Proteus has been modified for
research being conducted at LSU; major changes include:
- Shared pointers in user code are dereferenced using the usual C operators,
not special operators such as
- Shared memory simulation is more accurate because processing
of shared-memory access instructions is done at the assembly language
- The simulated system uses virtual memory.
The effects of TLB misses,
page table locality, and page table contention
are fully captured.
- Stores are nonblocking, loads can optionally complete out of order
- The issue rate can be adjusted so the peformance of
multiple issue processors can be approximated.
(Microarchitecture simulation is not performed, CPU
timing is based on a very simple model.)
- User code can be compiled with optimization.
- A contiguous block of shared memory can be allocated over several
- A scripting facility is provided for running Proteus multiple times,
including modifying initialization files, rebuilding,
saving output files, and killing jobs that exceed a time limit.
- Stats, the program for viewing Proteus trace files,
now shows the density of events (e.g., you can tell if
network congestion is affecting many messages), two more mappings
from values to colors have been added, and there are now
user-definable colors. (See the News file in the distribution.)
- Additional graphs have been added showing system state and
contention at network inputs and outputs.
The LSU version of Proteus version 3.11 runs on SPARC systems
under SunOS 4.1.3 and Solaris 2.5.
is gcc 2.7.O or later, GNU zip, C++ shared libraries, and Perl5.