Dymola 中的并行仿真设置

Parallel simulation setting in Dymola

我正在用 Dymola 构建一个大型系统,我打算利用 Dymola 中的并行仿真潜力,但我只是在帮助文档中找到两个通用设置。

我的问题是:

  1. 我可以在 Dymola 中使用任何其他设置以使代码 运行 更快吗?
  2. 在我的模型代码中,是否有任何方法可以让模型在并行模式下运行?例如,我知道 MATLAB 代码风格正在使用向量,那么这是否意味着在 Modelica 中我也应该使用向量?

Advanced.ParallelizeCode-flag 确实生成了 运行s 并行的代码(希望如此,检查日志),而 Matlab 中的矢量化在这里无济于事(它甚至可能导致问题)。

你可以做的是:

  • 如用户手册 1B 节中描述的在并行代码中处理外部函数,在检查它们是线程安全的之后,将 annotation(__Dymola_ThreadSafe=true); 添加到被调用的函数。
  • 尽量确保存在某种形式的动态分离模型的不同部分。
  • 如果不可能自然地并行处理不同的部分,您可以使用解耦运算符(查看 dymola\Modelica\Libraries\DecoupleBlocks.mo );但要注意先验证结果。

标志 Advaned.ParallelSimulations 似乎与 这种情况 无关,因为它 运行 具有不同参数值的整个模拟并行(更粗糙-颗粒状)。如果您一次只 运行 一个模拟,那将没有任何好处。

但是,如果您可以改为使用它,这通常是一个更好的主意 - 然后您应该(通常)不启用其他并行化变体。