应用程序生成系统和方法技术方案

技术编号:6666439 阅读:212 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种应用程序生成系统和方法。通过执行相对于源代码的库组件生成优化表以及通过使用所产生的优化表自动地分配计算资源,以及为混合系统(其中,资源通过网络相互连接起来)执行网络嵌入,通过计算机处理,生成优化的可执行代码。执行模式由数据并行化(并行度1,2,3,…,n)、加速器以及其使用(图形处理单元),以及其组合组成。在通过计算机处理使用所产生的优化表自动地分配计算资源的步骤中,假设要执行的处理通过流图来表示,对于流图上的所有用户定义的操作符(UDOP),执行从优化表中临时选择具有最短的流水线间距的执行模式的步骤,删除计算资源的约束的步骤,以及网络嵌入处理的步骤。

【技术实现步骤摘要】

本专利技术涉及用于生成在计算机上操作的应用程序的技术,具体而言,涉及用于生 成在与网络连接的混合系统上操作的应用程序的系统、方法,以及程序。
技术介绍
近年来,制造并销售了诸如IBM Roadrurmer和IBM BlueGene 之类的并行高速计算机。另外,还制造出了由所谓的混合系统构成的并行高速计算机,在所述混合系统中, 具有不同的体系结构的处理器通过多个网络或总线连接在一起。虽然如上所述计算机硬件的发展是显著的,在开发与混合系统兼容的应用程序的 过程中产生了困难。然而,在混合系统中,有各种处理器、加速器功能、硬件体系结构、网络拓扑等等。 因此,考虑到相异性,人工开发应用程序极为困难。例如,前述的IBM Roadrimner具有 两种类型的100,000个核。考虑到这种复杂的计算机资源,只有非常有限的专家能够生成 应用程序代码和资源映射。日本未经审查的专利出版物No. Hei 8-106444公开了包括多个CPU的信息处理器 系统,在将CPU替换为不同类型的CPU的情况下,该系统自动地生成并加载与CPU兼容的负 载模块。日本未经审查的专利出版物No. 2006-338660公开了一种通过提供下列步骤支持 并行/分布式应用程序的开发的方法在设计阶段提供用于表示连接性图的元素以及元素 之间的连接性的脚本语言;在实现阶段提供用于实现应用程序功能的预定义的模块;在实 现阶段提供用于定义模块执行类型的预定义的执行程序;在实现阶段提供用于在多个计算 设备之间分布应用程序的预定义的进程实例;以及在测试阶段提供用于监视和测试应用程 序的预定义的抽象层次。日本未经审查的专利出版物No. 2006-505055公开了用于编译根据高级语言标准 编写的计算机代码以生成包含用于可重新配置的处理器的硬件逻辑的统一的可执行元素, 用于常规处理器(指令处理器)的指令,以及用于管理在混合硬件平台上的执行的关联支 持代码的系统和方法。日本未经审查的专利出版物No. 2007-328415公开了一种异构型多处理器系统, 该系统包括具有相互不同的指令集和结构的多个处理器元件,用于基于多个任务之间的预 设的依存关系提取可执行的任务;基于所提取的任务之间的依存关系,将多个第一处理器 分配到通用处理器组;将第二处理器分配到加速器组;基于每一个任务的预设优先级值, 确定要从所提取的任务分配的任务;将由第一处理器执行确定的任务的执行成本与由第二 处理器执行该任务的执行成本进行比较;以及将任务分配到通用处理器组和加速器组中的 作为成本比较的结果被判断为执行成本比较低的那一个。日本未经审查的专利出版物No. 2007-328416公开了一种异构型多处理器系统,其中,由编译器自动地提取具有并行性的任务,从作为处理目标的输入程序中提取要由专 用处理器有效地处理的一部分,并估计处理时间,从而,根据PU特性来安排任务,由此进行 有效地并行地操作多个PU的调度。虽然前面引用的传统技术文件公开了为混合硬件平台编译源代码的技术,但是, 这些文件没有公开生成关于要使用的资源或处理速度而被优化的可执行代码的技术。现有技术文件专利文件日本未经审查的专利出版物No. Hei 8-106444日本未经审查的专利出版物No. 2006-338660日本未经审查的专利出版物No. 2007-328415日本未经审查的专利出版物No. 2007-328416
技术实现思路
本专利技术解决的问题因此,本专利技术的目的是提供能够生成可执行代码的代码生成技术,所述可执行代 码关于由多个计算机系统(可以通过网络相互连接)组成的混合系统上的资源的使用和执 行速度尽可能地优化。解决问题的手段本专利技术被提供来实现上面的目的,因此,本专利技术通过执行根据源代码的库组件生 成优化表以及通过使用所产生的优化表自动地分配计算资源的处理,以及通过计算机处理 为混合系统(其中资源通过网络相互连接)执行网络嵌入,生成优化的可执行代码。在生成优化表的处理中,测量资源和流水线间距(pipeline pitch)(即,没有优化 的情况和针对每一个库组件应用优化的情况所需的流水线处理的一级处理时间)并且它 们被注册为执行模式。对于每一个库组件,可以有多个执行模式。虽然注册通过增加资源 来改善流水线间距的执行模式,但是优选地不注册不通过增加资源来改善流水线间距的执 行模式。注意,以诸如C、c++、c#或Java 之类的任意程序语言编写并执行某一共同的功 能的一组程序被称为库组件。例如,在某些情况下,库组件相当于Simulink 中的功能 块,但是,在其他情况下,当以要实现的算法为单位查看时,由多个功能块构成的组合被视 为库组件。另一方面,执行模式由数据并行化(并行度1,2,3,一,η)、加速器以及其使用(图 形处理单元),以及其组合组成。在通过计算机处理使用所产生的优化表自动地分配计算资源的步骤中,假设要执 行的处理通过流图(stream graph)来表示,针对流图上的所有用户定义的操作符(UDOP), 执行为流水线处理的一级处理时间从优化表中临时选择具有最短的流水线间距的执行模式(具体而言,流图格式源代码上的所有组件)的步骤,删除计算资源的约束的步骤,以及 网络嵌入处理的步骤。在上文中,UDOP是像例如矩阵的乘积和计算之类的抽象处理的单元。此外,删除计算资源的约束的步骤包括下列步骤以升序在流图上列出每一个库 组件的流水线间距;以及从列表的顶部,参考优化表,将执行模式替换为其中消耗较少计算 资源的执行模式。执行网络嵌入的步骤包括下列步骤根据通信大小,按降序在流图上安排边缘,以 生成边缘列表;以及,优选地将边缘列表上的共享头部的两个UDOP分配到相同硬件资源。本专利技术的优点根据本专利技术,能够通过参考基于库组件所生成的优化表,生成关于混合系统上的 资源的使用和执行速度尽可能地优化的可执行代码。附图说明图1是示出用于实施本专利技术的硬件结构的概图的图示;图2是实施本专利技术的功能框图;图3是示出生成优化表的处理的流程图的图示;图4是示出生成执行模式的示例的图示;图5是示出数据相关的矢量的示例的图示,该矢量表示拆分数组用于并行处理的 条件;图6是示出优化表的示例的图示;图7是示出网络嵌入处理的概图的流程图的图示;图8是示出将计算资源分配给UDOP的处理的流程图的图示;图9是示出流图和可用资源的示例的图示;图10是示出在将计算资源分配给UDOP之后所需的资源的示例的图示;图11是示出分配改变处理的示例的图示;图12是示出群集处理的流程图的图示;图13是示出由执行模式扩大的流图的示例的图示;图14是示出将内核分配给节点的示例的图示;图15是示出群集分配处理的流程图的图示;图16是示出硬件配置的示例的图示;图17是示出路由表和网络容量表的示例的图示;以及图18是示出群集之间的连接的示例的图示。具体实施例方式下面,将根据附图详细描述本专利技术的优选实施例。除非另作说明,在各个附图中, 使用相同的附图标记来表示相同的元件。应该理解,下面的描述只是本专利技术的一个实施例, 并不打算将本专利技术限制到优选实施例中所描述的内容。参考图1,示出了实施本专利技术的硬件结构的框图。此结构包含芯片级别的混合节点 102、常规节点104、各自都具有CPU和加速器的混合节点10本文档来自技高网
...

【技术保护点】
一种通过计算机的处理生成在所述计算机上操作的应用程序的方法,包括下列步骤:准备用于生成所述应用程序的库组件;获取可用硬件资源的状态;对于所述库组件中的操作,根据所述可用硬件资源的状态生成一个或多个执行模式;以及测量每个执行模式在所述可用硬件资源上的执行速度,并将测量结果存储在优化表中,所述优化表包含所述执行模式、所述可用硬件资源、以及所述执行速度作为条目,所述优化表存储到计算机的存储装置中。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:村濑正名土居意弘前田久美子吉泽武朗小松秀昭
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US

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

1