探索确定性的共享内存并行编程模型

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:hngscg
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
多核处理器的兴起使得并行软件变得越来越重要,但是目前并行软件的发展远远落后于并行硬件。作为一种主流的并行编程环境,共享内存并行编程中存在大量的不确定性,这些不确定性增加了并行编程的复杂性,严重阻碍了并行程序的发展。   共享内存并行编程中的不确定性大多数是由于编程模型的不确定性导致的,为此本文探索一个确定性共享内存编程模型,目标是在保证确定性的同时保持较好的性能。本文探讨并完成了以下工作:   1、设计了一个确定性的共享内存编程模型—DetSM。   本文首先以dedup为例分析、总结共享内存并行编程中共享资源的访问模式。然后根据总结的访问模式,本文提出了一个确定性共享内存并行编程模型——DetSM(deterministic shared memory programming model)。DetSM提供了一个特殊的抽象数据结构——SMU(Shared Memorv Unit),用于进程间通信。SMU的特点是:多期和权限传递。一个SMU的生命期可以分为多个期——periods,为了保证确定性,每个期最多只能有一个写者。当某个SMU的一个期结束以后,该SMU的写权限就可以被传递给下一个期的写者进程。   2、在SMU上拓展了一个确定性的并行数组数据结构DetArray。   为了支持这种数组访问模式——不同进程能够并行地访问数组的不相交部分,笔者对SMU进行了拓展,提出了一种适合于这种特殊应用的数组类型DetArray(deterministic array data structure)。DetArray的特点是:可以被确定性地并行操作。DetArray在物理内存上不一定连续,不能用逻辑索引来计算其物理地址。一个DetArray可以被分为多个部分(sections),每个部分都有自己的读者和写者。不同写者进程可以并行地操作一个DetArray的不同部分。   3、在Determinator上对DetSM和DetArray进行了实现和实验测试。   笔者在Determinator上利用SPMC(single-producer multiple-consumer)虚拟内存基础实现了DetSM和DetArray,然后用DetSM重写了dedup,用DetArray改写了归并排序。dedup的实验结果表明:在较大输入集上,DetSM的性能和Pthreads相当,甚至好于Pthreads。DetArray的例子表明:DetArray不仅能为并行编程提供方便,而且还具有较好的性能,它具有非常好的可扩展性。   DetSM和DetArray能使并行程序的编写、调试和测试变得容易,从而可以促进并行程序的发展。
其他文献
无线传感器网络是由大量传感器节点组成的一种无线自组织网络。通过部署在监测区域,实现对该目标区域的实时数据监测和传输。因其广阔的应用前景,受到了人们越来越多的关注。由
在计算机染色配色的实际应用中,我们通常需要根据织物颜色的RGB值来求出相应的染料配比。本文通过对实验数据的分析,利用最小误差平均值法和牛顿迭代法建立相应的数学模型,最
在计算机技术、信息存储技术及互联网高速发展的今天,越来越多的企业提高信息化程度。在企业的实际应用中,数据挖掘正在被频繁的提起,作为一个多学科交叉应用领域的数据挖掘
随着3G网络建设与覆盖的提升,平板电脑的蓬勃发展,国内三网融合的加速推进,由此产生的包括语音、数据、图像等综合多媒体通信业务需求大量涌现。综合通信业务是利用综合多元
做为处理信息过载的有效手段,推荐系统在近些年得到了广泛的研究与发展,推荐系统在各领域应用的成功案例也不断涌现,但是依然面临着很多问题亟待解决。形式概念分析(Formal C
图像压缩/解压是图像处理领域的经典问题。图像修复是对缺失信息通过保留的信息进行图像的恢复,而图像解压是利用非冗余的有用信息恢复被压缩掉的信息,通过分析两者的共同点,
目前,随着Internet运用的广泛性以及计算能力的日益增长;软件系统应用的网络化使得软件系统面临越来越多的挑战:软件的规模和复杂性在不断地增加;软件系统应用场景也是动态的、
随着移动互联技术的飞速发展,手机已经成为现代人必不可少的日常通讯工具,而近年来智能手机的兴起又给人们带来了新的惊喜,移动终端应用层出不穷,应用程序的功能更是越来越广泛,功
云计算环境下,随着不同用户对不同类型资源需求的增加,云提供商需提供大量的资源以满足不同用户的请求。然而,云计算数据中心为满足用户需求消耗了大量的能源,增加了系统运行成本
随着我国信息化建设的快速发展,信息化应用系统出现了用户身份管理复杂,多套系统具有多套帐号、多套口令、多套安全策略、多种认证方式,无法进行统一管理的问题,不易实现统一认证