当前位置: 首页 > news >正文

展厅设计公司排行优化教程网官网

展厅设计公司排行,优化教程网官网,独立网站建设费用列表,网站建设网站需求分析报告功能MPI_Pack 和 MPI_Unpack 它们可以将源数据打包成二进制格式以便于传输,或者将二进制格式的数据解包成目标数据。这对函数通常用于在 MPI 应用程序中进行异构系统间的通信,即两个系统之间使用不同的二进制格式进行交互通信。 打包(序列化&…

MPI_Pack 和 MPI_Unpack 它们可以将源数据打包成二进制格式以便于传输,或者将二进制格式的数据解包成目标数据。这对函数通常用于在 MPI 应用程序中进行异构系统间的通信,即两个系统之间使用不同的二进制格式进行交互通信。

打包(序列化)

MPI_Pack 函数将源数据打包成一个二进制数据流,并将其存储在一个缓冲区中,可以通过 MPI_Send 或 MPI_Bsend 将此缓冲区的内容发送到目标节点

在打包数据时,MPI 还会将每个数据元素按照数据类型描述符中指定的数据类型进行打包。MPI_Pack 函数也会检查目标缓冲区的大小,如果目标缓冲区不够大,MPI_Pack 函数会产生 MPI_ERR_TRUNC 错误,因此需要确保目标缓冲区的大小足够存储打包后的二进制数据流。

函数原型

int MPI_Pack(const void *inbuf, int incount, 
MPI_Datatype datatype, void *outbuf, int outsize, 
int *position, MPI_Comm comm);

参数详解

  • const void *inbuf:指向原始数据的指针。
  • int incount:原始数据元素的数量。
  • MPI_Datatype datatype:MPI 原始数据类型描述符。
  • void *outbuf:指向目标缓冲区的指针。
  • int outsize:目标缓冲区的大小。
  • int *position:指向目标缓冲区中下一个可用位置的指针。
  • MPI_Comm comm:MPI 通信域

代码实例:

int MPI_Pack_example()
{int n = 5; double v[5] = {1.0,2.0,3.0,4.0,5.0}; // 打包int position = 0; int buffer_size = n*sizeof(double) + 100;void *buffer = malloc(buffer_size); MPI_Pack(&n,1,MPI_INT,buffer,buffer_size,&position, MPI_COMM_WORLD); MPI_Pack(v,n,MPI_DOUBLE,buffer,buffer_size,&position, MPI_COMM_WORLD);// 发送缓冲区MPI_Send(buffer, position, MPI_PACKED, 1, 0, MPI_COMM_WORLD);// 释放内存free(buffer);return 0;
}

解包 (反序列化)

将目标缓冲区中的二进制数据流解包成目标数据,并存储在指定的内存地址中。

函数在解包数据时,会使用 MPI_Unpack 队列中存放的 MPI_Datatype 来还原打包之前的数据类型,并将数据解包到原始数据缓冲区。

函数原型

int MPI_Unpack(const void *inbuf, int insize, 
int *position, void *outbuf, int outcount, 
MPI_Datatype datatype, MPI_Comm comm);

参数详解

  • const void *inbuf:指向目标缓冲区的指针。
  • int insize:目标缓冲区的大小。
  • int *position:指向目标缓冲区中下一个可用位置的指针。
  • void *outbuf:存储目标数据的指针。
  • int outcount:目标数据元素的数量。
  • MPI_Datatype datatype:MPI 原始数据类型描述符。
  • MPI_Comm comm:MPI 通信域

代码实例

int MPI_Unpack_example()
{int count;double *data;// 接收打包后的数据MPI_Status status;MPI_Probe(0,0,MPI_COMM_WORLD,&status);int size;MPI_Get_count(&status,MPI_PACKED,&size);void *buffer = malloc(size);MPI_Recv(buffer,size,MPI_PACKED,0,0,MPI_COMM_WORLD,&status);// 解包int position = 0;MPI_Unpack(buffer, size, &position, &count, 1, MPI_INT, MPI_COMM_WORLD);data = (double*)malloc(count*sizeof(double));MPI_Unpack(buffer, size, &position, data, count, MPI_DOUBLE, MPI_COMM_WORLD);// 打印解包后的数据printf("count = %d\n", count);for(int i=0; i<count; i++){printf("%f ", data[i]);}printf("\n");// 释放内存free(buffer);free(data);return 0;
}
http://www.ds6.com.cn/news/102529.html

相关文章:

  • 公司做网站需准备资料软件定制开发
  • 博爱网站建设指数分布的期望和方差
  • 网站做压测推广引流渠道平台
  • 做网站要属于无形资产吗网站交换链接的常见形式
  • wordpress网站的优化天津站内关键词优化
  • wordpress爆力南昌seo排名
  • 网站是别人做的域名自己怎么续费企业网站seo多少钱
  • 为什么石家庄突然封了seo小白入门教学
  • 安徽安庆网站建设公司抖音推广怎么做
  • 做网站建设有前途那百度平台商家订单查询
  • 网站制作网免费搜索引擎的优化方法有哪些
  • 做网站有什么专业术语网络营销能干什么工作
  • 宝安做棋牌网站建设哪家公司便宜百度搜图片功能
  • wordpress插件收录seo职业培训学校
  • 网站内容不能够复制怎么做河北优化seo
  • 什么网站可以做进出口买卖搜索引擎推广排名
  • 如果做网站报价数字营销软件
  • 微信小程序官网平台入口官网登录seo的作用主要有
  • 用什么java软件做网站百度关键词搜索推广
  • html网页模板素材下载苏州seo安严博客
  • wordpress文章大网站网站如何优化排名软件
  • 专业做根雕的网站流程优化的七个步骤
  • 电子商务网站开发实例论文seo排名大概多少钱
  • 做网站和做app武汉网站运营专业乐云seo
  • 怎么自己在家做网站厦门seo优化
  • 深圳java网站开发管理培训机构
  • 做外贸是否需要有自己的网站软考十大最靠谱it培训机构
  • 云推广廊坊网络推广优化公司
  • 怎么 给自己的网站做优化呢网站流量查询工具
  • 网站开发多少钱杭州seo整站优化