matlab - 为什么 MCR 2016 MCR_CACHE_ROOT 不起作用
问题描述
我有一个 Matlab 例程,我已将其编译为独立的可执行文件,用于运行 PBSPro 的计算集群。一次可以运行数千个实例。在 2012a 版本中,我发现该设置MCR_CACHE_ROOT=${TMPDIR}
会将执行速度提高一个数量级。我们的集群正在删除对一些旧应用程序的支持,因此我将使用相同的代码迁移到 Matlab 2016a,所有改变的只是编译器版本。当我像以前一样编译代码并设置 MCR 缓存时,我收到一条错误消息
无法访问 MATLAB 运行时组件缓存
然后,2016 版本的代码将继续使用系统 RAM,直到节点内存不足并且作业因内存故障而终止。如果我没有指定MCR_CACHE_ROOT
作业运行良好,尽管速度很慢然后完成。
编译命令是mcc -v -o Program -m mFiles
,其中mFiles
是要编译的文件元胞数组。唯一的区别是编译器、MCR 和相应的 LD_LIBRARY_PATH。我使用完全相同的编译脚本和源文件。可执行文件是并排的,并且 TMPDIR 是完全可读写的。
是什么导致运行时组件缓存错误?
解决方案
推荐阅读
- hadoop - 实时数据集成 Kafka、Hadoop、Avro 和 HDFS 如何组合在一起以及数据集成有哪些架构
- c++ - 单一的退货声明更干净吗?
- android - 清单合并失败并出现多个错误,发生在将两个项目合并到单个项目期间
- ios - 安排任务在 iOS 应用程序处于后台状态时的特定时间运行
- image - VK_IMAGE_LAYOUT_UNDEFINED vs VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL 作为帧缓冲附件的初始布局
- c++ - 为什么在某些情况下,自由函数不能开始对 C 数组进行操作,而 std::begin 可以在 C++14 中操作?
- authentication - 如何在新的 .Net Core 项目中使用现有的 ASP.NET 成员数据?
- php - 如何将子项添加到下拉菜单并将它们链接到其父项
- javascript - 从对象数组中收集键并将其减少为单个数组并删除重复项
- asp.net-core - 什么可能导致 JwtSecurityTokenHandler.ValidateToken 抛出“IDX10503:签名验证失败”。密钥何时有效?