表达式必须具有指向MPI发送中的对象类型错误的指针

时间:2018-03-14 14:38:41

标签: c++ parallel-processing mpi

我在MPI send命令中遇到语法错误。我想用它发送一些行和各自的列。我MPI_Send(&(array[ch_row][ch_col]), ch_size*col, MPI_INT, p, 1, MPI_COMM_WORLD)处的这一行ch_col出错了。我无法理解为什么会出现这个错误。

 int tot_processes;
        int process_id;
        MPI_Comm_size(MPI_COMM_WORLD, &tot_processes);
        MPI_Comm_rank(MPI_COMM_WORLD, &process_id);
        if (process_id == 0) {
            int row, col;
            cout << "Enter rows and columns: ";
            cin >> row >> col;
            int *array = new int[row*col];
            for (int i = 0; i < row; i++) {
                for (int j = 0; j < col; j++) {
                    array[i][j] = 1;
                }
            }
            int ch_size = row / tot_processes;
            for (int p = 1; p < tot_processes; p++) {
                int ch_row = ch_size * (p - 1);
                int ch_col = ch_size * col;
                MPI_Send(&ch_size, 1, MPI_INT, p, 0, MPI_COMM_WORLD);
                MPI_Send(&(array[ch_row][ch_col]), ch_size*col, MPI_INT, p, 1, MPI_COMM_WORLD);
            }
        }

0 个答案:

没有答案