栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c语言 mpi代码 “1 leaked handle pool objects“ 警告

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言 mpi代码 “1 leaked handle pool objects“ 警告

记录一个小坑,"1 leaked handle pool objects"警告

在完成云计算作业: 用mpi+openmp写矩阵相乘 的代码的时候遇到的一个警告,乍一看过去,我觉得是我有变量没有free 然后又去百度查了,啥也没查到,后来查阅MPI_Type_create这个函数的时候发现,我在前面commit了,但是没有在结尾free掉,用MPI_Type_free(&newType)就能把警告解决了;
附上 MPI_Type_create的使用

  • c 代码
struct point {
	int x,y;
	double data;
}
// 定义新类型
MPI_Datatype pointType;
 // 分区变量长度
int pointType_blocklengths[2] = {2, 1};
// 分区起始位置
MPI_Aint pointType_displacements[2] = {0, sizeof(int) * 2};
// 分区类型
MPI_Datatype pointType_types[2] = {MPI_INT, MPI_DOUBLE};
// 创建类型
MPI_Type_create_struct(2, pointType_blocklengths, pointType_displacements, pointType_types, &pointType);
// 提交类型

MPI_Type_commit(&pointType);
// 运行的代码
//....

// free
MPI_Type_free(&pointType)

这里就是把2个int作为一个部分,double一个部分,int放前面,
对应的后面的分区类型数组中MPI_INT也放前面,
起始的时候是int所以分区起始位置第一个变量是0,对应的第二个则是0+sizeof(int)*2
然后记得要:
MPI_Type_free(&newType)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/510321.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号