fc5bf6713f
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). |
||
---|---|---|
.. | ||
batch | ||
ccdrv | ||
cxx_config | ||
emacs | ||
m5 | ||
minorview | ||
multi | ||
pbs | ||
statetrace | ||
stats | ||
streamline | ||
systemc | ||
tap | ||
term | ||
checkpoint-tester.py | ||
checkpoint_aggregator.py | ||
checktrace.sh | ||
chkformat | ||
compile | ||
cpt_upgrader.py | ||
cscope-index.py | ||
decode_inst_trace.py | ||
decode_packet_trace.py | ||
diff_config.pl | ||
dram_sweep_plot.py | ||
encode_packet_trace.py | ||
file_types.py | ||
find_copyrights.py | ||
fixwhite | ||
gem5img.py | ||
hgfilesize.py | ||
memtest-soak.py | ||
minorview.py | ||
o3-pipeview.py | ||
on-chip-network-power-area.py | ||
oprofile-top.py | ||
protolib.py | ||
qdo | ||
regress | ||
rundiff | ||
SConscript | ||
slicc | ||
sort_includes.py | ||
style.py | ||
tracediff | ||
valgrind-suppressions |