2016-06-29 37 views
0

我必须运行一系列模拟并保存结果。由于默认情况下Matlab只使用一个内核,我不知道是否可以打开多个工作任务并为其分配不同的模拟运行?Matlab/Simulink:并行运行一批模拟?

+1

您可以使用parfor来运行并行仿真。请参阅http://www.mathworks.com/help/simulink/ug/running-parallel-simulations.html – Navan

+0

请提供您的代码的典型示例,无论它是否有循环,或者您是否使用和优化算法等。 , 请记住,从串行运行代码切换到并行代码并不那么简单,大多数情况下,您需要修改和修改代码以便能够并行运行。 – Soyol

回答

0

您可以在单独的MATLAB实例中运行每个仿真,并让操作系统将该过程处理为核心分配。

一个主控MATLAB可以同步每个子实例,例如是否存在仿真结果文件。

0

我aso有同样的问题,但我没有设法真正理解如何使它在MatLab。 matlab中的文档过于先进,无法知道如何制作它。

因为我与Ubuntu的工作我找到一种方法,做的工作调用从MATLAB UNIX命令,并使用并行GNU命令

所以我奶源与4个核上运行我的并行仿真。

unix('parallel --progress -j4 flow > /dev/null :::: Pool.txt','-echo') 

你可以找到链接构造结 Shell, run four processes parallel

详情可https://www.gnu.org/software/parallel/ 找到更多的信息,但breifly我可以告诉你

--progress显示进度的状态

-j4告诉你想要并行的数量或工作

流是我的模拟器的名称

的/ dev/null的只是避免了模拟器的屏幕运行输出显示

Pool.txt是我所需要的模拟输入信号是由一个文件基本上是路径和主模拟器文件。

echo我现在不记得它是什么了:D