Node Sim
July 6, 2006 7:10 PM   Subscribe

Is there a way to simulate 100 networked nodes on my computer? I would want to set variables like latency between nodes, nodes disconnecting, and sending my own custom call and response back and forth to the different nodes.
posted by parallax7d to Computers & Internet (9 answers total) 1 user marked this as a favorite
It depends on how realistic you want the simulation to be. You could write a program that sure acted like it was on a network talking to a hundred nodes.

With a beta copy of VMware Server (at least, it was still in public beta last I looked) and some very paired down virtual machines (using very little memory), you could do it, though I'm unsure how one would increase the latency. Maybe intentional waits, or requiring hops across a dozen of the VMs.
posted by tgmayfield at 7:19 PM on July 6, 2006

ns. godspeed.
posted by kcm at 7:31 PM on July 6, 2006

Don't us ns2. Or, if you do, grep for the word "hack" in the source code before you start. I think it comes up 87 times.

Consider writing your own simulation if you don't need accurate TCP behavior.

If you provide more detail about what you are after, I could be more help.

You could use dummynet with vmware if you are inclinded to that approach.
posted by about_time at 8:19 PM on July 6, 2006

I'd look into a simulation built on an implementation of MPI-2 to handle your network layer, then add custom calls up top to handle the latency and 'traffic'.
posted by onalark at 9:00 PM on July 6, 2006

Response by poster: Wow, I'm in way over my head. I might be able to step up to ns or MPI eventually, but for now the dummynet+VMs looks like the only realistic option for myself.

Any ideas on how to manage that many VM's? Eventually I would want to simulate at least 500-1000 nodes. That way I could prove it works to the network programmers and they could test it further using their own methods.
posted by parallax7d at 10:17 PM on July 6, 2006

parallax7d, MPI isn't really as bad as you think. Can you program in C/C++/Fortran? That's pretty much the only real requirement. You can get through most of the stuff on communicators, groups, sends/receives in a day or two, the software is well-documented and extremely well-maintained (it runs supercomputers!)

Start here: (Yes, I'm a summer intern at ANL, but not associated with the MPICH team - the software is distributed freely anyway)

YOU DO NOT WANT TO RUN 500 VIRTUAL MACHINES ON A SINGLE PC! You want to (at worst) run 500 threads with a good networking layer set up for you, which is how MPICH works on a single machine.
posted by onalark at 11:17 PM on July 6, 2006

Parallax, I think you a likely going about this all wrong. You need to figure out what key aspect of your research you need to simulate and code just that part. I've been doing this for years and years and I've never seen anyone need to actually run this many virtual machines (or computers). I'd talk to someone about the specifics of your project -- advisor or supervisor.
posted by about_time at 4:16 AM on July 7, 2006

Agreed. Running 500 virtual machines sounds like a horible idea. What is it exactly you need to simulate.
posted by chunking express at 7:25 AM on July 7, 2006

Response by poster: Don't do 500 VMs, got it.

I'm trying to simulate a P2P network DB of sorts.

I don't code onalark, aside from scripts. That's why I was thinking the VM idea would be easier for me to implement on my own.

about_time, I've always assumed I've been going about this all wrong ;) My goal is just to get something up and running, just a proof of concept, then hand it off to the real coders.
posted by parallax7d at 9:35 AM on July 7, 2006

« Older Take the job or leave it?   |   Online travel map Newer »
This thread is closed to new comments.