我有一个巨大的simulink模型需要大约1个小时才能执行。在我的计算机(HP Z210)中,执行使计算机以100%的速度使用所有cpu核心。令我感到有趣的是,在我的同事计算机上运行的同一型号(戴尔精密T3600)使用了大约50%的CPU“功率”(一些核心为100%,一些核心保持空闲)。
我的问题是:
答案 0 :(得分:3)
虽然simulink本身在执行单个模型时是单线程的,但块本身可能是多线程的。例如,执行矩阵乘法的simulink块将使用matlab也使用的多线程实现。
答案 1 :(得分:2)
Simnulink绝对是一个单线程应用程序。例外情况是,如果您使用的是Rapid Accelerator模式并且有多个可用核心,则独立可执行文件将在单独的核心上运行。有关详细信息,请参阅How Acceleration Modes Work。
如果您正在运行多个模拟,那么您可以使用Parallel Computing Toolbox,甚至多个工作人员(机器)与MATLAB Distributed Computing Server一起在多个核心上分发这些模拟。然而,这是用于模型的多次模拟(例如蒙特卡罗模拟),而不是用于破坏几个块中的大型模型(据我所知目前不可能)。有关详细信息,请参阅Run Parallel Simulations。
不确定为什么从一台机器到另一台机器的执行会有所不同。你们都使用相同版本的MATLAB吗?相同的O / S?有很多东西可能会有所不同。关于加速模型的执行,您可以尝试在加速模式下运行模型,使用Simulink剖析器查看瓶颈的位置,更改一些求解器设置(例如,变步长与固定步长)等。 ..