c++ - 对类的私有成员的 MPI 操作
问题描述
我想知道您是否可以将 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: %d\n",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;
}
推荐阅读
- spring - Hibernate 5.3 Spring 5,Ehcache 3.5.2,jdk 10,Hibernate 说“缓存提供程序未启动”
- android - 致命错误:使用 OpenCV 2.4.11 找不到“ext/atomicity.h”文件
- testing - Polymer 3.0 a11ySuite 测试错误
- php - Laravel / Eloquent - hasManyThrough - belongsToMany
- sql - 如果另一列是 varchar,char 有用吗?
- node.js - 使用快速中间件呈现静态资产的不同方式
- php - 下拉列表中的 JSON 值显示 ID 号而不是数据库中的字符串
- c# - 在创建类的对象时为类内的值类型分配内存的位置
- c++ - 时间:2019-05-10 标签:c++conjuntive normal form regex
- c# - 在计算机崩溃时调用 File.WriteAllText 会导致数据丢失