Easy and efficient agent-based simulations with the OpenABL language and compiler

Easy and efficient agent-based simulations with the OpenABL language and compiler
复制标题

DOI:
10.1016/j.future.2020.10.014
复制
发表时间:
2021-03
期刊:
Future Gener. Comput. Syst.
影响因子:
--
通讯作者:
Biagio Cosenza;N. Popov;B. Juurlink;P. Richmond;M. Chimeh;Carmine Spagnuolo;G. Cordasco;V. Scarano-V.-Scara
Biagio Cosenza;N. Popov;B. Juurlink;P. Richmond;M. Chimeh;Carmine Spagnuolo;G. Cordasco;V. Scarano-V.-Scara
中科院分区:
其他
文献类型:
--
作者:
Biagio Cosenza;N. Popov;B. Juurlink;P. Richmond;M. Chimeh;Carmine Spagnuolo;G. Cordasco;V. Scarano-V.-Scara

文献摘要

被引文献

相似文献

基于Agent的模拟是一种有效的科学工具,从社会科学到生物学都有许多应用,其目的是通过多个Agent执行的一组简单规则来模拟或预测复杂的现象。为了用复杂的模型模拟大量的代理,从业者开发了高性能的并行实现,通常专门用于特定的场景和目标硬件。然而,很难获得便携式模拟,实现高性能,同时很容易编写和复制不同的硬件。OpenABL是一种面向Agent的仿真语言和编译器,它能使用户在一个简单、可移植的编程环境中实现高性能的并行和分布式Agent仿真,OpenABL包括:(1)一种易于编程的语言,它依赖于领域抽象,并显式地暴露Agent的并行性、同步性和局部性;(2)源到源编译器,以及(3)一组可插入的编译器后端,其生成用于多核CPU、GPU和基于云的系统的目标代码。我们从不同的领域评估OpenABLon模拟。特别是,我们的分析包括捕食者-猎物和角质形成细胞,两个复杂的模拟与多步功能,异构代理类型,以及动态创建和删除代理。结果表明,OpenABL生成的代码可移植到不同的平台,执行类似的手动特定于目标的实现,并需要显着更少的代码行。
Agent-based simulations represent an effective scientific tool, with numerous applications from social sciences to biology, which aims to emulate or predict complex phenomena through a set of simple rules performed by multiple agents. To simulate a large number of agents with complex models, practitioners have developed high-performance parallel implementations, often specialized for particular scenarios and target hardware. It is, however, difficult to obtain portable simulations, which achieve high performance and at the same time are easy to write and to reproduce on different hardware. This article gives a complete presentation ofOpenABL, a domain-specific language and a compiler for agent-based simulations that enable users to achieve high-performance parallel and distributed agent simulations with a simple and portable programming environment.OpenABLis comprised of (1) an easy-to-program language, which relies on domain abstractions and explicitly exposes agent parallelism, synchronization and locality, (2) a source-to-source compiler, and (3) a set of pluggable compiler backends, which generate target code for multi-core CPUs, GPUs, and cloud-based systems. We evaluateOpenABLon simulations from different fields. In particular, our analysis includes predator–prey and keratinocyte, two complex simulations with multiple step functions, heterogeneous agent types, and dynamic creation and removal of agents. The results show thatOpenABL-generated codes are portable to different platforms, perform similarly to manual target-specific implementations, and require significantly fewer lines of codes.