使用MPI的矩阵向量乘法

问题描述

我现在没有计算机可以对此进行测试,但是如果我想将矩阵[20000x1000]与具有1000个数据的向量相乘,我可以确认这很好。

void Mat_vect_mult(
    double local_A[]    /*input*/
    double local_x[]    /*input*/
    double local_y[]    /*input*/
    int local_m=20000       /*input*/
    int n=1000      /*input*/
    int local_n=1000        /*input*/
    MPI_Comm comm       /*input*/   ){
double* x;
int local_i,j;
int local_ok = 1;

x = malloc(n*sizeof(double));
MPI_Allgather(local_x,local_n,MPI_DOUBLE,x,comm);
for (local_i = 0; local_i < local_m; local_i++) {
    local_y[local_i] = 0.0;
    for (j = 0; j < n; j++) 
        local_y[local_i] += local_A[local_i*n+j]*x[j];
}
free(x);

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)