假设我在Simulink中有一个大型模型,让它称之为模型A.现在考虑模型A的一个非常小的子集,称之为模型B.当模型B计算某些东西时,这些结果会被发送给其他模型A的一部分,他们做某些事情作为其功能。然而,模型B可能需要很长时间来计算 - 然而,这对于模型A的这些其他模块来说不是问题,他们很乐意在模型B完成计算时从模型B接收数据。本质上,我希望模型B将并行运行到模型A,这样在等待模型B完成其工作时不会停止整个模拟/过程。这可以在Simulink中做到吗?
答案 0 :(得分:1)
我认为数据流域旨在解决您所描述的问题。
它会自动划分您的Simulink模型并使用多个线程来模拟子系统。
在具有数据流域的模型的仿真和代码生成中,该软件都会识别系统中可能存在的并发性,并使用两种并行性对数据流域进行分区。
任务并行性:
任务并行性通过将应用程序拆分为多个任务来实现并行性。任务并行性涉及跨多个处理节点在应用程序内分布任务。有些任务可能与其他任务有数据依赖性,因此所有任务不会完全同时运行。
模型管道执行:
该软件使用模型流水线执行或流水线来解决任务并行性问题,即线程不能完全并行运行。这种方法涉及修改系统,以在存在数据依赖性的任务之间引入延迟。
请查看下面的链接