Version 6.3.0 of NetLogo is now (since September 2022) the default version for download at http://ccl.northwestern.edu/netlogo/download.shtml. We have been working with the NetLogo developers to understand and alleviate some unexpected behavior of this new version when running big models.
There are some benefits to NetLogo 6.3.0:
- It is packaged with a newer version of Java (Java 17), which (in our experience) can run ~10% faster than the previous.
- Version 6.3.0 uses a newer “garbage collector” (run-time code that frees up memory when it’s no longer used, such as when a turtle dies). The new garbage collector can be faster but it uses more processor threads.
- Java 17 also offers the option to define how much RAM NetLogo has access to as a percentage of total RAM, instead of a specific number of megabytes. In the NetLogo.cfg file, replace the line similar to this:
with something like this:
We have also noted some potential problems running large models, and especially BehaviorSpace experiments on them, with NetLogo 6.3.0. This version often demands more than one CPU processor per model run, presumably in part for the garbage collector. In BehaviorSpace, NetLogo 6.3.0 sometimes uses more processors than specified by the user when starting the experiment, and the number of processors in use can cycle widely over several seconds. In some cases, telling BehaviorSpace to use all (or nearly all) of a computer’s processors causes execution to be very slow.
The NetLogo development team is currently (early 2023) trying to understand why these issues happen. In the meantime, if you use NetLogo 6.3.0 for large experiments, watch the CPU use during execution (e.g., via Windows’ Task Manager). If execution seems slower than it should be, or execution becomes very slow when you use most or all your processors, you may be better off using NetLogo 6.2.2.