一种实现p语言并发编程的流水线方法
【技术领域】
[0001]本发明涉及一种实现P语言并发编程的流水线方法
【背景技术】
[0002]编程语言从汇编语言,到过程语言,和对象语言,并向更高级语言发展,其抽象化程度越高,运行的效率会越低。而大数据处理,特别是多媒体数据的处理,计算量越来越大,对编程语言抽象化要求同时,编程语言运行的效率也提出了更高的要求。
[0003]并行计算指的是在同一时刻存在多于一个计算任务被执行。由于处理器主频提高的上限,使用多核处理器进行并行计算已成为主流。API(应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
[0004]编程语言可通过公布硬件来提供高度的可移植性,而不是将硬件隐藏在抽象之下。编程语言可显式地定义平台、上下文、以及在不同设备上调度工作,这样编程语言就可进行并发编程,提闻编程语言运行效率。
[0005]通常,相对于循环的关键路径长度来说,循环中包含的操作过少,很难使底层硬件保持忙碌状态。而软件流水线的循环可以将循环中连续的各个迭代重叠执行,在一个给定周期中,循环调度可以发射来自两三个不同迭代的操作。这种流水线化的循环包含一个定长的核,以及处理循环初始化和收尾代码。
[0006]本发明提供了一种基于并发编程的自制P编程语言框架(专利号:201410178067.4),实现P语言并发编程的流水线方法,循环核以交错方式执行循环的大部分迭代,其综合效果类似于硬件流水线,即可以并发处理不同的操作。
【发明内容】
[0007]本发明的目的在于提供一种实现P语言并发编程的流水线方法。本发明包括以下特征:
[0008]发明技术方案
[0009]一种实现P语言并发编程的流水线方法,其具体步骤如下:
[0010]1)基于并发编程的自制P编程语言框架,确定代码的功能单元;
[0011]2)估算核中耗费的周期数;
[0012]3)代码执行一段填补流水线的起始代码;
[0013]4)核以交错方式执行循环的大部分迭代;
[0014]5)如果处理过程失败,将核的大小加1并重试;
[0015]6)在循环核完成之后,执行对应的收尾代码来完成最后一次迭代。
【附图说明】
[0016]图1是实现P语言并发编程的流水线方法流程图。
【具体实施方式】
[0017]这种实现P语言并发编程的流水线方法,包括如下步骤:
[0018]1)基于并发编程的自制P编程语言框架,确定代码的功能单元;
[0019]2)估算核中耗费的周期数;
[0020]3)代码执行一段填补流水线的起始代码;
[0021]4)核以交错方式执行循环的大部分迭代;
[0022]5)如果处理过程失败,将核的大小加1并重试;
[0023]6)在循环核完成之后,执行对应的收尾代码来完成最后一次迭代。
【主权项】
1.一种实现P语言并发编程的流水线方法,其具体步骤如下:1)基于并发编程的自制P编程语言框架,确定代码的功能单元;2)估算核中耗费的周期数;3)代码执行一段填补流水线的起始代码;4)核以交错方式执行循环的大部分迭代;5)如果处理过程失败,将核的大小加1并重试;6)在循环核完成之后,执行对应的收尾代码来完成最后一次迭代。
【专利摘要】本发明公开了一种实现P语言并发编程的流水线方法,其具体步骤如下:基于并发编程的自制P编程语言框架,确定代码的功能单元;估算核中耗费的周期数;代码执行一段填补流水线的起始代码;核以交错方式执行循环的大部分迭代;如果处理过程失败,将核的大小加1并重试;在循环核完成之后,执行对应的收尾代码来完成最后一次迭代。
【IPC分类】G06F9/38, G06F9/44
【公开号】CN105278930
【申请号】CN201410268728
【发明人】张军
【申请人】张军
【公开日】2016年1月27日
【申请日】2014年6月17日