矩阵乘法MPI未编译

时间:2015-04-22 14:19:06

标签: java matrix mpi mpj-express

我试图在JDK中编译下面的代码,但它似乎没有编译,我收到的错误不是第41行的声明,即使它是。

引起错误的行是:

long endTime = System.currentTimeMillis();

以下是代码:

import mpi.*;

public class MultidimMatrix {

public static final int N = 10;

public static void main (String args[]){

MPI.Init(args);

long startTime = System.currentTimeMillis();

int rank = MPI.COMM_WORLD.Rank();
int size = MPI.COMM_WORLD.Size();
int tag = 10, peer = (rank==0) ? 1:0;

if(rank == 0) {
double [][] a = new double [N][N];

for(int i = 0; i < N; i++)
    for(int j = 0; j < N; j++)
     a[i][j] = 10.0;

Object[] sendObjectArray = new Object[1];
sendObjectArray[0] = (Object) a;
MPI.COMM_WORLD.Send(sendObjectArray, 0, 1, MPI.OBJECT, peer, tag);
} else if(rank == 1){
double [][] b = new double [N][N];

for(int i = 0; i < N; i++)
for(int j = 0; j < N; i++)
b[i][j] = 0;

Object[] recvObjectArray = new Object[1];
MPI.COMM_WORLD.Recv(recvObjectArray, 0, 1, MPI.OBJECT, peer, tag);
b = (double[][]) recvObjectArray[0];

for(int i = 0; i < 4; i++){
for(int j = 0; j < N; i++)

long endTime = System.currentTimeMillis();
System.out.print(b[i][j]+"\t");
System.out.println("\n");
System.out.println("Calculated in " +
                           (endTime - startTime) + " milliseconds");
    }
    }
          MPI.Finalize() ;
        }
      }

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

你有

for(int j = 0; j < N; i++)

应该是

for(int j = 0; j < N; i++) {

你应该保持你的源格式正确 - 大多数IDE可以自动执行此操作(保存或从键盘命令)。格式化后这个问题很明显。