2013-03-23 2 views
0

메시지를 컴퓨터로 보내는 코드를 작성한 다음 회신하여 시간이 얼마나 걸릴지 궁금합니다. 메시지가 다른 컴퓨터로 전송 된 다음 다시 전송됩니다. 여기 메시지가 컴퓨터로 전송되는 데 걸리는 시간을 측정하는 방법

내가 지금까지 가지고있는 코드입니다 : 그것은 MPI를 사용하여 간단한 질문, 처음 인 경우

import mpi.* ; 

class Hello { 
    static public void main(String[] args) { 
    MPI.Init(args) ; 
    int myrank = MPI.COMM_WORLD.Rank(); 
    if(myrank == 0) { 
     char[] mess = " Raptor" .toCharArray(); 
     MPI.COMM_WORLD.Send(mess, 0, mess.length, MPI.CHAR, 1, 99); 
    } else { 
     char[] mess = new char [20]; 
     MPI.COMM_WORLD.Recv(mess, 0, 20, MPI.CHAR, 0, 99); 
     System.out.println("received:"+new String(mess)+":"); 
    } 
    MPI.Finalize(); 
    } 
} 

죄송합니다!

편집 :

코드는 이제 :

import mpi.* ; 

class Hello { 

    static public void main(String[] args) { 
    MPI.Init(args) ; 
    int myrank = MPI.COMM_WORLD.Rank(); 
    if(myrank == 0) { 
long startTime = System.nanoTime(); 
     char[] mess = " Hello, there" .toCharArray(); 
     MPI.COMM_WORLD.Send(mess, 0, mess.length, MPI.CHAR, 1, 99); 
    } else { 
     char[] mess = new char [20]; 
     MPI.COMM_WORLD.Recv(mess, 0, 20, MPI.CHAR, 0, 99); 
     System.out.println("received:"+new String(mess)+":"); 
long endTime = System.nanoTime(); 
    } 

long duration = endTime - startTime; 
system.out.println(duration); 
    MPI.Finalize(); 
    } 
} 

하지만 지금은 컴파일에 이러한 오류를 얻고있다 :

javac의 Hello.java

Hello.java:19: error: cannot find symbol 
long duration = endTime - startTime; 
       ^
    symbol: variable endTime 
    location: class Hello 
Hello.java:19: error: cannot find symbol 
long duration = endTime - startTime; 
         ^
    symbol: variable startTime 
    location: class Hello 
Hello.java:20: error: package system does not exist 
system.out.println(duration); 
    ^
3 errors 
+0

if/else 블록에서 시간을 선언하고 그 블록 외부에서 시간을 인쇄하려고합니다. – MrLore

답변

2
long startTime = System.nanoTime(); 
// send & receive 
... 
long endTime = System.nanoTime(); 

long duration = endTime - startTime; 

MPI.Init(args); 
int myrank = MPI.COMM_WORLD.Rank(); 
long startTime = System.nanoTime(); 
if (myrank == 0) { 
    ... 
} else { 
     ... 
} 

long endTime = System.nanoTime(); 
long duration = endTime - startTime; 
+0

고마워,하지만 지금은 3 가지 오류가 있는데, 내가 뭘 잘못 했니? – user2065929

+0

범위를 벗어났습니다. 업데이트가 더 명확합니까? – Reimeus

+0

감사합니다 :) 지금 내 목표를위한 완벽한, 훌륭한 시작 블록입니다 :) 덕분에 많이 – user2065929

관련 문제