Parallel processing hough变换MPI的并行编程
如何将该算法与mpi并行。我刚开始学习并行编程,我想尝试并行这个算法,但我不知道我应该在这个算法中用MPI并行什么Parallel processing hough变换MPI的并行编程,parallel-processing,mpi,hough-transform,Parallel Processing,Mpi,Hough Transform,如何将该算法与mpi并行。我刚开始学习并行编程,我想尝试并行这个算法,但我不知道我应该在这个算法中用MPI并行什么 for (size_t i = 0; i < lines.size(); i++) { float rho = lines[i][0], theta = lines[i][1]; double a = cos(theta), b = sin(theta); double x0 = a * rho, y0 = b * rho;
for (size_t i = 0; i < lines.size(); i++)
{
float rho = lines[i][0], theta = lines[i][1];
double a = cos(theta), b = sin(theta);
double x0 = a * rho, y0 = b * rho;
pt1.x = cvRound(x0 + 1000 * (-b));
pt1.y = cvRound(y0 + 1000 * (a));
pt2.x = cvRound(x0 - 1000 * (-b));
pt2.y = cvRound(y0 - 1000 * (a));
line(cdst, pt1, pt2, cv::Scalar(0, 0, 255), 3, 8);
}
for(size_t i=0;i
我就是这样尝试的
for (size_t i = 0; i < lines.size(); i++)
{
float rho = lines[i][0], theta = lines[i][1];
cv::Point pt1, pt2;
double a = cos(theta), b = sin(theta);
double x0 = a * rho, y0 = b * rho;
if (rank == 0) {
pt1.x = cvRound(x0 + 1000 * (-b));
pt1.y = cvRound(y0 + 1000 * (a));
}
if (rank == 1) {
pt2.x = cvRound(x0 - 1000 * (-b));
pt2.y = cvRound(y0 - 1000 * (a));
}
line(cdst, pt1, pt2, cv::Scalar(0, 0, 255), 3, 8);
MPI_Barrier(MPI_COMM_WORLD);
}
for(size_t i=0;i
我正常运行的速度约为2.5秒,我尝试使用mpi运行效果仍在2.5秒左右
错误
程序过早结束,可能已崩溃。退出代码-529697949
假设所有迭代都是独立的,并且所有列组上都有
行
,通常会在第一列组上计算第一个行.size()/2
行,在第二列组上计算其余的行。然后,您可能需要从所有级别收集结果。