"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > MPI에서 2D 배열을 효과적으로 보내고 받는 방법은 무엇입니까?

MPI에서 2D 배열을 효과적으로 보내고 받는 방법은 무엇입니까?

2024년 12월 22일에 게시됨
검색:803

How to Effectively Send and Receive 2D Arrays in MPI?

MPI를 사용하여 2D 배열 전송 및 수신

문제:

여러 항목에 걸쳐 처리해야 하는 대규모 2D 매트릭스가 있습니다. MPI를 사용하는 노드. 노드 간 유일한 통신은 각 시간 단계 이후에 간선 값을 공유하는 것입니다.

접근 방식:

질문에 설명된 제안된 접근 방식이 이 문제에 적합합니다. 다음 코드 세그먼트는 제안된 구현을 보여줍니다.

// (assume A is a 2D array)
if (myrank == 0) {
  for (i = 0; i 

추가 MPI 기능:

  • MPI_Allgather: 모든 프로세서의 데이터를 모든 프로세서가 액세스할 수 있는 버퍼로 수집합니다. 단일 프로세서에 분산 배열을 수집하는 데 유용합니다.
  • MPI_Alltoall: 모든 프로세서 간에 완전한 데이터 교환을 제공합니다.
  • MPI_Sendrecv: A 송신과 수신 작업을 하나로 통합한 편리한 기능 call.
  • MPI_Buffer_attach: 메모리를 명시적으로 할당할 필요 없이 프로세스에 버퍼를 연결합니다.

고려 사항:

  • MPI를 단순화하기 위해 2D 배열에 연속 메모리 할당이 권장됩니다. 통신.
  • MPI_Barrier는 프로세스 간의 동기화를 보장하지만 MPI_Wait 또는 MPI_Test와 같은 비차단 대안으로 대체될 수 있습니다.
  • 여기에서는 차단 전송 및 수신이 사용되지만 비차단 옵션을 사용할 수 있습니다. 효율성을 향상시킵니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3