MPI 또는 SOCKET SEND RECV에 관한? 질문입니다.
안녕하세요 네트워크 관련해서 질문을 드립니다.
첫번째 질문은 컴퓨터 1, 2, 3 이렇게 세 대가 있을 때
2번의 컴퓨터에 랜카드를 2개 꼽고 1 <-> 2 , 2 <->3 이 동시적으로 데이터 전송을 하려고 합니다..
이게.. 2번 컴퓨터에서 소켓을 2개 열어놓고 각 각 통신을 하면 될거 같은데.. 궁금한점이
논블로킹 소켓으로 구현했을 경우 1번에서 연속에서 4번의 send()를 수행 했을 때, 컴퓨터 2번에서 데이터를 모두
정확하게 받을 수 있는지 궁금합니다. 논블로킹이기 때문에 어떤 패킷이 먼저 갈지 모른다 라는게... 저의 생각
입니다.. 맞는지요..? 사실 아래의 그림과 같이 병렬적으로 send recv가 동시적으로 잃어나게 하고 싶습니다..
1번 컴퓨터 2번 컴퓨터 3번 컴퓨터
논블로킹소켓 논블로킹소켓1 , 논블로킹 소켓2
send() -----> recv() send() -----> recv()
send() -----> recv() send() -----> recv()
send() -----> recv() send() -----> recv()
send() -----> recv() send() -----> recv()
두번째 질문은 이것을 생각하게된 원천적 이유인데요....
MPI를 이용해 병렬 프로그램을 짜고 있습니다. 각 각의 컴퓨터가 위의 그림과 같이 동시적으로 통신이 발생해야
하는데... MPI_Isend(), MPI_Irecv() 함수를 사용했는데도 불구하고.. 2번의 recv()가 선행적으로 일어나고
send()가 발생해서.... 3번이 30ms 씩 지연되고 있습니다... 30ms 지만 수천번의 루프를 돌면서 연한하는 프로
그램이라... 이 시간을 줄였으면 해서 2개의 랜카드를 꼽고 MPI 통신이 가능한지 궁급합니다.. 안된다면...
위의 소켓방법으로 한번 구현해보려 합니다... 감사합니다..
아... 띄어 쓰기가
아... 띄어 쓰기가 안먹혔네요...
nonblocing0---nonblocking1, nonblocking2---nonblocking3
1번컴------------------>2번컴------------------>3번컴
입니다... 꾸벅..(__)
오승택
댓글 달기