首页 文章

Simulink并行运行块?

提问于
浏览
1

假设我在Simulink中有一个大型模型,我们称之为模型A.现在考虑模型A的一个非常小的子集,称之为模型B.当模型B计算某些东西时,这些结果被发送到模型A的其他部分,它们会某些事情是这一点的功能 . 然而,模型B可能需要很长时间来计算 - 然而,这对于模型A的这些其他模块来说不是问题,他们很乐意在模型B完成计算时从模型B接收数据 . 本质上,我希望模型B对模型A运行 in parallel ,这样在等待模型B完成其工作时不会停止整个模拟/过程 . 这可以在Simulink中做到吗?

1 回答

  • 1

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

    它会自动对Simulink模型进行分区,并使用多个线程模拟子系统 .

    在具有数据流域的模型的模拟和代码生成中,软件识别系统中可能的并发,并使用两种类型的并行性对数据流域进行分区 .

    • 任务并行

    • 模型管道执行(流水线) .

    Task Parallelism

    任务并行性通过将应用程序拆分为多个任务来实现并行性 . 任务并行性涉及跨多个处理节点在应用程序内分发任务 . 某些任务可能会依赖于其他任务,因此所有任务都不会在完全相同的时间运行 .

    Model Pipeline Execution:

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

    请看下面的链接

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

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

相关问题