并行MATLAB中Java函数的非线性性能

问题描述

| 最近,我在MATLAB程序中实现了并行化,这与MATLAB的Slow xlsread中提供的建议非常相似。但是,实现并行性又产生了另一个问题-随着规模的增加,非线性地增加处理时间。 从所附的探查器图像和相应的压缩图可以看出,罪魁祸首似乎是“ 0”法。 问题:由于我的工作涉及单次处理超过1000张纸,这将花费很长的时间,因此如何消除这种非线性? 注意:该程序的并行化部分仅涉及读取所有
.xls
文件并将它们存储在矩阵中,然后启动程序的其余部分。
dlmwrite
用于程序的末尾,虽然可以建议,但实际上并不需要对其时间进行优化。 罪魁祸首: 代码被并行化:
parfor i = 1:runs
    sin = \'Sheet\';
    sno = num2str(i);
    sna = strcat(sin,sno);

    data(i,:,:) = xlsread(\'Processes.xls\',sna,\'\',\'basic\');
end
    

解决方法

        除非您将所有内容都保留在SSD上,否则执行并行IO操作可能会成为一个问题(实际上可能会更慢)。如果您始终在读取相同的文件,并且它不是很大,则可能需要在循环之前尝试读取它,而只是并行进行数据处理。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...