gem5/util
Gabor Dozsa fc5bf6713f dev: add support for multi gem5 runs
Multi gem5 is an extension to gem5 to enable parallel simulation of a
distributed system (e.g. simulation of a pool of machines
connected by Ethernet links). A multi gem5 run consists of seperate gem5
processes running in parallel (potentially on different hosts/slots on
a cluster). Each gem5 process executes the simulation of a component of the
simulated distributed system (e.g. a multi-core board with an Ethernet NIC).

The patch implements the "distributed" Ethernet link device
(dev/src/multi_etherlink.[hh.cc]). This device will send/receive
(simulated) Ethernet packets to/from peer gem5 processes. The interface
to talk to the peer gem5 processes is defined in dev/src/multi_iface.hh and
in tcp_iface.hh.

There is also a central message server process (util/multi/tcp_server.[hh,cc])
which acts like an Ethernet switch and transfers messages among the gem5 peers.

A multi gem5 simulations can be kicked off by the util/multi/gem5-multi.sh
wrapper script.

Checkpoints are supported by multi-gem5. The checkpoint must be
initiated by a single gem5 process. E.g., the gem5 process with rank 0
can take a checkpoint from the bootscript just before it invokes
'mpirun' to launch an MPI test. The message server process will notify
all the other peer gem5 processes and make them take a checkpoint, too
(after completing a global synchronisation to ensure that there are no
inflight messages among gem5).
2015-07-15 19:53:50 -05:00
..
batch python: Move various utility classes into a new m5.util package so 2008-06-14 20:19:49 -07:00
ccdrv includes: sort all includes 2011-04-15 10:44:06 -07:00
cxx_config config: Fix checkpoint restore in C++ config example 2014-11-14 03:54:02 -05:00
emacs Make the M5 Emacs C style default to inserting spaces instead 2006-01-30 14:32:00 -05:00
m5 kvm, x86: Adding support for SE mode execution 2014-11-23 18:01:08 -08:00
minorview cpu: `Minor' in-order CPU model 2014-07-23 16:09:04 -05:00
multi dev: add support for multi gem5 runs 2015-07-15 19:53:50 -05:00
pbs python: Move various utility classes into a new m5.util package so 2008-06-14 20:19:49 -07:00
statetrace ARM: Add vfpv3 support to native trace. 2011-05-04 20:38:26 -05:00
stats stats: fix usage of jobfile 2009-07-02 16:48:21 -07:00
streamline config: Update Streamline scripts and configs 2014-09-03 07:43:02 -04:00
systemc config: Fix to SystemC example's event handling 2014-12-02 06:08:09 -05:00
tap includes: sort all includes 2011-04-15 10:44:06 -07:00
term includes: sort all includes 2011-04-15 10:44:06 -07:00
checkpoint-tester.py util: add a script for testing checkpointing 2010-07-05 21:39:38 -07:00
checkpoint_aggregator.py util: update checkpoint aggregation script 2013-12-03 10:36:03 -06:00
checktrace.sh Add checktrace.sh. Checks all the ethertrace files in */ethertrace 2005-11-11 18:43:09 -05:00
chkformat Utilities for doing a format check for some elements of proper 2006-12-17 18:58:05 -08:00
compile Nate's utility for compiling m5 2006-12-17 18:58:50 -08:00
cpt_upgrader.py sim, arm: add checkpoint upgrader for d02b45a5 2015-06-01 18:05:11 -05:00
cscope-index.py cscope-find.py: 2006-11-29 13:17:41 -08:00
decode_inst_trace.py cpu: add support for outputing a protobuf formatted CPU trace 2015-02-16 03:32:38 -05:00
decode_packet_trace.py util: Move packet trace file read to protolib 2014-08-10 05:39:20 -04:00
diff_config.pl Util: Added script to semantically diff two config.ini files 2012-09-25 11:49:40 -05:00
dram_sweep_plot.py mem: Add utility script to plot DRAM efficiency sweep 2014-09-03 07:42:29 -04:00
encode_packet_trace.py mem: Edit proto Packet and enhance the python script 2014-03-07 15:56:23 -05:00
file_types.py file_types: Make code work in Python 2.4 2011-04-17 13:57:03 -07:00
find_copyrights.py copyright: Add code for finding all copyright blocks and create a COPYING file 2011-06-02 17:36:07 -07:00
fixwhite Utilities for doing a format check for some elements of proper 2006-12-17 18:58:05 -08:00
gem5img.py Util: Replace mkblankimage.sh with the new gem5img.py. 2011-04-29 04:46:19 -04:00
hgfilesize.py hgfilesize: skip files that have been removed 2012-01-10 22:50:54 -08:00
memtest-soak.py config: Add soak test for memtest.py 2015-03-19 04:06:18 -04:00
minorview.py cpu: `Minor' in-order CPU model 2014-07-23 16:09:04 -05:00
o3-pipeview.py o3: fix tick used for renaming and issue with range selection 2013-02-15 17:40:09 -05:00
on-chip-network-power-area.py util: adds a script for using DSENT 2014-10-11 16:16:00 -05:00
oprofile-top.py Updated Authors from bk prs info 2006-05-31 19:26:56 -04:00
protolib.py util: Move packet trace file read to protolib 2014-08-10 05:39:20 -04:00
qdo Make qdo work with oar. I don't know if this catches every case, but it appears 2007-10-10 23:24:16 -04:00
regress ruby: rename MESI_CMP_directory to MESI_Two_Level 2014-01-04 00:03:33 -06:00
rundiff rundiff: Don't flush stdout until after postcontext is printed. 2009-09-26 10:50:50 -07:00
SConscript Major changes to how SimObjects are created and initialized. Almost all 2007-07-23 21:51:38 -07:00
slicc slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
sort_includes.py style: Update the style checker to handle new include order 2015-02-03 14:25:50 -05:00
style.py style: Fix broken m5format command 2015-02-11 10:23:34 -05:00
tracediff tracediff: Check for --debug-flags now instead of --trace-flags. 2011-07-02 22:52:26 -07:00
valgrind-suppressions util: Valgrind suppression addition 2014-04-23 05:18:29 -04:00