Omnet ++:并行化单次运行模拟

时间:2015-10-28 18:46:52

标签: parallel-processing omnet++ inet

我试图并行化我的模型(我希望并行化单个配置运行,而不是并行运行多个配置)。 我使用的是Omnet ++ 4.2.2,但版本可能并不重要。

我已经阅读了Omnet ++手册的并行分布式仿真章节 原则似乎很简单: 只需将不同的模块/子模块分配给不同的分区。 按照提供的cqn示例

*.tandemQueue[0]**.partition-id = 0
*.tandemQueue[1]**.partition-id = 1
*.tandemQueue[2]**.partition-id = 2

如果我尝试模拟相对简单的模型,一切正常,我可以根据愿望对模型进行分区。 但是,当我开始运行使用Standardhost模块的模拟,或者使用以太网链接互连的模块时,这些模块不再起作用。

如果我以Inet提供的示例WiredNetWithDHCP(inet / examples / dhcp / eth)为例,假设我想在与交换机不同的分区中运行主机 因此,我将交换机分配给一个分区,将其他所有内容分配给另一个分区:

**.switch**.partition-id = 1
**.partition-id = 0

不同的分区由链接分隔,有延迟,因此应该可以这种方式进行分区。 当我运行模型时,使用图形界面,我可以看到模型被正确分区,但连接有点错误,我得到以下错误信息:

during network initialization: the input/output datarates differ

显然数据不同(并且运行模型顺序完美),通过检查错误消息,此异常也是由未连接的链接触发的。这确实发生了什么。似乎门没有正确连接。

显然我在Link连接机制中遗漏了一些东西,我应该在其他地方进行分区吗?

由于范式的简单,我觉得自己是个白痴,但我自己无法解决这个问题

1 个答案:

答案 0 :(得分:0)

只是提供反馈, 它似乎直接无法完成,而不是完整的INET,因为它可以简单地并行化,因为它在某些地方使用全局变量。 在这种特殊情况下,mac地址分配是问题之一(使用全局变量),因此eth接口不能并行化。

有关详细信息,请参阅本文解释为何无法做到这一点:

有关参考/可能的解决方案,请参阅亚琛大学的作者网页,您可以在该网页下载可并行化的omnet ++和INET的完整副本: