You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Dymola的.mos脚本文件中开启多线程执行多模型仿真

Dymola .mos脚本多模型并行仿真实现方案

Dymola 2022及更高版本内置的simulateBatch函数可直接满足你的需求,该函数支持在.mos脚本中实现多任务并行仿真,不受参数扫描功能仅支持单模型遍历的限制。

具体使用说明

  • 调用前先确认Dymola并行仿真开关已开启:进入Tools > Options > Simulation界面,勾选Enable parallel simulation,并设置允许使用的最大CPU核心数,该配置对simulateBatch默认生效。
  • 你可以提前为每个待仿真的不同模型单独配置仿真参数(开始时间、停止时间、输出步长、工作路径等),组成配置数组后传入simulateBatch即可自动调度多线程执行。

代码示例

// 定义不同模型的仿真配置数组
simulationTasks = {
  simulateModel("YourModelPackage.ModelA", startTime=0, stopTime=10, outputInterval=0.1, resultFile="res_modelA"),
  simulateModel("YourModelPackage.ModelB", startTime=0, stopTime=30, outputInterval=0.5, resultFile="res_modelB"),
  simulateModel("YourModelPackage.ModelC", startTime=5, stopTime=25, outputInterval=0.2, resultFile="res_modelC")
};

// 执行并行仿真,第二个参数为并行度,填0则使用预先设置的最大核心数
simulateBatch(simulationTasks, 0);

低版本兼容方案

如果你使用的是Dymola 2022之前的版本,无内置simulateBatch函数,可通过调用系统命令启动多个独立的Dymola子进程分别执行对应单模型的仿真脚本来实现并行,注意为每个子进程指定独立的工作目录,避免结果文件读写冲突。

不要直接在for循环中调用simulateModel,该接口是同步阻塞的,默认只会占用单线程串行执行所有任务。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:09:00