如何通过 mpi c++ 发送布尔数据类型?
How to send Boolean datatype through mpi c++?
我是 c++ 的新手,正在尝试通过 MPI 发送 bool 数据类型,但 c++ 不支持此数据类型。
我尝试制作它 MPI_BYTE
和 MPI_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 table 3.4 第 27 页)定义 MPI_CXX_BOOL
与 C++ bool
数据类型一起使用。
我是 c++ 的新手,正在尝试通过 MPI 发送 bool 数据类型,但 c++ 不支持此数据类型。
我尝试制作它 MPI_BYTE
和 MPI_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 table 3.4 第 27 页)定义 MPI_CXX_BOOL
与 C++ bool
数据类型一起使用。