一种基于SIRT算法且使用CPU+MIC协同计算模式的电镜三维重构方法技术

技术编号:8367103 阅读:304 留言:0更新日期:2013-02-28 06:17
本发明专利技术提供一种基于SIRT算法且使用CPU+MIC协同计算模式的电镜三维重构方法,CPU端:负责将要进行迭代重构图像中的物体分成切片单元,向MIC卡传递重构所需要的值,CPU+MIC协同计算模式的框架搭建以及任务调度和参数初始化工作,而且在整个三维图像重构的计算任务CPU也会以Openmp多线程模式,依次通过重投影算法和背投影算法计算获取切片的重构图像值来动态参与;MIC众核协处理器:负责多线程并行地根据切片的重构图像值和测量获取的该切片投影图像值,依次通过重投影算法和背投影算法计算获取切片的重构图像值,在MIC卡上也采用openmp多线程的方式来运算。

【技术实现步骤摘要】

本专利技术涉及计算机应用
,具体地说是一种基于SIRT算法且使用CPU+MIC协同计算模式的电镜三维图像重构方法,尤其涉及在MIC众核架构上使用CPU+MIC协同计算模式进行电镜三维重构的方法及装置。
技术介绍
MIC (Many Integrated Core)是Intel公司推出的众核处理器,跟通用的多核至强处理器相比,MIC众核架构具有更小的内核和硬件线程,众核处理器计算资源密度更高,片上通信开销显著降低,更多的晶体管和能量,能够胜任更为复杂的并行应用。Intel MIC产品基于X86架构,基于重核的众核处理器,包含50个以上的核心,以及512bit的向量位宽,双精性能超过lTFlops。MIC拥有极其灵活的编程方式,MIC卡可以作为一个协处理器存在,也可以被看作是一个独立的节点。基本的MIC编程模型是将MIC看作一个协处理器,CPU根据程序的指令,将一部分代码运行在MIC端。此时存在两类设备,即CPU端和MIC众核协处理器端。电子断层三维重构技术(Electron Tomography, ET)是从一个物体的二维投影图经过重构获取物体内部结构的技术,通过获取多个不同角度的二维投影图进行反向重构出所研究对象的三维结构。图像重构无论是在医学诊断,还是在生物样品的成像,以及在地表层析成像等诸多领域中都有着广泛的应用。迭代法可以表述成Ax=p,其中A为非奇异矩阵,X为未知数向量,P为已知向量,迭代法求解目标在于确定X的数值。在迭代重构图像方法中,A为加权因子,P为投影得到的图像像素值,X则为需要重构的图像的像素值。图I说明了采用迭代重构图像方法实现图像重构的过程。该方法通过赋O值或随机值或背投影方法获取用于迭代过程中的初值χ(°),然后经过多次的重投影和背投影的迭代过程,来求得最后满足精度要求的重构图像的像素值。 SIRT (联合迭代重构)算法在所有图像重构算法中重构效果较好,但其运算量巨大,因此需要提高运算效率,来满足快速图像重构的需求。可见,目前需要针对基于MIC平台设计一种迭代重构图像的方法,通过MIC高效简单快速的计算特性,能够极大地加速迭代重构方法的执行,从而快速地完成图像重构任务。
技术实现思路
本专利技术的目的是提供一种使用CPU+MIC协同计算模式的电镜三维图像重构方法。能够基于MIC众核架构并且使用CPU+MIC协同计算的快速图像重构。本专利技术的目的是按以下方式实现的,包括CPU端,MIC众核协处理器端以及CPU+MIC协同计算模式,其中(PU端负责将要进行迭代重构图像中的物体分成切片单元,向MIC卡传递重构所需要的值,CPU+MIC协同计算模式的框架搭建以及任务调度和参数初始化工作,而且在整个三维图像重构的计算任务CPU也会以Openmp多线程模式,依次通过重投影算法和背投影算法计算获取切片的重构图像值来动态参与; MIC众核协处理器负责多线程并行地根据切片的重构图像值和测量获取的该切片投影图像值,依次通过重投影算法和背投影算法计算获取切片的重构图像值,在MIC卡上也采用openmp多线程的方式来运算; 重构步骤如下 (PU端将要进行迭代重构图像中的物体分成切片,向MIC卡上传递重构计算所需要的值,以openmp多线程模式,并行执行迭代重构图像,具体包括 根据物体的大小将该物体分成切片,切片的数目为该物体宽度的像素值SY,切片在投影图像上的元素数为N = SX*ANG_NUM,SX为该物体长度的像素值,ANG_NUM为该物体旋转角度的总数;切片在重构图像上的元素数为M = SX*SZ,SZ为该物体高度的像素值;· CPU端将为图像数据的角度文件,thita等文件在MIC卡上开辟空间,确定其输入输出类型并且将其值offload到MIC卡上,CPU负责CPU+MIC协同计算模式的框架搭建以及任务调度,具体步骤包括 单节点服务器采用由双路6核CPU和2块KNF MIC卡组成的桌面服务器,在CPU+MICs协同计算中,把双路CPU和MIC卡都作为计算设备,这样每个单节点就相当于有3个计算设备,每个设备通过一个OpenMP线程进行控制; 假设单节点上,MIC卡的总数为M个,则节点上共M+1个设备,采用数据动态划分的方式,每次各个设备自动获取切片的输入数据,片数目>=1,数据处理完之后自动获取下一个切片数据,直到所有设备计算完成所有样本切片数据; 在MIC众核协处理器端通过赋O值或随机值或背投影方法获取切片的初始的重构图像值X (O),然后再通过重投影算法和背投影算法计算获取切片的重构图像值,具体步骤包括 根据赋初值得到的X (O)或上次迭代得到的X (k-Ι)进行重新投影得到一个投影图像值P计;根据赋初值得到的X(O)或上次迭代得到的x(k-l),测量得到的投影图像值P测和重投影计算得到的投影图像值P计进行反向投影得到重构图像X (k),背投影主要是进行X值的更新操作,通过多次的重投影和背投影操作可以得到满足精度要求的重构图像; 在图像重构中,测量物体的投影图像像素值P测的过程中,记物体的长为SX,宽为SY,高为SZ,旋转角度的总数为ANG_NUM,垂直于Y方向的面即为切片,共SY个切片,重构的过程以切片为单位,即每次重构一个切片,重构SY个切片就可以重构出物体模型; 分析串行迭代法中的性能瓶颈,找到耗时的重投影和背投影的代码,测试其在整个程序中所占的时间比例; 在每个切片的重构过程中,对于重投影过程,就是根据像素值X求得一个计算得到的投影值P测,P测共有SX*ANG_NUM个元素,这SX*ANG_NUM个元素的求解中没有任何的数据依赖性,以SX*ANG_NUM的并行度进行重投影算法的并行,在内核中,每个线程负责计算P测中的一个元素; 在每个切片的重构过程中,对于背投影过程,也就是求重构图像像素值X的过程,该算法就是根据P计和P测通过背投影的方式求重构图像像素值X,对于每一个切片,X共有SX*SY个元素,这SX*SY个元素的求解中没有任何的数据依赖性,以SX*SY的并行度进行重投影算法的并行,在内核中,每个线程负责计算X中的一个元素。附图说明图I是采用迭代重构图像方法实现图像重构的流程图。具体实施例方式·以下结合附图和优选实施例对本专利技术的技术方案进行详细地阐述。以下例举的实施例仅用于说明和解释本专利技术,而不构成对本专利技术技术方案的限制。本专利技术首先分析用SIRT串行方法进行电镜三维图像重构的性能瓶颈以及将串行方法移植到其他高性能平台上的难度,找到耗时的热点代码,测试其在电镜三维图像重构的整个过程中所占的时间比例以及分析提高整个方法性能的难度以及开发轴端。测试结果表明在采用SIRT联合迭代法进行图像重构时,大部分的时间均消耗在重投影和背投影两步骤中,这两个步骤不仅执行次数多,而且要计算的数据量大,同时,数据的计算要满足单指令多数据(SIMD, Single Instruction Multiple Data)的特点。因此,本专利技术将这两步骤作为加入MIC众核协处理器进行并行改进的重点,同时由于CPU端除了进行任务调度等功工作之余,也参与赋初值,再通过重投影算法和背投影算法计算获取切片的重构图像值的工作,即CPU+MIC协同计算的工作模式。。在图像重构中,测量获取本文档来自技高网
...

【技术保护点】
一种基于SIRT算法且使用CPU+MIC协同计算模式的电镜三维重构方法,其特征在于包括CPU端,?MIC众核协处理器端以及CPU+MIC协同计算模式,其中:CPU端:负责将要进行迭代重构图像中的物体分成切片单元,向MIC卡传递重构所需要的值,CPU+MIC协同计算模式的框架搭建以及任务调度和参数初始化工作,而且在整个三维图像重构的计算任务CPU也会以Openmp多线程模式,依次通过重投影算法和背投影算法计算获取切片的重构图像值来动态参与;MIC众核协处理器:负责多线程并行地根据切片的重构图像值和测量获取的该切片投影图像值,依次通过重投影算法和背投影算法计算获取切片的重构图像值,在MIC卡上也采用openmp多线程的方式来运算;????重构步骤如下:CPU端:将要进行迭代重构图像中的物体分成切片,向MIC卡上传递重构计算所需要的值,以openmp多线程模式,并行执行迭代重构图像,具体包括:根据物体的大小将该物体分成切片,切片的数目为该物体宽度的像素值SY,切片在投影图像上的元素数为N?=?SX*ANG_NUM,SX为该物体长度的像素值,ANG_NUM为该物体旋转角度的总数;切片在重构图像上的元素数为M?=?SX*SZ,SZ为该物体高度的像素值;CPU端将为图像数据的角度文件,thita文件在MIC卡上开辟空间,确定其输入输出类型并且将其值offload到MIC卡上,?CPU负责CPU+MIC协同计算模式的框架搭建以及任务调度,具体步骤包括:单节点服务器采用由双路6核CPU和2块KNF?MIC卡组成的桌面服务器,在CPU+MICs协同计算中,把双路CPU和MIC卡都作为计算设备,这样每个单节点就相当于有3个计算设备,每个设备通过一个OpenMP线程进行控制;假设单节点上,MIC卡的总数为M个,则节点上共M+1个设备,采用数据动态划分的方式,每次各个设备自动获取切片的输入数据,片数目>=1,数据处理完之后自动获取下一个切片数据,直到所有设备计算完成所有样本切片数据;在MIC?众核协处理器端:通过赋0值或随机值或背投影方法获取切片的初始的重构图像值X(0),然后再通过重投影算法和背投影算法计算获取切片的重构图像值,具体步骤包括:根据赋初值得到的X(0)或上次迭代得到的X(k?1)进行重新投影得到一个投影图像值P计;根据赋初值得到的X(0)或上次迭代得到的X(k?1),测量得到的投影图像值P测和重投影计算得到的投影图像值P计进行反向投影得到重构图像X(k),背投影主要是进行X值的更新操作,通过多次的重投影和背投影操作可以得到满足精度要求的重构图像;在图像重构中,测量物体的投影图像像素值P测的过程中,记物体的长为SX,宽为SY,高为SZ,旋转角度的总数为ANG_NUM,垂直于Y方向的面即为切片,共SY个切片,重构的过程以切片为单位,即每次重构一个切片,重构SY个切片就可以重构出物体模型;?分析串行迭代法中的性能瓶颈,找到耗时的重投影和背投影的代码,测试其在整个程序中所占的时间比例;在每个切片的重构过程中,对于重投影过程,就是根据像素值x求得一个计算得到的投影值P测,P测共有SX*ANG_NUM个元素,这SX*ANG_NUM个元素的求解中没有任何的数据依赖性,以SX*ANG_NUM的并行度进行重投影算法的并行,在内核中,每个线程负责计算P测中的一个元素;在每个切片的重构过程中,对于背投影过程,也就是求重构图像像素值x的过程,该算法就是根据P计和P测通过背投影的方式求重构图像像素值x,对于每一个切片,x共有SX*SY个元素,这SX*SY个元素的求解中没有任何的数据依赖性,以SX*SY的并行度进行重投影算法的并行,在内核中,每个线程负责计算x中的一个元素。...

【技术特征摘要】

【专利技术属性】
技术研发人员:卢晓伟张清
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1