当前位置: X-MOL 学术Future Gener. Comput. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Easy and efficient agent-based simulations with the OpenABL language and compiler
Future Generation Computer Systems ( IF 7.5 ) Pub Date : 2020-10-27 , DOI: 10.1016/j.future.2020.10.014
Biagio Cosenza , Nikita Popov , Ben Juurlink , Paul Richmond , Mozhgan Kabiri Chimeh , Carmine Spagnuolo , Gennaro Cordasco , Vittorio Scarano

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 of OpenABL, 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. OpenABL is 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 evaluate OpenABL on 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 that OpenABL-generated codes are portable to different platforms, perform similarly to manual target-specific implementations, and require significantly fewer lines of codes.



中文翻译:

使用OpenABL语言和编译器轻松高效地进行基于代理的仿真

基于代理的模拟代表了一种有效的科学工具,其应用范围从社会科学到生物学,其目的都是通过一组由多个代理执行的简单规则来模拟或预测复杂现象。为了模拟具有复杂模型的大量代理,从业人员开发了高性能的并行实现,通常专用于特定的场景和目标硬件。但是,难以获得可实现高性能的便携式仿真,同时又易于在不同的硬件上编写和再现。本文给出了OpenABL的完整介绍,领域特定的语言和用于基于代理的仿真的编译器,使用户能够通过简单且可移植的编程环境实现高性能的并行和分布式代理仿真。OpenABL由(1)一种易于编程的语言组成,该语言依赖于域抽象并显式公开代理并行性,同步和局部性;(2)从源到源的编译器;以及(3)一组可插入的编译器后端,可为多核CPU,GPU和基于云的系统生成目标代码。我们评估OpenABL来自不同领域的模拟。特别是,我们的分析包括捕食者-猎物和角质形成细胞,具有多个步骤功能的两个复杂模拟,异质代理类型以及动态创建和删除代理。结果表明,OpenABL生成的代码可移植到不同的平台,与手动针对特定目标的实现方式相似,并且所需的代码行少得多。

更新日期:2020-11-02
down
wechat
bug