Matlab并行计算实践

Matlab并行计算实践

需要对上万张图像进行OCR识别。OCR算法原型用Matlab脚本实现,对每张图逐行逐字符识别,整体计算时间很长。找多核多CPU并行执行的方案

Matlab有并行工具箱。可以使用parfor对循环进行并行处理,parfor要求循环之间的运算独立不相关;另一种方式用SPMD模式,类似多线程/多进程方式,每个后台计算单位(worker)都有唯一标识(labindex),类似openmp里的线程id或是mpi里的rank, 同时可以获取worker数量(numlabs), 对多数应用,通过{labindex,numlabs}信息即可对整体计算进行任务划分,每个worker对应一个任务,所有任务完成后,可将计算结果进行合并,最终获取最后结果。SPMD模式还可以支持worker之间的信息交换,暂时没有用到

Matlab中用parpool命令启动worker池环境! 命令细节查看parpool文档


逻辑示意

有nPNG张图片,放在工作目录下,需要对每张图片进行单独OCR识别,结果写到文本文件内,图片识别顺序不重要。

%.... 初始化...

%获取所有png图片列表
pngs =dir(strcat(imgDir,'\*.png');
nPng=length(pngs);

spmd
	%worker的rank
	labindex 
	
	%outfile,fp都是worker私有的
	outfile=['spmd.dir/outfile.txt' num2str(labindex,'%02d')];
	fp=fopen(outfile,'wt+');
	
	%依据labindex,numlabs对数据集进行worker之间任务划分
	for i=labindex:numlabs:nPng
		png=strcat(pngs(i).folder, '\', pngs(i).name);
		%...图像前处理...
		ocr(png,fp,...);
	end 
	
	fclose(fp);
end 

%.....收尾汇总....

相关推荐

  1. Matlab并行计算实践

    2024-01-13 15:24:05       57 阅读
  2. MATLAB中进行并行计算和GPU加速?

    2024-01-13 15:24:05       46 阅读
  3. C#多线程并行计算实例

    2024-01-13 15:24:05       23 阅读
  4. 并行计算+Linux process

    2024-01-13 15:24:05       34 阅读
  5. 使用CompletableFuture实现并发计算-结合实例

    2024-01-13 15:24:05       61 阅读
  6. rust并行计算库Rayon

    2024-01-13 15:24:05       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-13 15:24:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-13 15:24:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-13 15:24:05       82 阅读
  4. Python语言-面向对象

    2024-01-13 15:24:05       91 阅读

热门阅读

  1. 自定义负载均衡(Ribbon)

    2024-01-13 15:24:05       56 阅读
  2. js如何实现滚动到底部一键回到顶部。

    2024-01-13 15:24:05       52 阅读
  3. 在ubuntu上的18个非常实用的命令行工具软件

    2024-01-13 15:24:05       64 阅读
  4. Spring Cloud项目如何防止重复提交(自定义注解)

    2024-01-13 15:24:05       64 阅读
  5. AI音乐探索

    2024-01-13 15:24:05       62 阅读
  6. 考研经验总结——数学篇

    2024-01-13 15:24:05       53 阅读
  7. Wargames与bash知识15

    2024-01-13 15:24:05       52 阅读
  8. itextpdf 之 html 转 pdf 问题处理

    2024-01-13 15:24:05       55 阅读
  9. Git使用统一规范

    2024-01-13 15:24:05       62 阅读
  10. 无人驾驶技术在交通领域逐渐成熟

    2024-01-13 15:24:05       56 阅读
  11. UniApp 面试题

    2024-01-13 15:24:05       51 阅读