6

For a project we need to decide between NetLogo and RepastS.

We will model a network of institutions with people moving between them. People enter and exit these institutions that are implemented as black boxes. We see no problem using NetLogo for this. An extension of this project will have explicit implementations of institutions with interacting agents. These interactions occur at a different time scale than updates on the macro level (movement between institution).

1) Can NetLogo handle potentially millions of agents (moving between institutions and interacting inside them) and 2) can NetLogo handle agents that operate on different time scales and granularity?

Rainer
  • 73
  • 2

1 Answers1

6

1) See NetLogo FAQ on how big models can be and how to increase it's memory capabilities.

Millions of agents is definitely possible, but far from common. I've heard of a lab that uses around 7 million agents in their simulation (running on a cluster).

On my laptop, after increasing the memory limit (see the FAQ), I was able to easily create several millions of agents and ask them to do trivial things. Each ask at 3-4 million too about a 1-1.5 seconds.

2) Absolutely! Check out the LevelSpace extension (bundled with NetLogo) for this. It allows NetLogo models to open up and interact with other NetLogo models. So in your case, you'd create a model for within-institution interaction and then another model for the traveling between institutions that has a number of the institution models open that it adds agents to and removes agents from. Then, you can run the within-institution models at whatever scale you want relative to your main model.

Also, distributing the agents among models via LevelSpace should generally run a bit faster. LevelSpace will automatically parallelize operations when calling to multiple models.

Bryan Head
  • 12,360
  • 5
  • 32
  • 50
  • I am really puzzled by the downvotes, both of the question and particularly the answer. The question is perhaps a bit vague, but on topic. The answer is a good answer to the question. I would hope that such down votes would usually be accompanied by an explanation (e.g., "this is obvious because of the FAQ"), but in this case, the FAQ gives only a partial answer, the answer references the FAQ and supplies more info. – Alan Oct 16 '17 at 23:23
  • Thanks Alan. If anyone has suggestions for improving my answer, I would be happy to change it. Given the high level of the question, I didn't think going into code examples and such was appropriate. @Rainer, if you do have any questions about implementation, I'd be more than happy to answer further questions. – Bryan Head Oct 17 '17 at 15:30