Ruh*_*boy 2 parallel-processing image-processing mpi
如何使用并行计算计算图像的直方图?串行图像的直方图很容易,但我不知道在并行计算它.
任何想法,算法,源代码或有用的链接将不胜感激.
我正在使用MPI.
这是一个想法:
首先,您使用MPI_Scatter()或按行(如果使用C编程)或按列(如果使用Fortran编程)MPI_Scatterv()分散图像(使用scatterv,您可以将图像分发到多个进程,这些进程不是行数/列数的整数除数).
然后每个过程计算其图像部分的直方图.让直方图存储在local_histogram256个元素的整数数组中(我假设图像是灰度).
在最后一步,使用求和进行全局缩减MPI_Reduce():
MPI_Reduce(local_histogram, histogram, 256, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
Run Code Online (Sandbox Code Playgroud)
之后,完整的全局直方图将处于histogram排名为0的进程中的数组中.