首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到10条相似文献,搜索用时 31 毫秒
1.
李春江  唐滔  杨灿群 《计算机科学》2013,40(9):35-37,60
硬件锁用简单的取数指令实现“取并加一”或“取并减一”的原子操作.首先介绍了通用多核多线程FT处理器实现的硬件锁机制,并和软件锁机制进行了比较,之后介绍了使用硬件锁机制实现多线程同步的方法,然后在GNUOpenMP运行库中设计并实现了利用硬件锁的多线程同步机制,最后采用典型OpenMP测试程序对使用硬件锁和使用软件锁的同步操作性能进行了评估和分析.  相似文献   

2.
刘芳芳  杨超  袁欣辉  吴长茂  敖玉龙 《软件学报》2018,29(12):3921-3932
世界首台峰值性能超过100P的超级计算机——神威太湖之光已经研制完成,该超级计算机采用了国产申威异构众核处理器,该处理器不同于现有的纯CPU,CPU-MIC,CPU-GPU架构,采用了主-从核架构,单处理器峰值计算能力为3TFlops/s,访存带宽为130GB/s.稀疏矩阵向量乘SpMV(sparse matrix-vector multiplication)是科学与工程计算中的一个非常重要的核心函数,众所周知,其是带宽受限型的,且存在间接访存操作.国产申威处理器给稀疏矩阵向量乘的高效实现带来了很大的挑战.针对申威处理器提出了一种CSR格式SpMV操作的通用异构众核并行算法,该算法从任务划分、LDM空间划分方面进行精细设计,提出了一套动静态buffer的缓存机制以提升向量x的访存命中率,提出了一套动静态的任务调度方法以实现负载均衡.另外还分析了该算法中影响SpMV性能的几个关键因素,并开展了自适应优化,进一步提升了性能.采用Matrix Market矩阵集中具有代表性的16个稀疏矩阵进行了测试,相比主核版最高有10倍左右的加速,平均加速比为6.51.通过采用主核版CSR格式SpMV的访存量进行分析,测试矩阵最高可达该处理器实测带宽的86%,平均可达到47%.  相似文献   

3.
Java虚拟机使用锁机制来实现多线程共享数据结构的同步.锁机制维护的临界区通常对共享数据结构只进行读操作.只读锁是指当某个线程持有锁在只读临界区时,其他线程可以直接进入只读临界区而无需等待.只读锁能极大地提高锁机制的同步性能.Java虚拟机的锁机制可分为轻量级锁和重量级锁两层,当线程冲突时从轻量级锁转向重量级锁.本文分别从轻量级锁和重量级锁两个层次分别进行只读锁优化.轻量级锁的只读优化算法可以减少原子操作的开销;重量级锁的只读优化算法则可以使多个线程同时在只读临界区中.最后在Java虚拟机HotSpot中实现只读锁优化,并且在龙芯3A上进行实验.性能测试用例包括单线程Java程序、多线程Java程序以及SPECjvm2008.实验结果表明,上述优化方法能极大降低线程进入和退出只读临界区的开销,提高Java虚拟机的同步性能.  相似文献   

4.
在并行程序中,互斥锁通常被用来避免访问共享资源时发生冲突。申威26010处理器是“神威·太湖之光”超级计算机采用的异构众核处理器,众核之间并无硬件互斥锁机制。其开发人员基于原子操作实现了一种软件互斥锁,但是该软件锁在激烈锁竞争情况下会产生大量的锁操作开销,影响了并行程序的性能。针对这一问题,提出了一种分布式传递锁机制HDT-LOCK。首先,提出并实现了基于众核上便签存储器和主存的混合分布锁来避免访存拥塞;其次,设计了基于寄存器通信和单指令多数据指令(Single-instruction Multiple-data Instruction)的锁传递机制,以进一步提高HDT-LOCK机制的吞吐量。实验结果表明,与原锁机制相比,所提HDT-LOCK机制避免了访存拥塞,并且可扩展性更佳。此外,锁传递机制使HDT-LOCK的吞吐量提升最高可达5.6倍。  相似文献   

5.
多线程机制使程序具有更好的交互性。Java程序设计语言将多线程支持与语言运行环境结合在一起,使多线程应用程序的开发变得更加容易。本文在分析FTP协议及其安全机制的基础上,使用Java多线程机制开发了一个FTP服务器原型系统,说明了其实现模型及主要方法函数的功能。  相似文献   

6.
嵌套页表是一种硬件辅助的内存虚拟化模型,当前国产申威处理器上未能提供该模型所需的硬件支持.然而申威架构特有的特权程序可编程接口可以通过软件构建必要的底层硬件支持.该接口运行在申威硬件模式上,具有最高CPU特权级.基于这一特性,在申威平台上实现了软件平滑嵌套页表模型swFNPT,通过软件设计优化弥补了硬件支持上的不足.特...  相似文献   

7.
低精度浮点数常用于深度学习加速,目前申威平台缺乏对低精度浮点数的支持,数学库的设计往往需要结合数据类型与处理器特点定制算法才能发挥出最大优势,旨在为申威1621平台设计一套支持半精度计算的超越函数。通过分析各类浮点数特性,结合申威1621的结构特点提出一种基于回乘取余查表算法。首先,对函数的定义域进行归约,生成精简的数据表;然后将回乘取余后的数值按照sign、exponent、mantissa三部分拆分计算索引;最后,查表返回结果。测试结果表明,使用回乘取余查表算法实现的半精度超越函数,相较于基于多项式近似、移位相加等算法的申威数学库及GLIBC开源数学库,性能分别提升了116%和215%。在精度需求不高的应用中既保证了正确性又大幅度提升了数学函数计算效率。  相似文献   

8.
在多核处理器上,事务存储是一种有望取代锁的同步手段。软件事务存储不需要增加额外硬件支持,就可以充分利用当前商业多核处理器的多线程能力。提出一种软件事务存储实现算法VectorSTM,该算法不需要使用原子操作。VectorSTM采用分布的向量时钟来跟踪各线程事务执行情况,能够提供更高的并发度。对事务存储基准程序STAMP的测试表明,VectorSTM在性能或者语义上比软件事务存储算法TL2和RingSTM有优势。  相似文献   

9.
针对Windows环境下多线程同步缺乏标准的读写锁机制,本文逐步论述利用临界区对读写锁的3种实现方式。通过对不同数量的临界区进行组合操作,可以达到读写锁的设计目的,并产生不同的读/写优先倾向。由于尝试在多线程中对读写锁进行复杂的交叉操作,故进一步对特定环境下的临界区内部细节进行分析和测试,并最终确保利用临界区实现读写锁的可靠性。最后是对读写锁尝试加解锁补充功能的一些讨论。  相似文献   

10.
Java语言实现了在语言级对多线程技术的支持.多线程技术不仅能提高系统资源的利用率,而且还能提高程序的交互性能和实时控制性能.本文阐述了Java语言实现多线程的方法,分析了多线程并发执行所引起的冲突问题、Java提供的同步机制和多线程的管理策略.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号