使用openMP或pThread进行FMU协同仿真

时间:2015-01-13 13:58:59

标签: multithreading openmp modelica dymola fmi

假设我有车型,底盘将用作主FMU,其发动机,变速器,轮胎等来自第三方,我想将它们用作从动FMU。我希望以这种方式并行化模型,将主FMU放在主线程上,并在其他线程上分叉其他所有内容。

  1. 我想知道这个简单的想法是否可以通过使用从Dymola出口的FMU来实现......
  2. 如果可能,是否值得这样做?如果并行模型在物理层面上与序列模型一样有效,我就会徘徊。 (我知道一个非常并行的程序比顺序程序慢,但我只需要知道它是否物理上更慢或更快)。
  3. 最新的Dymola内置了openMP功能,有没有人用它?它看起来像什么?
  4. 我发现了一篇关于此问题的论文:使用FMI进行协同仿真的硕士http://www.ep.liu.se/ecp/063/014/ecp11063014.pdf

1 个答案:

答案 0 :(得分:2)

我认为如果他们可以单独完成他们的工作,并行启动几个FMU是完全合理的。协同仿真的难点在于了解何时必须同步模拟器(例如交换信息)。这些同步应该是最小的,以提高效率,但足以避免追溯模拟器状态(如果可能)。此外,当您的FMU之间存在因果关系时,它有机会工作。如果你有非因果关系,这是一个不同的故事......

从技术上讲,我会说:

  • for 1),如果你愿意,你可以随时在一个线程中启动一个FMU,没问题
  • for 2),它主要取决于不同FMU之间所需同步的数量和频率
  • for 3)我不知道,但我认为你应该区分并行发射不同的FMU并使一个FMU并行......
我的两分钱