An Analysis of Three C/C++ Cluster-Computing Libraries for Agent-Based Models
比较了FLAME、Repast HPC和MASS C++三种并行ABM库,通过七个基准程序分析其可编程性和并行性能,发现MASS C++在速度和扩展性上占优。
Agent-based modeling (ABM) is increasing its popularity and is applied to practical simulation where millions of agents need to interact with each other over a large-scale logical space. Cluster computing is an approach to accommodating ABM’s needs of both CPU and spatial scalability. This research compares three parallel ABM libraries such as FLAME, Repast HPC, and our MASS C++ libraries, all modeling simulation programs in C/C++ and running them in parallel over a cluster system. Our comparative work selects seven benchmark programs from social, behavioral, and economic sciences, biology, and urban planning; parallelizes them with each of these three libraries; analyzes their programmability through the parallelization; and measures their parallel performance. Our results reach two findings. The programmability of each ABM library has different pros and cons in metrics such as total lines of code (LoC), boilerplate percentages, agent/space modeling and management LoC, lack of cohesion of methods (LCOM), ease of agent synchronizations, and semantically smooth coding. Therefore, there is no all-in-one ABM library for best programming any application domains. However, ABM parallel executions are heavily affected by each library’s design principles. In particular, FLAME’s frequent file accesses and message broadcasts as well as Repast HPC’s central agent managements incur system overheads or bottlenecks. These performance drawbacks give MASS C++ an advantage in performing fastest and scaling up simulation most successfully.