人在仿真软件金宝app

金宝app仿真软件和基于模型的设计

将工作从你的电脑上运行模拟远程集群

最近,我注意到,当我在当前文件夹右键单击一个MATLAB脚本的浏览器,有一个选项来运行脚本作为批处理作业。

作为批处理作业运行脚本

你可以猜,当在我脑海的第一件事是:我希望同样的模拟仿真软件模型!金宝app

让我们看看我了。

背景

对于那些不熟悉并行计算工具箱,你可能想知道:批处理作业是什么?

作为这里介绍的,批处理MATLAB命令可以启动一个新的会话在后台运行一个脚本或函数。你可以继续在你当前的MATLAB会话,而不需要等待脚本完成。

作为批处理作业运行脚本

除了并行计算工具箱,如果你也有访问MATLAB分布式计算服务器,可以在执行批处理作业一个远程集群,使您的计算机的计算能力来执行其他任务。

作为批处理作业运行脚本

我的解决方案

我不认为这是可能在浏览器当前文件夹的右键菜单添加条目,所以我决定使用一个sl_customization文件来添加一个新的模拟作为批处理作业进入模型的模拟菜单编辑器。金宝app

金宝app仿真软件作为批处理作业的菜单

我的菜单项下面的功能:

金宝app仿真软件作为批处理作业的代码

让我们看看为什么。

文件的依赖关系

您将注意到的第一件事如果你尝试模拟模型远程集群上,你的工作通常取决于许多文件。

如果你的远程集群访问本地文件系统一样MATLAB,我建议利用,它会让你的生活变得容易得多。只是相同的路径添加到批处理作业应有助于避免任何丢失的文件的依赖关系。

在我的例子中,我有一个Windows工作站上,集群操作系统Linux和他们不共享一个公共文件系统。这意味着我需要将文件附加到工作。的批处理命令有能力分析代码的依赖关系,并自动将文件附加到工作。不过这个功能与仿真软件模型不能很好地工作。金宝app

正因为如此,我做的第一件事是调用dependencies.fileDependencyAnalysis找到所有必要的文件来模拟我的模型。在我工作的例子中,它发现一个初始化脚本中使用的模型preLoadFcn回调,模型本身,一个参考模型。

文件的依赖关系

获得数据在正确的地方

像我解释之前的帖子,有时会很难得到模型的数据需要通过并行计算工具箱使用时。金宝app一件事帮助是强迫数据所需的模型在基本工作空间使用evalinassignin

模型来处理我的菜单项,模型需要创建所需的所有数据,并将其在基本工作空间。我建议这样做的方式是通过模型preLoadFcn回调

preLoadFcn

创建工作

我现在准备创建批处理作业。我通过批处理运行的集群,一个句柄sim卡命令,通知它sim卡将返回一个变量,并把模型名称作为输入。我告诉它不要试图分析文件并自动连接。相反,我通过上面提到的文件列表。最后,我告诉它不要尝试cd我的Windows工作站上的当前目录……因为它不存在在Linux集群。

创建批处理作业

最后,我在当地指定批处理作业对象基本工作空间。

批处理作业对象

一旦工作完成,使用fetchOutputs方法检索模拟输出

一些小技巧……

第一次你会尝试模拟模型,您将很有可能遇到各种问题。由于并行工作人员在后台运行,它有时感觉像被蒙上眼睛时调试。这是我喜欢用一些小技巧:

  • 了解错误的工人,尝试在工人命令提示符显示信息。你能想象它当工作完成时使用日记函数。之类的函数松材线虫病,dir通常是很好的起点。
  • 如果你的仿真软件金宝app模型错误,试试把sim卡命令在一个try - catch语句并返回错误作为仿真的输出日志。有时候,错误消息包含很多层面和获得完整的错误对象应该帮助。
  • 对工人交互式调试问题,尝试使用pctRunOnAll。类似于上面的日记技巧,尝试运行命令松材线虫病,,dir等工人来诊断可能出现的问题。

  • 现在轮到你了

    我们正在致力于特性来促进这对未来版本的工作流,但对于当前版本,我希望这篇文章能帮助你利用集群运行模拟。

    我不保证我sl_customization将适用于所有的模型,但是我相信它将与许多设置。如果没有,我希望这可以帮助你为起点来模拟模型在远程集群。

    试一试,让我们知道它离开这里的评论

|
  • 打印

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。