2

每个人都说 Jave 是一种用于大型系统和工程项目的语言,它的运行速度比大多数其他语言快得多。我只是将它与另一种基于代理的建模语言 Netlogo 进行了比较,我发现 Netlog 在经典的狼-羊模拟模型中运行速度比基于 Jave 的 Repast 快四倍。两个模型都使用相同的参数进行仿真,并实时运行 5 秒。Netlogo 可以模拟超过 8000 个时间步,而 Jave Repast 只能执行大约 2600 个时间步。为什么?

在此处输入图像描述

4

1 回答 1

6

如果您将 Netlogo 与 Repast Simphony 狼-羊捕食演示与默认设置进行比较,这不是一个公平的比较,因为 Repast 模型做得更多。Repast 模型执行基于文件的数据记录、图表渲染、2D 显示渲染和 3D 显示渲染。Repast 和 Netlogo 显示器都有更新设置,这些设置决定了它们相对于滴答计数的渲染速度,并且显示渲染速度高度依赖于 GPU。

为了更好地比较性能,我们需要创建一个更准确的测试环境。我使用默认参数运行 Netlogo 演示,未选中“查看更新”,因此显示不会更新,但图表仍会更新。运行该模型 20,000 个滴答声大约需要 14 秒。我修改了 Repast 演示,删除了文件记录并关闭 2D 和 3D 显示,只留下图表显示,并运行模型 20,000 个滴答声,这也需要大约 14 秒。所以这个演示的 Repast 和 Netlogo 的性能是完全一样的。

我们还应该考虑到 Repast 和 Netlogo 中使用默认参数的演示模型是复杂度有限的 TOY 模型。通常在科学研究中使用的更复杂的模型中,代理行为非常复杂,以至于个体行为计算时间比工具包框架代码时间大一个数量级,这使得这些类型的比较对工具包能力的信息较少.

于 2019-07-13T17:05:50.127 回答