HLogo: A Parallel Haskell Variant of NetLogo

Nikolaos Bezirgiannis, I. S. W. B. Prasetya, Ilias Sakellariou


Agent-based Modeling (ABM) has become quite popular to the simulation community for its usability and wide area of applicability. However, speed is not usually a trait that ABM tools are characterized of attaining. This paper presents HLogo, a parallel variant of the NetLogo ABM framework, that seeks to increase the performance of ABM by utilizing Software Transactional Memory and multi-core CPUs, all the while maintaining the user friendliness of NetLogo. HLogo is implemented as a Domain Specific Language embedded in the functional language Haskell, which means that it also inherits Haskell’s features, such as its static typing.


  1. Bjesse, P., Claessen, K., Sheeran, M., and Singh, S. (1998). Lava: Hardware design in haskell. In Proceedings of the Third ACM SIGPLAN International Conference on Functional Programming, ICFP 7898, pages 174-184, New York, NY, USA. ACM.
  2. Castle, C. J. E. and Crooks, A. T. (2006). Principles and concepts of agent-based modelling for developing geospatial simulations.
  3. Claessen, K. and Palka, M. H. (2013). Splittable pseudorandom number generators using cryptographic hashing. In ACM SIGPLAN Notices, volume 48, pages 47-58. ACM.
  4. Deissenberg, C., van der Hoog, S., and Dawid, H. (2008). EURACE: a massively parallel agent-based model of the european economy. Applied Mathematics and Computation, 204(2):541-552.
  5. Discolo, A., Harris, T., Marlow, S., Peyton, and Singh, S. (2006). Lock -free data structures using STMs in haskell.
  6. D'Souza, R. M., Lysenko, M., and Rahmani, K. (2007). SugarScape on steroids: simulating over a million agents at interactive rates.
  7. Elliott, C. (2003). Functional images. In The Fun of Programming, “Cornerstones of Computing” series. Palgrave.
  8. Epstein, J., Black, A. P., and Peyton-Jones, S. (2011). Towards Haskell in the cloud. In ACM SIGPLAN Notices, volume 46, pages 118-129. ACM.
  9. Epstein, J. M. and Axtell, R. (1996). Growing Artificial Societies: Social Science from the Bottom Up. Brookings Institution Press.
  10. Grimm, V., Revilla, E., Berger, U., Jeltsch, F., Mooij, W. M., Railsback, S. F., Thulke, H.-H., Weiner, J., Wiegand, T., and DeAngelis, D. L. (2005). Patternoriented modeling of agent-based complex systems: Lessons from ecology. Science, 310(5750):987-991.
  11. Hybinette, M., Kraemer, E., Xiong, Y., Matthews, G., and Ahmed, J. (2006). SASSY: a design for a scalable agent-based simulation system using a distributed discrete event infrastructure. page 926933.
  12. Kiran, M., Richmond, P., Holcombe, M., Chin, L. S., Worth, D., and Greenough, C. (2010). FLAME: Simulating Large Populations of Agents on Parallel Hardware Architectures. AAMAS 7810, pages 1633- 1636, Richland, SC. International Foundation for Autonomous Agents and Multiagent Systems.
  13. Kiselyov, O., Lmmel, R., and Schupke, K. (2004). Strongly Typed Heterogeneous Collections. In Proceedings of the 2004 ACM SIGPLAN Workshop on Haskell, Haskell 7804, pages 96-107, New York, NY, USA. ACM.
  14. Knight, T. (1986). An architecture for mostly functional languages. LFP 7886, page 105112, New York, NY, USA. ACM.
  15. Koehler, M., Tivnan, B., and Upton, S. (2005). Clustered computing with netlogo and repast j: Beyond chewing gum and duct tape.
  16. Kupke, F. K. (2010). Robust Distributed Software Transactions for Haskell. PhD thesis, Christian-Albrechts Universitt Kiel.
  17. Logan, B. and Theodoropoulos, G. (2001). The distributed simulation of multiagent systems. 89(2):174185.
  18. Massaioli, F., Castiglione, F., and Bernaschi, M. (2005). OpenMP parallelization of agent-based models. 31(10):10661081.
  19. Milner, R. (1978). A theory of type polymorphism in programming. Journal of Computer and System Sciences, 17(3):348-375.
  20. North, M. J., Collier, N. T., Ozik, J., Tatara, E. R., Macal, C. M., Bragen, M., and Sydelko, P. (2013). Complex adaptive systems modeling with repast simphony. Complex adaptive systems modeling, 1(1):1-26.
  21. Perfumo, C., Snmez, N., Stipic, S., Unsal, O., Cristal, A., Harris, T., and Valero, M. (2008). The limits of software transactional memory (STM): dissecting haskell STM applications on a many-core environment. CF 7808, page 6778, New York, NY, USA. ACM.
  22. Peterson, J. and Hager, G. (1999). Monadic robotics. In Proceedings of the 2Nd Conference on Domainspecific Languages, DSL 7899, pages 95-108, New York, NY, USA. ACM.
  23. Peyton Jones, S. L. and Wadler, P. (1993). Imperative functional programming. In Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 7893, pages 71-84. ACM.
  24. Pogson, M., Smallwood, R., Qwarnstrom, E., and Holcombe, M. (2006). Formal agent-based modelling of intracellular chemical interactions. 85(1):3745.
  25. Railsback, S. F., Lytinen, S. L., and Jackson, S. K. (2006). Agent-based simulation platforms: review and development recommendations. Simulation, 82(9):609- 623.
  26. Riley, P. F. and Riley, G. F. (2003). Next generation modeling III - agents: Spades a distributed agent simulation environment with software-in-the-loop execution. WSC 7803, page 817825. Winter Simulation Conference.
  27. Sakellariou, I., Kefalas, P., and Stamatopoulou, I. (2008). Enhancing NetLogo to simulate BDI communicating agents. In Darzentas, J., Vouros, G. A., Vosinakis, S., and Arnellos, A., editors, Artificial Intelligence: Theories, Models and Applications, number 5138 in Lecture Notes in Computer Science, pages 263-275. Springer Berlin Heidelberg.
  28. Salamon, T. (2011). Design of agent-based models. Eva & Tomas Bruckner Publishing.
  29. Shavit, N. and Touitou, D. (1995). Software transactional memory. PODC 7895, page 204213, New York, NY, USA. ACM.
  30. Sheard, T. and Jones, S. P. (2002). Template meta-programming for haskell. SIGPLAN Notice, 37(12):60-75.
  31. Tobias, R. and Hofmann, C. (2004). Evaluation of free javalibraries for social-scientific agent based simulation.
  32. Vazou, N., Seidel, E. L., and Jhala, R. (2014). Liquidhaskell: Experience with refinement types in the real world. In Proceedings of the 2014 ACM SIGPLAN Symposium on Haskell, Haskell 7814, pages 39-51, New York, NY, USA. ACM.
  33. Wilensky, U. (1999). NetLogo.
  34. Wilensky, U. (2003). Statistical mechanics for secondary school: The GasLab multi-agent modeling toolkit. 8(1):141.
  35. Wilkerson-Jerde, M. and Wilensky, U. (2010). Restructuring change, interpreting changes: The deltatick modeling and analysis toolkit.

Paper Citation

in Harvard Style

Bezirgiannis N., Prasetya I. and Sakellariou I. (2016). HLogo: A Parallel Haskell Variant of NetLogo . In Proceedings of the 6th International Conference on Simulation and Modeling Methodologies, Technologies and Applications - Volume 1: SIMULTECH, ISBN 978-989-758-199-1, pages 119-128. DOI: 10.5220/0005983501190128

in Bibtex Style

author={Nikolaos Bezirgiannis and I. S. W. B. Prasetya and Ilias Sakellariou},
title={HLogo: A Parallel Haskell Variant of NetLogo},
booktitle={Proceedings of the 6th International Conference on Simulation and Modeling Methodologies, Technologies and Applications - Volume 1: SIMULTECH,},

in EndNote Style

JO - Proceedings of the 6th International Conference on Simulation and Modeling Methodologies, Technologies and Applications - Volume 1: SIMULTECH,
TI - HLogo: A Parallel Haskell Variant of NetLogo
SN - 978-989-758-199-1
AU - Bezirgiannis N.
AU - Prasetya I.
AU - Sakellariou I.
PY - 2016
SP - 119
EP - 128
DO - 10.5220/0005983501190128