2012-06-14 5 views
0

MPI_Get_count()가 카운트에 대해 음수 값을 반환 할 수 있습니까? 내 메시지 크기는 1138 정수를 초과 할 수 없습니다. 따라서 메시지 길이에 문제가 있어서는 안됩니다.MPI_Get_count가 카운트에 대해 음수 값을 반환 함

if(MPI_Probe(MPI_ANY_SOURCE,0,MPI_COMM_WORLD,&status) == MPI_SUCCESS) 
    { 
    printf("probe flag true\n"); 
    MPI_Get_count(&status,MPI_DOUBLE,&recv_size); 
    } 

내가받는 recv_size 값은 음수입니다.

+0

recv_size 선언 부탁드립니다. –

+0

recv_size는 정수로 선언됩니다. – ap040

+0

'MPI_UNDEFINED'는 Open MPI와 Intel MPI 모두에서 -32766입니다. –

답변

1

MPI_Get_count는 메시지 크기가 MPI_Get_count에 주어진 데이터 유형의 크기의 배수가 아닌 경우 MPI_UNDEFINED (가장 음수 일 가능성이 높음)를 반환합니다. 그래서 아마 5 바이트를 MPI_BYTE로 보내고 있지만 MPI_Get_count에게 얼마나 많은 MPI_DOUBLES를 받았는지 물어볼 것입니다.

+0

이것은 mpi_send 선언입니다 : MPI_Send (T, (m-> ncols), MPI_DOUBLE, map (j, procs), 0, MPI_COMM_WORLD); – ap040

0

저는 방금 보내던 데이터에 문제가 있다는 것을 깨달았습니다. 값이 double 크기를 초과했습니다. 이 문제와 코드가 수정되었습니다. 도움을 주셔서 감사 드리며 버그가있는 코드를 유감스럽게 생각합니다!

관련 문제