并行模拟运行块



假设我在simulink中有一个大型模型,我们称其为模型A。现在考虑一个非常小的模型A子集,称其为模型B。被发送到A模型A的其他部分,并将其做某些事情作为此功能。但是,模型B可能需要很长时间来计算 - 但是,对于这些模型A的其他块而言,这不是问题,每当Model B完成计算时,他们很乐意从模型B接收数据。从本质上讲,我希望B模型在并行中运行来模型A,以便在等待B型B完成其物品时,整个仿真/过程都不会停止。这可以在Simulink中做吗?

我认为数据流域旨在解决您描述的问题。

它会自动对您的simulink模型进行分区,并使用多个线程模拟子系统。

在具有数据流域的模型和代码生成中,该软件可以确定系统中可能的并发率,并使用两种类型的并行性对数据流域进行了分区。

  1. 任务并行
  2. 模型管道执行(管道)。

任务并行

任务并行性通过将应用程序分为多个任务来实现并行性。任务并行性涉及在应用程序中分配任务在多个处理节点中。某些任务可以对其他任务具有数据依赖性,因此所有任务均不完全同时运行。

模型管道执行:

该软件使用模型管道执行或管道来解决任务并行的问题,在该问题中,线程不会完全并行运行。这种方法涉及修改系统以在具有数据依赖性的任务之间引入延迟。

请查看下面的链接

https://www.mathworks.com/help/help/dataflow-domains.html

https://www.mathworks.com/help/help/sp/ug/multicore-simulation-and-code-generation-of-dataflow-systems.html

最新更新