MPJ (기본적으로 또 다른 생산자/소비자 문제)를 사용하여 간단한 분산 응용 프로그램을 구축하고 있으며 여러 스레드를 사용할 때 같은 시스템에서 데이터를받는 데 큰 문제가 있습니다. .MPJ/Cluster 구성에서 다른 스레드의 메시지를 수신 할 수 없음
예제 코드 :
Thread t = new Thread(new Runnable() {
@Override
public void run() {
int[] buf = new int[2];
MPI.COMM_WORLD.Recv(buf, 0, 2, MPI.INT, MPI.ANY_SOURCE, 1);
System.out.println("Got: " + buf[0]);
}
});
t.start();
Thread.sleep(100);
MPI.COMM_WORLD.Isend(new int[] {1,0}, 0, 2, MPI.INT, MPI.COMM_WORLD.Rank(), 1);
Thread.sleep(100);
t.join();
아이디어는 간단는 : -이에만 작동 하나 개의 스레드는 모든 기계에 수신과) 다른 기계 (이 잘 작동) 같은 시스템의 b) 다른 스레드에서 오는 요청을 받아 멀티 코어 모드에서.
클러스터 구성에서이 방법을 사용할 수 있습니까?
이것이 가능하지 않은 경우, 바쁜 폴링없이 일부 이벤트 (종료 감지) 이후에 리스너 스레드를 올바르게 종료하는 방법이 있습니까?
감사