当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于一个源程序的自动和指令指导并行化的多入口线程化方法和装置制造方法及图纸

技术编号:2875989 阅读:264 留言:0更新日期:2012-04-11 18:40
描述了一种用于编译一个源程序的方法和装置。定位在该源程序内的多个预定序列。在该源程序中、在每个预定序列的第一个指令之前插入一个开始代码。在该源程序中、在该开始代码之前插入一个调用代码,该调用代码寻址该开始代码并且传送每个序列到一个系统用于执行。最后,在该源程序中、在每个序列的最后一个指令之后插入一个停止代码,该停止代码发信号通知该系统逐步执行该序列。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术通常涉及编译器最优化技术,更具体地说,涉及一种用于一个源程序的自动和指令指导并行化的多入口线程化方法和装置。 专利技术
技术介绍
需要一个解法的计算问题的不断增加的复杂度反映在设计成能解决这样问题的计算机速度和性能方面的增加。随着CPU变得更快以及多处理器系统配置增加,必须改善程序性能而且必须使用用于编译和执行源程序的有效方法。并行处理快速地变成影响从家用计算机市场到商业应用的体系结构和软件设计的主流技术。由一个包含多个互连的处理器的多处理器计算机系统执行该并行应用以便互相交换数据。附图说明图1A是一个分布-存储器的多处理器计算机系统的框图。如在图1A中说明的那样,计算机系统100包含多个处理模块120。每个处理模块120都包含一个处理器122和存储器124。在计算机系统100中,能够如图所示互连任意数量的处理模块。图1B是一个共享-存储器的多处理器计算机系统的框图。如在图1B中说明的那样,计算机系统150包含多个连接到一个共享存储器170的处理器160。在一个实施例中,存储器170包含由每个处理器160占据的专有区域以及一个由所有处理器访问的公用区域。在计算机系统150中,由于由该共享存储器170施加的限制,仅仅可以互连一个有限数目的处理器160。并行处理方法使用自动工具,诸如自动并行化编译器,其编译该源程序并且便于该程序的并行处理。编译器检查整个源程序,收集并且重新组织该指令,并且把该源程序转换成为可由计算机执行的目标代码。一种编译器技术涉及使用概述技术,该概述技术把一个程序的选择区域转换成为概述或者单独的子例程。每个概述的子例程然后被发送给在一个并行执行的处理器中的一个线程。在1996年11月12-14日、加拿大多伦多的Proceedings of CASCON′96中、由Jyh HerngChow及其他人所著的automatic Parallelization for SymmetricShared-Memory Multiprocessors中详细地描述了使用概述技术的并行化。然而,使用概述技术的源程序并行化增加了该编译器生成多线索代码的复杂度。因为原有代码被分成分离的子例程,许多最初应用于一个单一子例程的标量优化,将不得不为几个不同的子例程调用,而创建一个生成较不有效代码并且是费时的过程。附图简要说明本专利技术在附图中通过举例、而不是限制进行了说明,在附图中相似的附图标记表示相似的单元,其中图1A是一个用于分布-存储器的多处理器计算机系统的一个实施例的框图。图1B是一个用于共享-存储器的多处理器计算机系统的一个实施例的框图。图2是用于一个计算机系统的一个实施例的一个框图。图3A是用于在一个计算机系统中获得一个可执行程序的处理过程的一个实施例的一个框图。图3B是用于在一个计算机系统中获得一个并行可执行程序的处理过程的一个实施例的一个框图。图4是一个用于一个多入口线程化方法的一个实施例的一个流程图,该多入口线程化方法用于自动和指令-指导地并行化一个源程序。详细说明在下面本专利技术实施例的详细说明中,参考其中类似参考指示类似单元,而且其中通过说明其中可以实践本专利技术的特定实施例来进行显示的附图。阐述了许多具体的细节以便提供对本专利技术的一个彻底理解。然而,对于本领域技术人员来说显然没有这些细节本专利技术也可以实现。在某些实例中,以框图形式显示众所周知的结构和设备,而不是详细地进行显示,以便避免模糊本专利技术。足够详细地描述这些实施例以允许在本领域的那些技术人员实践本专利技术,而且要理解可以使用其它实施例而且可以进行逻辑、机械、电及其它改变而不背离本专利技术的范围。依据在一个计算机存储器内的数据位上的算法和符号操作表示给出随后的某些部分详细说明。这些算法描述和表示是由在该数据处理领域的那些技术人员使用以最有效地把他们的工作实质传送给在本领域其它技术人员的装置。在这儿的一个算法,以及通常,被构思成为导致一个期望结果的动作的一个独立序列。该动作是那些要求物理量的物理操作的动作。通常,但不是必要的,这些量采取能够被存储、传送、组合、比较、及其他操作的、电或者磁信号的形式。主要由于公共使用的原因,已经证明有时把这些信号称为位、值、单元、符号、字符、术语、数字、等等是方便的。然而应该谨记,所有这些及类似的术语与适当的物理量相关联而且仅仅是应用于这些量的便利标记。除非特别地指出否则从下列讨论中可以明显地看出,在整个描述中要理解利用诸如“处理”或者“计算”或者“计算”或者“确定”或者“显示”等等术语的讨论,涉及一个计算机系统、或者类似电子计算设备的动作和处理过程,其操作和转换表示为在该计算机系统的寄存器和存储器中的物理(电子)量的数据为类似地表示为在计算机系统存储器或寄存器或者其他这样的信息存储、传输或者显示设备内作为物理量的其它数据。本专利技术还涉及一种用于在此执行该操作的装置。这个装置可以为所要求的目的特别构造,或者它可以包含一台有选择地由一个保存在计算机中的计算机程序激活或者重新配置的通用计算机。这样的一个计算机程序可以被保存在一个计算机可读存储介质中,该存储介质诸如,但不局限于,包括软盘、光盘、CD-ROM、和磁光盘在内的任何类型磁盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或者光卡、或者任何类别适于存储电子指令的介质,而且每个与一条计算机系统总线相连。在此给出的算法和显示本质上不与任何特定的计算机或者其它装置相关。可以和依据在此示教的程序一起使用各种通用系统,或者可以证明构造一个更专用的装置来执行所要求的方法是方便的。例如,能够以硬接线电路形式、通过编程一个通用处理器或者通过硬件和软件的任何组合实现依据本专利技术的任何方法。在本领域的一个技术人员将会立即理解能够用不同于如下所述的那些的计算机系统配置,包括手持设备、多处理器系统、基于微处理器或者可编程的消费者电子设备、网络PC、微型计算机、大型计算机、等等,实践本专利技术。该专利技术还能够在分布计算环境中实践,其中在分布计算环境中,任务是由通过一个通信网络连接的远程处理设备执行的。从以下描述中将会显现用于各个这些系统的所要求结构。依据计算机软件描述本专利技术中的方法。如果以一种符合一个认可标准的程序设计语言编写,被设计成能实现该方法的指令序列能够被编译用于在各种硬件平台上执行以及用于和各种操作系统接口。此外,不参考任何特定编程语言描述本专利技术。将要理解各种编程语言可以用来实现在此描述的本专利技术示教。此外,在本
通常以一种或者另一种形式(例如,程序、过程、应用…),把软件说成采取一个行动或者导致一个结果。这样的表达仅仅是由一台计算机执行该软件导致计算机的处理器执行一个动作或者产生一个结果的说法的一种简写方法。图2是用于一个计算机系统200的一个实施例的一个框图。计算机系统200包含一个系统总线201、或者类似于该系统总线的其它通信模块,用于传递信息;以及一个诸如处理器202的处理模块,连接到总线201用于处理信息。计算机系统200进一步包含一个诸如一个随机存取存储器(RAM)或者其它动态存储设备的主存储器204,其与总线201相连用于存储要由处理器202执行的信息和指令。主存储器204还可以被使用用于存储在由处理器202执行指令期间的临时变量本文档来自技高网
...

【技术保护点】
一种用于编译一个源程序的方法,包含: 在所述源程序内定位多个预定的序列; 在所述源程序中,在所述多个预定序列中的每个序列的第一个指令之前插入一个开始代码; 在所述源程序中在所述开始代码之前插入一个调用代码,所述调用代码寻址所述开始代码并且传送所述每个序列到一个系统用于执行;以及 在所述源程序中在所述多个序列中的所述每个序列的最后一个指令之后插入一个停止代码,所述停止代码发信号通知所述系统停止所述每个序列的执行。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:K柯克加尔德M吉尔卡P格雷X田
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1