上G图片的多核处理问题
在公司开发遥感图片处理的软件,图像大小每幅几百M到几十G,格式为TIFF,把每幅图片分割成很多块,每次读进一块进行处理。假设在一个4核的机器上,每块大小10M。
请问我是每次切40M的图片一次读进去,40M的内存是连续的,然后用#Parama omp parallel for(for并行运算) 让第一个for处理0-10M,第2个处理10-20,依此类推。还是一次分别读四个块进去,四个块的内存一般不连续,然后每个核处理一个块。
请问这两种方法是不是都可行?对于第二种方法,我参看周伟明的多核计算与程序设计(微软OPENMP)用sections开辟并行区
然后用section将区块分成几个不同的段,每段并行运行。但是我想这不能写成动态的,只能在固定的核数上进行。但是for循环可以,可以根据内核数量动态的分配每个核处理的数据大小。
请问对于第二种分配方法,即分4个10M的数据进去,有没有什么好的解决方法?还有谁用LIBTIFF做过大型tiff图片处理的项目的,给点意见。我刚毕业,不太懂