문제:
여러 항목에 걸쳐 처리해야 하는 대규모 2D 매트릭스가 있습니다. MPI를 사용하는 노드. 노드 간의 유일한 통신은 각 시간 단계 이후에 에지 값을 공유하는 것입니다.
접근 방식:
질문에 설명된 제안된 접근 방식이 이 문제에 적합합니다. 다음 코드 세그먼트는 제안된 구현을 보여줍니다.
// (assume A is a 2D array) if (myrank == 0) { for (i = 0; i < x; i++) { for (j = 0; j < y; j++) { // Perform C++ code implementation MPI_Send(&A[i][0], 3, MPI_INT, 1, 0, MPI_COMM_WORLD); MPI_Recv(&B[0][0], 3, MPI_INT, 1, 0, MPI_COMM_WORLD, &status); MPI_Barrier(MPI_COMM_WORLD); } } } if (myrank == 1) { for (i = x; i < xx; i++) { for (j = 0; j < y; j++) { // Perform C++ code implementation MPI_Send(&B[i][0], 3, MPI_INT, 0, 0, MPI_COMM_WORLD); MPI_Recv(&A[0][0], 3, MPI_INT, 0, 0, MPI_COMM_WORLD, &status); MPI_Barrier(MPI_COMM_WORLD); } } }
추가 MPI 기능:
고려 사항:
위 내용은 MPI에서 2D 배열을 효과적으로 보내고 받는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!