所以,我实现了我自己的 mpi 库(一个简化版本),我需要在进程之间发送/接收一些数据。MPI_Send 看起来像这样(void *buf,int count,datatype data,etc...)。所以这意味着我需要发送指向 buf 地址的数据类型(char、double 或 int)的计数元素。我需要通过消息队列(mq)发送 em。MPI_Recv 采用相同的参数。目前这是我在发送和接收中所做的:
//Sender part of code
ret=mq_send(mq,buf,sizeof(buf),0);
if(ret < 0)
return MPI_ERR_IO;
//Receiver part of code
ret = mq_receive(mq, buf, MSGSIZE, NULL );
if(ret < 0)
return MPI_ERR_IO;
现在我只收到数组的第一个元素。我将如何发送整个事情?这是我的想法
//Sender part of pseudocode
for(i=0,count)
element=(cast to datatype)buf[i];
mq_send(mq,element,sizeof,0);
//Receiver part of pseudocode
//i receive the count number of elements prior to this message
for(i=0,count)
mq_receive(mq,local_variable,etc...)
somehow store them into my void *buf which i receive as an argument ??
如果有什么不够清楚,我会回复