1

问题:

  • 计算机模拟如何,通常是资源密集型的?

例如,Simul8:离散事件模拟包 - 为什么计算密集,哪些因素(计算)对此有影响?

4

2 回答 2

7

离散事件模拟是一个非常广泛的术语;您可以模拟任何东西,从柠檬水摊到跨国企业的交易和物流,再到复杂的软件系统,再到尚不存在的新型计算机架构(并且比运行模拟的机器更复杂和先进)。

我将使用我的领域(计算机体系结构)中的一个示例,但是计算成本高昂的方式应该可以很好地概括。很多时候,您试图模拟一个分布式系统,其中有许多具有自己更简单控制逻辑的独立代理,它们共同实现了一个非常复杂的动态。在计算系统的情况下,模拟器的组合工作集至少与所有组成组件的架构、微架构和内存状态组合一样大。如果每个组件都非常复杂,这意味着您在完成模拟的每个时间步长时的时间和空间局部性会大大降低。每个时间步都需要遍历整个工作集所暗示的低缓存利用率可能会影响性能一到两个数量级。这种模式是不可避免的,因为在多个时间步长上独立运行每个组件并且只定期合并结果是有问题的,而且您的系统越复杂和耦合越多。

此外,您通常希望保留各种统计信息,这些统计信息会在组件模拟之上引入大量额外的空间和时间开销。

简而言之,您的下限是模拟所有组件的复杂性之和。在实践中,如果您有许多组件,如果您的组件比运行模拟的主机更复杂甚至根本不同,并且如果您有大量的仪器,则会引入很多低效率。

最后一件事:离散事件模拟通常涉及将项目放入队列中,并根据追逐一堆指针来查找在哪个队列中放置请求。这些操作难以并行化,使事情进一步复杂化。然而,正如我之前提到的,“离散事件模拟”一词可以涵盖从琐碎到不可能的任何事情,因此很难提取一般模式。

于 2009-03-17T02:59:32.987 回答
1

计算机模拟通常会快速运行多个场景并进行比较。

例如,财务模拟通常与具有数千次运行的蒙特卡罗模拟一起运行。

一次模拟通常会涉及超过 10,000 次模型评估,在过去,这项任务仅在使用超级计算机时才可行。- http://www.vertex42.com/ExcelArticles/mc/MonteCarloSimulation.html

于 2009-03-17T02:55:41.640 回答