您如何分析/优化仿真工具?

时间:2008-11-28 10:31:13

标签: optimization profiling modeling simulation

在过去和现在间歇性地,我使用了Easy Java SimulationsNetLogo等模拟工具。

它们是可视化建模各种数学/组合概念的绝佳工具,因为“你所要做的就是”编写模拟循环 - 为你处理图形等。

然而,我注意到的一件事是使用这些工具改善执行时间/建模速度非常困难,因为实现的内容隐藏在表面之下。

一般来说,有关如何使用模拟器工具的精彩文档,但我没有找到任何改进执行时间的方法。

例如,假设您正在实施牛顿的根查找方法。这是一个直接的算法,但取决于

  • 您使用的图形附件类型,或
  • 选择了各种其他杂项

模拟将以不同的速度运行。

有没有办法确定模拟数据的“最佳”显示?

在使用这样的工具来教授有关建模/科学编程的课程时,我正在考虑这个问题。

3 个答案:

答案 0 :(得分:3)

您可以尝试使用Repast Symphony代理模拟工具包。 它是一个成熟,免费,开源的编程环境,具有许多有用的功能。 您可以将Repast与Eclipse集成为profiler plugin

答案 1 :(得分:2)

使用Netlogo,您可以使用Profiler扩展程序


    extensions [profiler]

请参阅profiler documentation on the netlogo home page

答案 2 :(得分:1)

如果所有其他方法都失败了,您可以结合使用以下两种方法:

  • 第二次猜测环境:问问自己如何实现其功能,然后推断出哪些功能可能需要最少的计算工作。
  • 试错:只需通过测试来比较不同的方法。如果环境具有一些用于对代码进行计时的工具,例如(准确地)告诉您现在时间的功能,这将是一个很大的帮助。

不要忘记内存缓存和优化等效果。如果您尝试在特定上下文中使用特定功能,则可能与您之前的体验不同。