论文摘要
随着并行计算机的发展,特别是片上多处理器CMP(Chip MultiProcessor),又通称为多核处理器的出现,人们逐渐认识到并行计算加速应用的重要性,但是普及并行计算主要受到并行编程复杂和高性能计算机价格昂贵等方面因素的制约。本文研究工作分为两个部分:一是研究多核下事务存储并行编程技术,从而减轻并行编程难度;二是优化首台国产万亿次高性能计算机KD-50-I的软件库(数学库和通信库),以利于低功耗、低价位的国产高性能机推广普及。本文主要研究内容和贡献与创新是:1.基于事务存储执行的并行编程模型讨论了未来多核体系结构上基于事务存储执行的并行编程技术,实现了编写事务存储执行程序框架的软件库,通过提供一系列开始、提交和终止等事务执行程序接口,以详细和直观的方式对源代码实现事务相关,从而对新型软件事务存储算法和技术的验证,以及硬件事务存储执行平台的设计具有指导意义。2.扩充OpenMP支持事务存储执行功能虽然OpenMP是多核体系结构上的流行多线程并行编程模型,但是OpenMP编译器不检查数据相关性、访问冲突和其他可能导致程序错误执行的问题,这些问题传统上完全依赖用户使用锁机制来保证程序的正确性。锁机制的并行编程中存在并行程序效率和并行编程难度的矛盾。粒度大的锁机制编程容易,可应用的并行性挖掘比较差;粒度小的锁机制应用的并行性挖掘较好,可编程难度大,容易带来优先权倒置、死锁和锁护航等问题。本文通过扩充OpenMP支持事务存储执行功能,可有效缓解OpenMP并行编程中并行程序效率和并行编程难度之间矛盾。3.多核下事务存储执行并行加速串行二进制程序历史遗留无源码的二进制代码由于多是单线程串行程序,无法充分利用到现有多核处理器计算资源。若想在多核下得到性能的提升,可以通过反编译得到伪代码,然后对伪代码多线程并行化。其主要困难是:一是反编译对数据类型和复杂控制流恢复很困难,得到的伪代码可读性很差;二是程序并行化时分析程序的数据相关性很难,分析可读性差的伪代码更难。提出反编译二进制代码到中间代码,然后利用事务存储执行原理,对中间代码并行投机多线程编译,(假定线程间的依赖关系不存在,放松对编译器的限制,选择可以投机并行执行的部分并行执行)。通过冲突检测和事务撤销机制,保证即使依赖存在,对程序结果的正确性也没有影响。从而解决了以往反编译得到的伪代码的信息不完整和并行编译器保守的问题,更充分的挖掘了二进制程序的潜在并行性。4.首台国产万亿次机KD-50-I的数学库和通信库优化国产万亿次机KD-50-I具有低功耗、低占地面积、高计算密度三大特点,对未来研制国产千万亿次计算机系统及提高其自主创新性具有示范作用。本文针对万亿次机节点使用的龙芯2F处理器支持乘加指令和四发射流水线的特点,采用循环展开和指令调度提高指令的并行性,以及采用预取减小访问内存的开销等技术优化了数学库;同时针对万亿次机节点间拓扑固定、层次简单的网络结构特点,采用简化的LBP通信模型分析优化了通信库。数学库和通信库的优化,提高了KD-50-I的并行应用运行效率,对KD-50-I国产高性能机的推广普及具有重要的意义。5.国产万亿次机KD-50-I在并行数据挖掘在中的应用研究基于串行计算机系统的数据挖掘技术,已经远远不能满足海量数据和极其复杂的运算的需求。随着网络技术、高性能计算机的发展,并行数据挖掘成为解决上述问题的可能。本文选择以金融风险管理应用为背景,结合国产万亿次机KD-50-I节点使用处理器的特点和节点间网络拓扑结构,优化并行数据挖掘算法,提高了应用运行效率,为KD-50-I在不同领域的应用,提供了并行算法设计和并行编程的参考。
论文目录
相关论文文献
- [1].基于龙芯2F的国产万亿次高性能计算机KD-50-I的研制[J]. 中国科学技术大学学报 2008(01)
- [2].KD-50-I中的无盘启动技术、文件系统架构及BLAS库优化[J]. 小型微型计算机系统 2009(10)