-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/2826/#review6647
-----------------------------------------------------------


Firstly, thanks for this patch, this is really nice work.

I have only done a cursory review of this patch so I'm still looking over the 
code in more detail, but I thought I'd share some of my initial thoughts to get 
the conversation going on this since it seems to have stagnated.

Reiterating Nilay's point: there are a lot of style issues that need to be 
fixed.

It seems like this would be useful for large-scale systems, but could you give 
some idea how easily one could derive from the multi link/iface objects for use 
with a multi-threaded aproach, thereby avoiding socket-based communication? 
E.g., if I wanted to model small/medium scale distributed systems consisting of 
~10s of nodes on a single host machine. It would be nice if multi-gem5 and a 
multi-threaded approached were unified and built off the same base classes.

For the TCP server, have you thought about an event-based approach, i.e., 
libevent or libev as opposed to using poll()?

- Tony Gutierrez


On June 24, 2015, 4:56 p.m., Curtis Dunham wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/2826/
> -----------------------------------------------------------
> 
> (Updated June 24, 2015, 4:56 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> 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.
> 
> Checkpoint support will follow in a subsequent patch.
> 
> 
> Diffs
> -----
> 
>   src/dev/Ethernet.py d02b45a554b52c68cce41e1b3895fb8582a639dd 
>   src/dev/SConscript d02b45a554b52c68cce41e1b3895fb8582a639dd 
>   src/dev/etherpkt.hh d02b45a554b52c68cce41e1b3895fb8582a639dd 
>   src/dev/etherpkt.cc d02b45a554b52c68cce41e1b3895fb8582a639dd 
>   src/dev/multi_etherlink.hh PRE-CREATION 
>   src/dev/multi_etherlink.cc PRE-CREATION 
>   src/dev/multi_iface.hh PRE-CREATION 
>   src/dev/multi_iface.cc PRE-CREATION 
>   src/dev/multi_packet.hh PRE-CREATION 
>   src/dev/multi_packet.cc PRE-CREATION 
>   src/dev/tcp_iface.hh PRE-CREATION 
>   src/dev/tcp_iface.cc PRE-CREATION 
>   util/multi/Makefile PRE-CREATION 
>   util/multi/bootscript.rcS PRE-CREATION 
>   util/multi/gem5-multi.sh PRE-CREATION 
>   util/multi/tcp_server.hh PRE-CREATION 
>   util/multi/tcp_server.cc PRE-CREATION 
> 
> Diff: http://reviews.gem5.org/r/2826/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Curtis Dunham
> 
>

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to