2

抱歉,如果这一切看起来都不太清楚,但我目前正在学习 Netlogo 来模拟基于代理的集体行为,并希望听到一些关于替代软件选择的建议。我的主要事情是我非常想利用 PyCuda,因为据我了解,它支持并行计算。但是,这是否意味着我仍然必须在其他环境中编写数字脚本并在另一个环境中实现视觉效果???

如果是这样,我的问题是:

  1. 我应该使用什么数字包?PyEvolve、DEAP 还是其他?PyEvolve 似乎不再被开发,而 DEAP 只是过时的(?)EAP 的包装。

  2. 图形方面,我发现 mayavi2 和 vtk 很有希望。问题是,没有一个数字包似乎很容易绑定到这些。除了将数值输出保存到数据文件并将它们输入到 mayavi2 之外,没有更好的选择吗?

  3. 另一种选择是通过 Netlogo 生成数据并将它们从 (2) 输入到图形包中。这样做有什么缺点吗?

非常感谢您阐明这种困惑。

4

2 回答 2

1

除非遇到严重的性能问题,否则您几乎肯定不想使用 CUDA。一般来说,CUDA 最适合用于解决浮点线性代数问题。如果您正在寻找一个围绕并行计算构建的框架,我会寻找可以在需要时利用 GPU 的 OpenCL。

在可视化方面,我强烈建议针对特定的数据交换格式,然后让其他程序为您进行渲染。我使用 VTK 之类的东西的唯一原因是,如果出于某种原因您需要对可视化过程进行更多控制,或者您正在寻找实时解决方案。

于 2012-06-25T23:23:03.843 回答
0

可视化的最佳选择可能是使用中间格式并在另一个程序中进行。但为了性能,我宁愿为集群配置一个 JVM 并在其上运行 NetLogo。我还没有尝试过,但我正在认真考虑在 Beowulf 风格的集群上尝试 NetLogo。

顺便说一句,如果您打算在 Python 中实现代码,那么有一个名为Repast的 ABM 平台据说具有 Python 接口。

于 2012-06-26T14:33:17.747 回答