Я пытаюсь сгенерировать 4 ints и отправить их все в P0, используя alltoall У меня есть это: (переполнение стека не любит окончания строки linux)
int * sendbuf=new int [4];
for(int x=0;x<4;x++){sendbuf[x]=12/4*x;}
int* sendcounts =new int [4];
sendcounts[0]=4;
sendcounts[1]=0;
sendcounts[2]=0;
sendcounts[3]=0;
int* displs=new int [4];
sendcounts[0]=0*sizeof(int);
sendcounts[1]=4*sizeof(int);
sendcounts[2]=4*sizeof(int);
sendcounts[3]=4*sizeof(int);
int * recvbuf=new int [16];
for(int x=0;x<16;x++){recvbuf[x]=0;}
int* recvcounts=new int [4];
recvcounts[0]=4;
recvcounts[1]=4;
recvcounts[2]=4;
recvcounts[3]=4;
int* rdispls=new int [4];
rdispls[0]=0;
rdispls[1]=4;
rdispls[2]=8;
rdispls[3]=12;
MPI_Alltoallv(sendbuf,sendcounts,displs,MPI_INT,recvbuf,recvcounts, rdispls,MPI_INT,MPI_COMM_WORLD);
if(id==0)
{
for(int x=0;x<16;x++){cout<<recvbuf;}
}
Я получаю сообщение усеченная ошибка, чтоя делаю не так?