Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading Dymola中的多线程使用会降低解决方案速度_Multithreading_Multicore_Modelica_Dymola - Fatal编程技术网

Multithreading Dymola中的多线程使用会降低解决方案速度

Multithreading Dymola中的多线程使用会降低解决方案速度,multithreading,multicore,modelica,dymola,Multithreading,Multicore,Modelica,Dymola,在Dymola2020x中使用多核功能是否总能加快解决方案的速度?我的观察结果是使用Advanced.ParallelizeCode=true,用于DOF~23k的模型;编译时间与单线程相当,但是使用默认解算器的解算时间较慢 任何意见都将不胜感激 单个模型的多核功能并不总是能够加快执行速度 有许多可能的解释: 依赖关系太多,根本不可能并行化。(查看翻译日志-这相当清楚) 只能并行化模型的一小部分。(查看翻译日志-这需要更多时间) 该模型使用许多外部功能(或FMU),默认情况下,Dymola将其

在Dymola2020x中使用多核功能是否总能加快解决方案的速度?我的观察结果是使用Advanced.ParallelizeCode=true,用于DOF~23k的模型;编译时间与单线程相当,但是使用默认解算器的解算时间较慢


任何意见都将不胜感激

单个模型的多核功能并不总是能够加快执行速度

有许多可能的解释:

  • 依赖关系太多,根本不可能并行化。(查看翻译日志-这相当清楚)
  • 只能并行化模型的一小部分。(查看翻译日志-这需要更多时间)
  • 该模型使用许多外部功能(或FMU),默认情况下,Dymola将其视为关键部分。(请参阅有关
    \uuuuudymola\u螺纹安全的发行说明和手册
    \uuuuudymola\u临界区域
  • 在Dymola 2020x之前的版本中,可能必须设置环境变量
    OMP\u WAIT\u POLICY=PASSIVE
    。(在您的版本中不需要。)
如中所述使用解耦可以帮助解决前两个问题


请注意,模型内并行化的替代方法是并行化参数扫描(如果这是您的场景)。对于扫描参数,这是自动完成的,没有任何这些缺点。

并行化只会在系统属性允许的情况下提高性能。这似乎是一个值得一读的总结: