Computing Reviews

Data-parallel structural optimisation in agent-based models
Husselmann A. ACM SIGEVOlution7(2-3):33-36,2020.Type:Article
Date Reviewed: 04/16/21

Modeling is a tool for studying a natural phenomenon. The accuracy of such a model depends on how well the model mimics the behavior of the system under study.

The modeling of phenomena in ecology, microbiology, social science, and crime control, as well as where individual elements affect the whole system, can be carried out using agent-based modeling (ABM) through a bottom-up approach, where agents are autonomous individual entities. However, calibrating system parameters that represent natural phenomena is a time-consuming process--basically an optimization problem under genetic algorithms, an inherently slow process. Luckily, recent developments like the Compute Unified Device Architecture (CUDA), used for streamlining the use of NVIDIA graphics processing unit (GPUs) for parallel computing, can also run evolutionary algorithms efficiently.

So far, the solution through optimization was not very encouraging for large-sized systems using ABM, mainly due to its combinatorial nature. Similar is the case of structuring optimization in ABM. Presented here is a new domain-specific modeling language, MOL (created by the author), and its use has been demonstrated to streamline the structural (that is, behavioral) optimization in ABM. MOL is built on Terra--a low-level, compiled counterpart to the Lua scripting language, built on a Lua just-in-time compiler; it links arbitrary libraries at runtime and facilitates runtime-compiled code generation. MOL is simple, compact, and designed to develop the code at speed. It is helpful in searching for a method to expose and allow optimization, and provides a natural way for limiting the search space in identifying what part of the model is uncertain.

MOL can accept objective functions as macros written in Terra; can be used at runtime, including code written in Terra; and can be compiled without modification to CUDA, as well as to single threaded code. The language makes use of a simple evolutionary optimizer algorithm that freely translates between strings of k-expressions and trees for applying evolutionary algorithms.

Overall, this interesting and useful paper opens up a new horizon for experimental research in parallel processing using many existing tools that are freely available.

Reviewer:  K R Chowdhary Review #: CR147242 (2108-0219)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy