《并行计算的编程模型》一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

相关文章
|
机器学习/深度学习 虚拟化 异构计算
浅析GPU通信技术(上)-GPUDirect P2P
1. 背景 GPU在高性能计算和深度学习加速中扮演着非常重要的角色, GPU的强大的并行计算能力,大大提升了运算性能。随着运算数据量的不断攀升,GPU间需要大量的交换数据,GPU通信性能成为了非常重要的指标。
29108 1
|
并行计算
《并行计算的编程模型》一3.5.2 RMA函数使用
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1306 0
|
并行计算
《并行计算的编程模型》一3.5 远程内存访问:put和get
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.5节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1132 0
|
并行计算 算法 API
《并行计算的编程模型》一导读
对于正在编程的程序员,编程模型可被看作一台虚拟机,并可通过编程语言和函数库实现。如果某个编程模型成为计算机科学研究中的热点,需要具有以下特性:高效性(易于描述各种抽象算法)、移植性(兼容各种硬件计算平台)、高性能(高效均衡地利用硬件平台的计算能力)、通用性(广泛地描述各种算法)。
3609 0
|
并行计算 程序员 API
《并行计算的编程模型》一2.2 GASNet概述
本节书摘来华章计算机《并行计算的编程模型》一书中的第2章 ,第2.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1357 0
|
存储 并行计算
《并行计算的编程模型》一3.3 OpenSHMEM存储模型
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2948 0
|
并行计算 C语言 C++
《并行计算的编程模型》一1.2 MPI基础
本节书摘来华章计算机《并行计算的编程模型》一书中的第1章 ,第1.2节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2301 0
|
并行计算 API
《并行计算的编程模型》一3.1 引言
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1031 0
|
并行计算 程序员
《并行计算的编程模型》一3.7.4 广播
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.7.4节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2437 0
|
并行计算 API
《并行计算的编程模型》一3.4.3 关于分配和对称堆的说明
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.4.3节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
971 0