造价通

反馈
取消

热门搜词

造价通

取消 发送 反馈意见

多核平台下串行程序运行时的自动并行化加速方法发明内容

2022/07/1687 作者:佚名
导读:多核平台下串行程序运行时的自动并行化加速方法专利目的 《多核平台下串行程序运行时的自动并行化加速方法》的目的在于提供一种多核平台下串行程序运行时的自动并行化加速方法。该发明新增可共享读取的程序计数器寄存器组,并在操作系统中建立自动并行加速线程,选择一个线程作为加速的对象,然后实时地分析此线程将要执行到的指令代码,并对其中执行循环的指令代码进行修改,达到使被加速线程自动并行执行的目的。 多核平台下串

多核平台下串行程序运行时的自动并行化加速方法专利目的

《多核平台下串行程序运行时的自动并行化加速方法》的目的在于提供一种多核平台下串行程序运行时的自动并行化加速方法。该发明新增可共享读取的程序计数器寄存器组,并在操作系统中建立自动并行加速线程,选择一个线程作为加速的对象,然后实时地分析此线程将要执行到的指令代码,并对其中执行循环的指令代码进行修改,达到使被加速线程自动并行执行的目的。

多核平台下串行程序运行时的自动并行化加速方法技术方案

《多核平台下串行程序运行时的自动并行化加速方法》包括以下步骤:

第一步,建立一个共享读取的程序计数寄存器组SPC,该寄存器组中寄存器的个数与CPU核的数目相同,每个寄存器分别与对应的CPU核相连以实时地储存该CPU核的程序计数器值。

所述的共享读取是:每个CPU核实时读取寄存器组中每个寄存器存储的其它CPU核的程序计数器值。

第二步,当存在空闲的CPU核时,进行加速对象选择处理,得到自动并行加速线程的加速对象为线程P。

所述的加速对象选择处理,是:当正在运行且未被加速的用户线程中存在CPU占用率最高的线程时,则选择该线程作为自动并行加速线程的加速对象;否则,时间t后,再次选择正在运行且未被加速的用户线程中CPU占用率最高的线程作为自动并行加速线程的加速对象,直至得到自动并行加速线程的加速对象。

第三步,当线程P存在已分析指令集合Sp时,载入该集合Sp;否则,为线程P新建一个集合Sp,对线程P所在的CPU核进行读取处理,得到线程P所在的CPU核当前正在读取的指令Ic,并由Ic追踪线程P下一条将要执行指令的地址,将追踪分析的指令代码和跳转关系加入集合Sp中。

所述的读取处理,是:读取线程P所在的CPU核的程序计数寄存器的值,将得到的虚拟地址转换为物理地址,然后从该物理地址得到线程P所在的CPU核正在执行的指令Ic,当集合Sp中包括指令Ic时,删除集合Sp中Ic以前的指令记录,并根据集合Sp追踪线程P下一条将要执行的指令;否则,清空集合Sp

第四步,采用第三步的方法,得到线程P将要执行的所有指令,当集合Sp中每次加入条件转移指令后且集合Sp中存在循环代码时,进行进度校验和替换处理。

所述的进度校验,是:重新读取指令Ic,当指令Ic不在集合Sp中时,清空集合Sp,然后从指令Ic开始追踪;当指令Ic在集合Sp中、线程P走向该循环且线程P已经开始执行该循环,则选取循环接收后第一条语句作为待分析指令,并清空集合Sp;当指令Ic在集合Sp中、线程P走向该循环且线程P未执行该循环,则对该循环进行替换处理;当指令Ic在集合Sp中但线程P未走向该循环时,则删除集合Sp中Ic以前的指令记录,并继续追踪。

所述的替换处理,包括以下步骤:

1)当循环的总工作量大于阈值G时,生成并行化执行该循环的代码,执行该循环的代码出口语句跳转到原循环出口对应的语句,且将新生成的代码单独放在一个或若干个内存页中;否则,放弃替换该循环,并删除集合Sp中Ic以前的指令记录,继续追踪;

2)生成代码后,进行进度校验,当通过进度校验时则中断线程P,且中断线程P后再次进行校验,再次通过进度校验后,执行3);否则,线程P继续运行;

3)将1)生成的代码所在的内存页分配给线程P,并修改原循环起始地址的二进制代码为跳转到新生成代码的起始位置,在集合Sp中删除原循环对应指令,加入新生成的代码指令;

4)替换完成后通知线程P继续执行,继续分析后续代码。

所述的通过进度校验是指:指令Ic在集合Sp中、线程P走向该循环且线程P未执行该循环。

第五步,当线程P被调度出CPU核时,系统以中断方式将该事件连同当时的SPCp值发送给自动并行加速线程,当自动并行加速线程正在替换处理中时,则使用此时的SPCp值作为读取Ic的依据,继续执行替换处理直到退出该步骤;否则,自动并行加速线程根据当时的SPCp值读取Ic,清空或更新集合Sp,其结果等待线程P被调入时继续使用。

第六步,返回第二步,开始处理新的需要加速的线程。

多核平台下串行程序运行时的自动并行化加速方法改善效果

与2010年之前的技术相比,《多核平台下串行程序运行时的自动并行化加速方法》的有益效果是:2010年之前的技术使用不方便,需要重新开发程序或者重新编译原来的代码,而该发明在运行时对程序进行自动并行,不用对已有程序进行预先的处理,整个过程由操作系统完成,对于用户完全透明。该发明能够在有空闲的CPU核时自动利用空闲资源对程序进行并行加速,免去等待预先处理程序的时间,也省去用户手动转换程序的麻烦。

*文章为作者独立观点,不代表造价通立场,除来源是“造价通”外。
关注微信公众号造价通(zjtcn_Largedata),获取建设行业第一手资讯

热门推荐

相关阅读