我目前有一个非常大的目录,其中包含超过9000个文件夹,每个文件夹中保存有jpeg图像(平均每个文件夹40个)。图像处理程序在大图像集上的并行化
我计划拍摄图像的输入文件夹,并输出图像的特征向量该文件夹中的文本文件:
./process_image images/ output/
我也有一个脚本用法如下:
./script.sh dirlist.txt images/ output/ 1
第一个输入dirlist.txt包含输入目录内的文件夹名称 第二个和第三个输入是输入和输出的基本目录。 第四参数是哪个入口在dirlist我想访问
上面的例子会召唤指数,假设imageset1在dirlist.txt是在索引1:
./process_image images/imageset1/ output/imageset1/
如果我按顺序执行此操作,需要花几天时间处理所有9000个文件夹。这种情况下并行化的最佳方法是什么?我应该编写一个脚本,将9000个文件夹分成块并分别运行脚本,每个脚本运行一定范围的索引?另外,如何确定可以运行多少个程序,因为一个可执行文件的RAM范围可以从100 MB到1GB不等?我有32 GB的RAM。
什么是瓶颈? io或cpu或内存带宽? C++与这个问题有什么关系? – Yakk
我不知道如何解决这个问题,以及我的瓶颈是什么。该程序是用C++编写的。 – Olivier
我刚刚尝试同时处理10个文件夹,并且我的CPU使用率约为90%。可以说我的瓶颈是CPU吗?我正在运行i7-3770 – Olivier