类的私有成员上的MPI操作
MPI operations on private members of a Class
我想知道是否可以将MPI与C++类的私有成员一起使用,例如下面示例中的void bcast
:
class foo
{
public:
int rank;
int size;
foo()
{
_isOperational = false;
}
void bcast(){
MPI_Bcast(&_isOperational,1,MPI::BOOL, 0, MPI_COMM_WORLD);
}
private:
bool _isOperational;
};
我所得到的只是一个僵局。这有道理吗?
一个最小的可复制示例,它证明了私有成员在MPI中不是问题。
#include <mpi.h>
#include <stdio.h>
class foo
{
private:
bool _isOperational;
public:
int rank;
int size;
foo()
{
_isOperational = false;
}
void changeOperational(bool b){
_isOperational = b;
}
void printOperational(){
printf("Rank: %d -> Operational: %dn",rank,_isOperational);
}
void bcast(){
MPI_Bcast(&_isOperational,1,MPI::BOOL, 0, MPI_COMM_WORLD);
}
};
int main(){
foo f;
MPI_Init(NULL,NULL);
MPI_Comm_size(MPI_COMM_WORLD, &f.size);
MPI_Comm_rank(MPI_COMM_WORLD, &f.rank);
f.printOperational();
if(f.rank == 0)
f.changeOperational(true);
f.bcast();
f.printOperational();
MPI_Finalize();
return 0;
}
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 重载操作程序时出错>>用于类中的字符串 memebr
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- 对字符串进行位操作
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 对字符数组中的元素执行逐位操作
- 如何在directx/c++中进行平移/缩放操作
- 逐位操作的隐式类型转换
- 为什么一个向量上的多线程操作很慢
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 设置 Visual Studio for MPI: 找不到标识符错误
- 类的私有成员上的MPI操作
- MPI 归约操作中的求和顺序
- 特定共享内存写操作(MPI)的同步
- boost.mpi中的自定义reduce操作
- MPI收集/减少操作混乱
- 本地发送方-接收方减少操作 MPI
- MPI 的散射操作