《并行计算的编程模型》一3.4.2 分配和释放

简介: 本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.4.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4.2 分配和释放

对称堆的分配和释放函数与C语言标准的分配和释放函数类似,唯一复杂的因素是用户必须确保每个PE在大小和顺序上执行完全相同的分配序列。这样做能确保对称堆的一致性,允许PE使用自身对象的地址定位对称对象。
对称准则:每个PE的分配和释放操作都要按相同的顺序并使用相同的变量来执行。不能保证必要的对称性至少会导致程序挂起,因为分配是全局同步事件。
代码清单3-2通过创建三个对称对象展示了这一准则。数组a和b通过static关键字保证了对称,指针c指向了另一块由shmalloc()分配再由shfree()释放的对称内存(有10个整数的数组)。因为每个PE实例有相同的声明和动态分配序列,所以这个堆是对称的。
screenshot
screenshot
代码清单3-3展示了几个违背对称准则之处。注意该程序的主要错误是分配的执行、顺序或大小都一定程度上取决于每个PE上不同的数据。
screenshot

相关文章
|
机器学习/深度学习 数据采集 PyTorch
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
|
缓存 前端开发 JavaScript
如何快速搭建一个前端框架?
【4月更文挑战第7天】快速搭建前端框架,首先确定技术选型(如React、Vue或Angular),然后创建项目目录结构,安装所需依赖。配置开发环境,编写代码,同时进行调试和测试。优化性能后,部署上线。选择框架时,考虑社区支持、学习曲线、性能、兼容性及文档质量。
830 0
|
NoSQL 网络协议 Redis
【Azure Redis】AKS中使用Lettuce连接Redis Cache出现 timed out 问题的解决思路
【Azure Redis】AKS中使用Lettuce连接Redis Cache出现 timed out 问题的解决思路
495 1
【Azure Redis】AKS中使用Lettuce连接Redis Cache出现 timed out 问题的解决思路
ceph集群用户管理实战指南
这篇文章提供了Ceph集群用户管理的详细指南,包括用户格式和权限说明、创建和删除用户、修改用户权限、用户备份和恢复,以及如何导出和验证用户授权文件。
393 1
|
JavaScript 前端开发 Linux
【好玩的开源项目】Linux系统之部署捕鱼达人经典小游戏
【7月更文挑战第20天】Linux系统之部署捕鱼达人经典小游戏
709 8
|
机器学习/深度学习 知识图谱
YOLOv8改进 | 融合改进篇 | 轻量化CCFM + SENetv2进行融合改进涨点 (全网独家首发)
YOLOv8改进 | 融合改进篇 | 轻量化CCFM + SENetv2进行融合改进涨点 (全网独家首发)
795 2
|
人工智能 物联网 Linux
Fooocus:一个简单且功能强大的Stable Diffusion webUI
Stable Diffusion是一个强大的图像生成AI模型,但它通常需要大量调整和提示工程。Fooocus的目标是改变这种状况。
1264 1
|
SQL 存储 关系型数据库
【MySQL新手入门系列三】:MySQL的新增、删除与修改操作
在 MySQL 中,对数据的操作分为典型的“增删改查”四个操作。前面我们已经大致讲了一下mysql的安装等介绍,本篇博客将详解 MySQL 中的“新增、删除与修改”操作。
1018 2
|
开发框架 Linux C++
[总结]libusb相关概念及技术的介绍
[总结]libusb相关概念及技术的介绍
409 0
|
Java 数据库
mybatis-plus允许自定义handlerType的set
mybatis-plus允许自定义handlerType的set
303 0

热门文章

最新文章