如何通过 mpi c++ 发送布尔数据类型?

How to send Boolean datatype through mpi c++?

本文关键字:布尔 数据类型 何通过 mpi c++      更新时间:2023-10-16

我是 c++ 的新手,并尝试通过 MPI 发送布尔数据类型,但 c++ 不支持这种数据类型。

我试图让它MPI_BYTEMPI_INT但它什么也没打印。

#include <iostream>
#include "mpi.h"
using namespace std;
int main(int argc, char **argv)
{ 
int R,P;
MPI_Status status; 
bool check = false;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &P);
MPI_Comm_rank(MPI_COMM_WORLD, &R);
if (R == 0)
{
check = true;
MPI_Send(&check,1,MPI_BYTE,1,1,MPI_COMM_WORLD);
}
else if (R == 1)
{  
MPI_Recv(&check,1,MPI_BYTE,0,1,MPI_COMM_WORLD,&status);
cout << R <<"t check is t"<< check << endl;
}
MPI_Finalize();
return 0;
}

没有错误消息。

标准(MPI 3.1 表 3.4 第 27 页(定义了MPI_CXX_BOOL用于C++bool数据类型。