> On June 29, 2015, 12:55 p.m., Tony Gutierrez wrote:
> > 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()?
> 
> Gabor Dozsa wrote:
>     Thank you for reviewing the patches!
>     
>     Regarding a possible thread based implementation, the purpose of the pure 
> virtual MultiIface class is exactly to allow different implementations for 
> the low level underlying messaging system. The 
> tcp_iface.[hh|cc]/tcp_server.[hh|cc] files provide a socket based 
> implementation but it should be possible to provide a multi-threaded/shared 
> memory based implementation as well without any major changes in the 
> MultiEtherlink/MultiIface classes.
>     
>     Using libevent/libev is a very good idea as a future optimization for 
> large scale multi-gem5 simulations with hundreds of gem5 processes. The 
> poll() interface could definitely be a bottleneck beyond a few dozen sockets.

What would be the benefit of a shared-memory implementation of MultiIface vs. 
the existing multithreaded multiple event queue support?


- Steve


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


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