As an illustration, Lytinen and Railsback ( 2012) found version 5.0 of NetLogo about 20 times faster than the “ReLogo” element of RePast ( Ozik et al. Especially, NetLogo’s optimizations are likely to make it faster than simple code written in a standard programming language by an inexpert or time-constrained programmer. 20) that could often make NetLogo faster than platforms lacking such attention to execution speed. In fact, people deciding which platform to use for large ABMs need to be aware that NetLogo’s compiler now includes a number of optimizations and clever designs ( Stonedahl et al. That comparison was made before NetLogo was converted from an interpreted to mainly compiled language ( Stonedahl et al. ( 2006) compared version 2.1 of NetLogo to other ABM platforms and found its execution slower, but not dramatically slower, than the fastest (RePast and MASON). 2006) and modern versions of languages that run on the Java virtual machine are no longer considered seriously slower than other languages ( Wikipedia 2016). This understanding is no longer as meaningful as it once was: many parts of NetLogo are in fact compiled ( Stonedahl et al. The belief likely originated in part with the understanding that NetLogo and the Java language it is based on are interpreted instead of compiled. This belief that NetLogo is inherently unsuited for large models is not well supported ( Tisue and Wilensky 2004). But for computationally intensive “serious” ABMs, there is a belief that NetLogo’s execution speed is such a constraint that models will need to be re-implemented in lower-level languages (e.g., Sklar 2007 Bouquet et al. Therefore, NetLogo appears to have a reputation as especially suited for relatively simple ABMs intended mainly to communicate ideas. It is widely accepted that NetLogo can make model-based science efficient by greatly reducing programming effort and making it easier to test both the software and model design. The reasons for NetLogo’s popularity include its professional design and packaging, comprehensive documentation, high-level programming language with many built-in commands and data types specialized for ABMs, integrated graphical user interface, integrated tool for performing simulation experiments, and active user community.ĭespite its many advantages, NetLogo has a reputation as not suitable for large or complex models. The CoMSES Net Computational Model Library ( ), to which this journal encourages submitting models, appears to be dominated by models implemented in NetLogo and two recent textbooks on ABMs ( Railsback and Grimm 2012 Wilensky and Rand 2015) use NetLogo as the platform. Īgent-based models (ABMs) have become essential tools in social (and other) sciences, and NetLogo ( Wilensky 1999) is probably now the most widely used software platform for ABMs. Further updates and additions to this article are at. 9.1) have changed dramatically due to improvements in NetLogo versions 6.0.1 and later. The speed costs of using the "in-radius" primitive (Sect. NetLogo also is supported by efficient analysis tools, such as BehaviorSearch and RNetLogo, that can reduce the number of model runs and the effort to set them up for (e.g.) parameterization and sensitivity analysis.Ĭorrigendum : Further investigation indicates that the speed advantage of using state variables instead of links stated in Sects. NetLogo’s BehaviorSpace tool makes it very easy to conduct multiple-model-run experiments in parallel on either desktop or high performance cluster computers, so even quite slow models can be executed thousands of times. For models in which most agents do nothing on most time steps, discrete event simulation-facilitated by the time extension to NetLogo-can dramatically increase speed. Programming the same behavior in a different way can sometimes provide order-of-magnitude speed increases. For models with extensive initialization methods, reorganizing the setup procedure can reduce the initialization effort in simulation experiments. Avoiding or improving agent filtering statements can often produce dramatic speed improvements. We recommend a five-step process for quantifying execution speed, identifying slow parts of code, and writing faster code. NetLogo programs often do run very slowly when written to minimize code length and maximize clarity, but relatively simple and easily tested changes can almost always produce major increases in execution speed. Our experience does not support that belief. NetLogo has become a standard platform for agent-based simulation, yet there appears to be widespread belief that it is not suitable for large and complex models due to slow execution.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |