MPI Java矩阵乘法错误
Posted
技术标签:
【中文标题】MPI Java矩阵乘法错误【英文标题】:MPI Java Matrix multiplication error 【发布时间】:2017-07-18 10:00:42 【问题描述】: package msj;
import mpi.*;
public class HelloWorld2
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();
//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() ;
我无法运行此程序。
当我没有在 for 循环中的变量之前写入 int 时出现错误:for( int i = 0; i < N; i++)
。
问题与此有关吗? 你有什么想法吗,代码没有问题
【问题讨论】:
你得到什么错误? java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source ) at java.lang.reflect.Method.invoke(Unknown Source) at runtime.starter.MulticoreStarter$1.run(MulticoreStarter.java:281) at java.lang.Thread.run(Unknown Source) 原因:java.lang。 NullPointerException at msj.HelloWorld2.fillToken(HelloWorld2.java:272) at msj.HelloWorld2.main(HelloWorld2.java:40) ... 6 更多 【参考方案1】:如果“rank ==1”为真,您会得到“java.lang.ArrayIndexOutOfBoundsException: 10”。这是因为您在嵌套的 for 循环中编写了
"for(int j = 0; j
你增加 i 两次。此异常会停止您的方法。
先生。 复制和粘贴先生发送问候。 ;o)
【讨论】:
好的,现在我明白了,谢谢,之前共享了相同的代码,但没有找到解决方案,所以我再次询问 没问题。我的荣幸。以上是关于MPI Java矩阵乘法错误的主要内容,如果未能解决你的问题,请参考以下文章