面向共享内存多核结构中线程级并行的数据优化方法及装置制造方法及图纸

技术编号:20680307 阅读:28 留言:0更新日期:2019-03-27 18:40
本发明专利技术属于计算机多核结构并行优化技术领域,特别涉及一种面向共享内存多核结构中线程级并行的数据优化方法及装置,该方法包含:针对待优化数据,检测并判定其所有循环携带依赖是否存在私有化有利性情况;并依据检测判定结果,实施数据私有化处理。本发明专利技术针对多核硬件结构中循环并行线程,首先对数据进行私有化处理的有利性检测,然后通过数据私有化来消除循环携带依赖,进而实现程序的多线程并行;并进一步将数据私有化区分为标量私有化和数组私有化,充分利用共享存储的多核硬件结构优势,提高线程执行效率,并提高处理器乃至计算机系统性能的利用率,降低运行开销,对共享内存多核结构线程级并行处理技术具有重要的指导意义。

【技术实现步骤摘要】
面向共享内存多核结构中线程级并行的数据优化方法及装置
本专利技术属于计算机多核结构并行优化
,特别涉及一种面向共享内存多核结构中线程级并行的数据优化方法及装置。
技术介绍
当前,并行体系结构已经不是超级计算机的特权,现代处理器通常采用多核结构来获得更高的性能。为了充分利用这种多核结构的硬件性能,需要开发有效的线程级并行程序。OpenMP编程模型是线程级并行的有效手段。OpenMP的执行模型如图2所示,在开始执行的时候,只有主线程在运行,主线程在运行过程中,当遇到需要进行并行计算的区域,派生出(Fork,创建新线程或者唤醒已有线程)多个线程来执行并行任务,在并行执行的时候,主线程和派生线程共同工作,在并行区结束执行后,派生线程退出或者挂起,不再工作,控制流程回到单独的主线程中(Join,即多线程的汇合)。通过OpenMP可以方便地实现循环的多线程并行,即,将不同的循环迭代分配到不同的线程上去执行。由于每个线程的执行顺序是随机的,等同于打乱了原有迭代的执行顺序,这就要求各迭代之间不能存在任何的依赖,后续将迭代之间的依赖称之循环携带依赖。任何循环携带依赖的存在将阻止程序的并行化,进而本文档来自技高网...

【技术保护点】
1.一种面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,包含:针对待优化循环,检测并判定其所有循环携带依赖是否存在私有化有利性情况;并依据检测判定结果,实施数据私有化处理。

【技术特征摘要】
1.一种面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,包含:针对待优化循环,检测并判定其所有循环携带依赖是否存在私有化有利性情况;并依据检测判定结果,实施数据私有化处理。2.根据权利要求1所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,所述私有化有利性情况是指所述全部循环携带依赖能否通过数据私有化进行消除。3.根据权利要求1所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,检测并判定所有循环携带依赖的私有化有利性情况,包含如下内容:针对待优化数据的目标循环层,对其中每一个标量,若在该目标循环层中的每次引用均由当前迭代进行赋值,则判定该标量引起的依赖私有化处理,否则,判定该标量无需数据私有化处理;对其中每一个数组,若该数组依赖是由目标循环层内部的循环层携带,并检测每一个数组元素在目标循环层迭代中的每次引用均由当前迭代赋值,则判定该数组引起的依赖私有化处理,否则,判定该数组无需数据私有化。4.根据权利要求3所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,依据检测判定结果,进行标量引起的依赖私有化处理,包含如下内容:针对待私有化处理的标量引起的依赖,首先遍历循环体中每条语句,查找并收集其中针对该标量的写操作,并将其加入到集合W中,若集合W为空,则无需进行标量私有化,否则,遍历集合W,针对集合中涉及到的每个标量,检测其是否为规约变量,若是,则将规约变量变换为归纳变量;遍历集合W,对集合中涉及到的每个标量进行私有化处理。5.根据权利要求1或4所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,采用标量扩展数组或私有化子句修饰来对标量进行私有化处理。6.根据权利要求3所述的面向共享内存多核结构中线程级并行的数据优化方法,其特征在于,依据检测判定结果,进行数组引起的依赖私有化处理,包含如下内容:针对待私有化处理的数组引起的依赖,首先遍历循环体重每条该数组访问语句,查找并收集其中针对数组的写操作,将其加入到集合AW中;若集合AW为空,则无需进行数组私有化,否则,遍历集合AW,针对集合中涉及到的每个数组引用,检测其是否存在规约,若存在,则将规约变换为归纳;遍历集...

【专利技术属性】
技术研发人员:徐金龙
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1