CN1499369A - 用于在不同种类的体系结构中创建和执行集成可执行程序的方法和装置 - Google Patents
用于在不同种类的体系结构中创建和执行集成可执行程序的方法和装置 Download PDFInfo
- Publication number
- CN1499369A CN1499369A CNA2003101010799A CN200310101079A CN1499369A CN 1499369 A CN1499369 A CN 1499369A CN A2003101010799 A CNA2003101010799 A CN A2003101010799A CN 200310101079 A CN200310101079 A CN 200310101079A CN 1499369 A CN1499369 A CN 1499369A
- Authority
- CN
- China
- Prior art keywords
- code
- processor
- module
- attached
- counterfoil
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 28
- 230000006870 function Effects 0.000 claims abstract description 65
- 238000012545 processing Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 201000006549 dyspepsia Diseases 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000000699 topical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供用于在不同种类的体系结构中创建和执行集成可执行程序的方法和装置。编译器和链接器编译用于第一和第二处理器体系结构的源代码的不同段,并生成针对将代码和数据加载到远程节点以便使它们执行由数据上的传送码描述的操作的适当存根函数。编译器和链接器生成表示远程执行能力的存根对象,并生成用于封装在这种环境中执行代码所必需的传送的存根对象。
Description
技术领域
本发明通常涉及多重处理,更具体地说,涉及多个处理器间信息传递的标准化。
背景技术
通常包括采用耦合到同一计算机***的多个微处理器同时处理一批数据的并行处理在计算机行业中是很重要的。通常,有三种主要类型的并行处理。分别是采用共享存储器或采用分布式存储器或采用二者组合的并行处理***。典型地,共享存储器是能在单个操作诸如“载入”或“读取”命令中,可由多个处理器存取的存储器。分布式存储器是定位到各个处理器中的存储器。换句话说,在分布式***中,在单个存取操作中,每个存储器只能存取与它自己相关的存储器,但通常在单个操作中不能存取与其他处理器有关的存储器。最后一种是混合的或“异类的”并行处理,其中某个***存储器可由一个或多个处理器存取,而某个存储器则对至少一个处理器而言是分布式或局部的存储器。
一个这样的混合并行处理器***的例子包括至少一个精简指令集(RISC)主处理器单元(MPU),诸如PowerPCTM处理器,以及至少一个专用的或“附属”处理器单元(APU),诸如SynergisticTM APU(SPU)。典型地,采用MPU来执行通用码,其中通用码包括复杂的控制流并协调整个混合并行处理功能。MPU可以存取***存储器的整个范围。APU通常面向执行数据流操作。换句话说,APU计算高重复性的由高级计算机识别以控制决策率(decision ratio)的多媒体、图形、信号或网络处理的工作量。在传统的混合***中,APU不对***存储器进行存取,并且其自身存储器,即局部存储器,通常小于共享存储器。
通常,当采用混合***提供较高的计算性能时,对程序设计模型提出了相当大的挑战。一个这样的问题与APU相关,即APU不能直接寻址***存储器。因此,任何将在APU上运行的代码在能在APU上执行之前,必须传送到一个与APU相关的本地存储器。另外,APU和MPU可以具有不同的指令集。
然而,在程序设计过程中,传统的编译器通常不指定将在混合***中的MPU或APU上运行的信息序列,诸如专用码序列或数据。相反,程序员决定如何将代码按功能分配给APU或MPU。这种对处理器的代码分配通常带来程序设计过程的低效。另外,没有用于在附属处理器和主处理器之间传递信息的标准程序设计“工具箱”所述信息为正文(即,代码)或数据。因此,程序员通常没有标准的格式来传递这种信息序列,这也导致了程序设计过程的低效。
因此,需要一种克服传统***的缺陷的程序设计环境,该环境允许MPU和APU的***化程序设计以及在MPU和APU之间传送代码和数据。
发明内容
本发明提供编译和使用用在分布式计算***中的代码。将该代码划分成多个模块,其中模块包括至少一个主处理器代码模块和至少一个附属处理器代码模块。选择代码以便被封装在至少一个主处理器代码模块中,其中将所选择的代码目标化为由至少一个附属处理器采用。编译至少一个主处理器代码模块和至少一个选定的附属处理器代码模块。由选定的至少一个附属处理器模块生成存根函数(stubfunction)。将目标化为用于主处理模块的所编译的处理器代码链接到至少一个存根函数。创建所链接的对象集成可执行程序。
附图说明
为更全面地理解本发明及其优点,现在将参考下述结合附图的详细描述,其中:
图1示意性地描述用于执行集成可执行程序的包括存根函数的分布式处理***环境;
图2示例说明用于编译和使用指定用于分布式计算***中的多个执行环境的代码的方法;
图3A描述用于可采用来从MPU向APU传送数据的存根函数的“C”程序设计语言伪代码;以及
图3B描述用于可采用来从MPU向APU传送数据的存根函数的“C++”程序设计语言伪代码。
具体实施方式
在下述讨论中,阐述了多个详细说明以提供对本发明的全面理解。然而,本领域的技术人员将意识到没有按这些详细说明,也可实施本发明。在其他实例中,以示意性或框图的形式示例说明了公知的元件以便不会在不必要的细节方面难以理解本发明。另外,对大多数零件来说,已经省略了有关网络通信、电磁信令技术等等的详细说明,因为认为这些详细说明对获得全面理解本发明不是必要的,并且认为是在相关技术的普通技术人员的理解之内。
进一步提出除非指出,否则在此描述的所有功能可用硬件或软件,或它们的一些结合来执行。然而,在优选实施例中,由处理器,诸如计算机或电子数据处理器,根据代码,诸如计算机程序代码、软件和/或集成电路来执行这些功能,除非另外指出,将集成电路代码化来执行这些功能。
参考图1,标记100通常表示不同种类的并行处理体系结构,该体系结构通过采用存根函数而提供用于传递信息的一个环境。体系结构100包括分布式计算环境110和共享***存储器160,二者由接口150电耦合。环境110包括多个APU120,每个APU具有其各自的本地存储器125。环境110进一步包括MPU130,诸如RISC处理器,以及它同速的超高速缓存135。在一个实施例中,通过信号通道145,将MPU130耦合到***存储器160。在一个实施例中,APU包括SPU。在一个实施例中,采用单个MPU130。而在另一实施例中,采用多个MPU130。
环境110进一步包括一个存储流控制器(MFC)140。通常,MFC140能够进行数据传送以及MPU130和APU120处理器间的同步能力,并用于主***存储器160和局部存储器125间的数据传送。在图1中,通过接口150,将MFC140耦合到***存储器160。
通常,当主处理器130或APU120请求时,MFC140允许***存储器160和APU120的局部存储器125间的传送信息,包括文本(即,代码)和数据。因为APU120不能直接存取***存储器160,在请求在APU120或MPU130上运行的传送函数,诸如存根函数时,MFC140在***存储器160和APU120的局部存储器125间传送信息。在一个实施例中,MFC140包括一个直接存储存取(DMA)设备。
体系结构100是一个在其中运行可执行程序的环境,其中可执行程序具有嵌入其中的一个存根函数或多个存根函数。在该存根函数中,将由APU120采用的代码和数据封装为一个软件“对象”。通常,存根函数命令MFC140在两个独立的执行环境,诸如***存储器160和局部存储器125间传送信息。存根函数使得MPU130将代码和数据流向APU120的局部存储器125以便处理,以便APU120执行该处理,以及以便APU120之后将处理过的数据流回MPU120。由APU120执行的数据和代码的该处理对MPU130是不可见的,并同时允许MPU130执行其他数据处理或程序流控制任务。
典型地,存根函数命令MFC140将代码和数据从***存储器160的指定地址流向一个选定的APU120的局部存储器125内的一个指定地址。存根函数也命令MFC140以指令APU120处理该数据。由存根函数向APU120发出的命令是远程命令。通常,远程命令是从第一执行环境发送到第二执行环境的命令。典型地,存根函数是APU120的单个入口点。换句话说,APU120或其相关的局部存储器125通常仅可通过该存根函数来存取。
在另一实施例中,被传送的代码在其中还包含另一存根函数。当APU120完成数据处理时,该被传送的存根函数使得APU120命令MFC140将处理过的数据发送回共享存储器160。在该实施例中,MPU130中的存根函数轮询APU125来确定APU120是否完成了处理。如果APU120完成了处理,那么由MPU130执行的存根函数命令MFC140将处理过的数据发送回***存储器160。在另一实施例中,当所有存根函数驻留在***存储器160中时,由MPU130执行所有存根函数。然而,并非所有MFC命令必定需要与存根函数关联。
现在转到图2,所示的是用于编译和使用代码,从而创建具有嵌入存根函数的集成可执行程序的方法200。在步骤210中,将源代码划分成将在该一个或多个APU120以及该MPU130上运行的模块,从而产生APU120代码模块和MPU130代码模块。可以由编译器或通过编程人员的干预,或两种方法的结合来执行该划分。划分可基于诸如所需的数据操作、数据操作的重复性等等的考虑。将在选定的APU120上运行的模块的例子是三角函数、矩阵运算、平方根计算等等。
在步骤220中,编译器(或程序员)选择将封装在MPU130代码模块或多个代码模块中的至少一个单独的APU120代码模块。在步骤230中,用程序设计语言编写的划分模块由编译器编译。程序设计语言的一些例子是“C”、“C++”或“Assembler”,但是其他程序设计语言也在本发明的范围之内。该编译产生多个适合于在一个或多个单独的处理体系结构,诸如APU120的局部存储器125和耦合到该MPU140或多个MPU140的***存储器160中执行的多个目标代码模块。
指定用于一个或多个APU120或一个或多个MPU130的所编译的目标代码模块可是源自几个不同源文件的代码或数据的结合结果。同样,多于一个的目标代码部分能包括同样的代码或数据。通常,步骤230将能在一个操作中载入到选定的APU120的相应局部存储器125的所有代码或数据结合成一个相连区中。另外,步骤230将编译的任何文件结合到用于MPU130的目标模块中。
在步骤240,连接器通过将步骤220中选定的至少一个编译过的模块进行封装作为存根函数来生成存根函数,其中该存根函数进一步包括在APU120和MPU130间传送代码和数据的装置。存根函数包括“对象”,其中代码、数据以及用于存取代码和数据的装置均包含在存根函数中。用于在MPU130和目标化APU120间流动数据的装置通常包括对MFC140的命令。
在步骤250中,连接器将指定用于该APU120的、已经封装为将在MPU130上执行的该模块内的存根函数的至少一个模块捆绑到指定用于该APU120或多个APU120的任何其它编译过的模块。连接器将连接的APU120编译模块捆绑到指定用于MPU130的编译模块。在一个实施例中,连接器首先连接所有目标化为附属存储器120的模块,然后进一步将这些被连接的模块连接到目标化为MPU130的模块。
现在转到图3A,所公开的是以“C”编程语言编程的用于存根例程(stub routine)的伪代码,该存根例程用于将信息从***存储器160传送到局部存储器125。该存根例程包括头文件“apu_xfer.h”,其表示影响MFC操作,诸如移动数据块、启动执行等等所必要的***级操作的接口标准。
通常,存根函数包括一个软件“对象”,该对象进一步包括将要流入APU120的嵌入代码和数据,以及将代码和数据从***存储器160传送到APU120的软件装置。在图3A中,该代码和数据分别为apu_text[]和apu-data[]数组。另外,在图3A中,存根函数包括两个子函数。这两个子函数是涉及由该示例性实施例中的头文件“apu_xfer.h”定义的***级操作的apu_transfer_block()子函数和apu_start-exec()子函数调用。
通常,apu_transfer_block()子函数命令MFC140向选定的APU120发送信息,诸如代码和数据。apu_transfer_block()子函数在其头部内包括四个字段的信息。在图3A中,第一字段的信息,“apuno”是文本或数据将流向其中的APU120的标记。信息的第二字段包括在其中存储信息的APU120的局部存储器125内的存储器地址。在图3A中,对第一apu_transfer_block()子函数,该示例性值为“116”,对第二apu_transfer_block()子函数,该示例性值为“32768”。第三字段包括将发送的文本或数据的标记。在图3A中,分别为apu_text[]和apu_data[]。最后,信息的长度被发送到第四字段中。这些示例性值对apu_text和apu_data分别为“172”和“16”。
图3A的存根函数进一步包括启动选定的APU120处理数据的子函数。该子函数,“apu_start_exec()”包括两个字段。第一字段是启动处理的选定APU120的标记。第二字段是选定的存储器120的局部存储器125内文本或可执行代码的地址。可执行代码的文本的地址传送到选定的APU120,在此搜索存储器以便启动执行流入的代码。
简单地转到图3B,所示的为能用作基类以导出用于不同模块的存根的“C++”代码类,这些不同的模块提供公用元函数以便载入、传送参数、启动执行以及检索结果。在一个示例性实施例中,定义了公用类函数,该函数具有virtual int spu_load()子函数、virtualint spu_load_data()子函数和virtual int spu_load_text()子函数。在一个实施例中,spu_load()执行spu_load_data()子函数和spu_load_text()子函数的功能。还有一个virtual spu_xfer_parm()子函数。
在该示例性实施例中,由用户定义型parm_descriptor表示参数,该parm_descriptor已被充分定义以容纳可传递给一个存根的不同参数集。在其他实施例中,可使用不同的约定,诸如,通过使用c/c++“stdarg”工具来传递参数。如本领域的技术人员将理解的,“stdarg”是用于处理向一个函数传递一个可变调用定义的参数(关于数量和数据类型方面的变量)的C语言标准的一部分。在另一实施例中,从基类apu_root_function导出的每个子类可具有其自身的、也用于提供参数的调用元函数。然后这些函数可直接影响到向选定的APU传送参数,或调用一个元函数,诸如spu_xfer_parm(),或其他函数来将一个或多个数据项拷贝到一个局部APU存储器。还有一个子函数,virtual int spu_start(),用于起动APU120处理数据,或另一子函数,virtual int spu_retrieve(),用于从该APU120提取处理过的数据。
应当理解本发明能采用各种形式和实施例。因此,在不脱离本发明的精神或范围的情况下,在上文中可做出几种改变。在此略述的能力考虑到各种程序设计模式的可能性。不应当将该公开的内容错误地当作推荐任何具体的程序设计模型,而是针对在其上建立这些程序设计模型的基本机制。
通过引用某些其优选的实施例,由此描述了本发明,注意到所公开的实施例实际上是示例性的而不是限制以及在上述公开的内容中考虑到大范围的变化、修改、改变和取代,以及在某些实例中,可采用本发明的一些特征而不必相应的使用其他特征。基于回顾优选实施例的上述描述,许多这些变化和修改对本领域的技术人员来说是显而易见和所希望的。因此,概括和用与本发明的范围一致的方式构造附加权利要求书是适当的。
Claims (28)
1、一种用于在分布式计算***中编译和使用代码的方法,所述方法包括:
将源代码划分成多个模块,其中所述模块包括至少一个主处理器代码模块和至少一个附属处理器代码模块;
选择将被封装在所述至少一个主处理器代码模块中的代码,其中所述选定代码被目标化为由至少一个附属处理器采用;
编译所述至少一个主处理器代码模块以及至少一个选定的附属处理器代码模块;
根据所述选定的至少一个附属处理器模块生成至少一个存根函数;
链接所述至少一个主处理器编译代码模块和所述至少一个存根函数;以及
创建一个链接对象集成可执行程序。
2、如权利要求1所述的方法,进一步包括采用所述存根函数来将信息从一个共享存储器传送到所述附属处理器的步骤。
3、如权利要求1所述的方法,进一步包括轮询所述至少一个附属处理器有关它是否已经完成采用与所述存根函数有关的信息的步骤。
4、如权利要求1所述的方法,进一步包括创建可用来在由所述附属处理器执行的数据处理结果中检索与所述存根函数相关的信息的步骤。
5、如权利要求1所述的方法,其中所述编译步骤进一步包括确定用于将数据从至少一个***存储器传送到至少一个附属处理器单元的调用子程序。
6、如权利要求1所述的方法,进一步包括采用存储流控制器将与所述存根函数有关的信息从一个***存储器传送到所述至少一个附属处理器的局部存储器的步骤。
7、如权利要求1所述的方法,进一步包括将所述链接存根对象存储在共享存储器中的步骤。
8、如权利要求1所述的方法,进一步包括采用网络上的节点,所述节点包括单独的执行空间。
9、如权利要求1所述的方法,其特征在于所述划分步骤基于来自程序员的指导。
10、如权利要求1所述的方法,其特征在于所述划分步骤基于来自编译器的指导。
11、一种用于在单独的执行环境中执行计算机程序的方法,包括:
在第一执行环境中调用一个存根函数;以及
调用第二函数,其中在第二执行环境中编码所述第二函数,以及其中所述调用包括由所述存根函数进行远程调用。
12、如权利要求11所述的方法,其特征在于由所述存根函数进行远程调用的步骤包括将封装的编译文本传递给所述至少一个附属处理器。
13、如权利要求11所述的方法,其特征在于由所述存根函数进行远程调用的步骤包括将数据传递给所述至少一个附属处理器。
14、如权利要求11所述的方法,其特征在于所述远程调用的步骤包括传送一个地址,通过所述地址,将所述信息存储在所述局部存储器中。
15、如权利要求11所述的方法,其特征在于所述远程调用的步骤包括传送多个附属处理器单元中的一个选定单元的标记。
16、如权利要求11所述的方法,其特征在于所述远程调用的步骤包括传送将被传送的信息大小的标记。
17、如权利要求11所述的方法,其特征在于所述远程调用的步骤包括从一个共享存储器存取将被传送的信息的相应地址作为包含在所述存根函数中的共享存储器地址标记。
18、一种适于利用一个可执行文件的并行处理器***,所述并行处理器***包括:
至少一个主处理器;
至少一个附属处理器;
所述可执行文件,其中所述文件适合采用所述至少一个主处理器和所述至少一个附属处理器,所述可执行文件进一步包括至少一个嵌入的存根函数。
19、如权利要求18所述的并行处理器***,其特征在于所述至少一个附属处理器采用其自己的单独的执行环境。
20、如权利要求18所述的并行处理器***,其特征在于所述至少一个主处理以及所述至少一个附属处理器包括多个节点。
21、如权利要求18所述的并行处理器***,进一步包括至少一个存储流控制器,其中所述存根函数可用于控制所述存储流控制器以便在一个共享存储器和一个局部存储器间传送标记。
22、如权利要求18所述的并行处理器***,进一步包括一个局部存储器,其与至少一个附属处理器中的每一个相关联。
23、如权利要求18所述的并行处理器***,其特征在于所述存储流控制器可进一步用于一个主存储器和一个局部存储器间的数据传送。
24、如权利要求23所述的并行处理器***,其特征在于所述存储流控制器包括一个直接存储存取装置。
25、如权利要求18所述的并行处理器***,其特征在于所述主处理器采用精简指令集体系结构。
26、如权利要求18所述的并行处理器***,其特征在于所述主处理器和所述附属处理器采用不同的指令集。
27、一种计算机程序产品,用于在分布式计算***中编译和使用代码,所述计算机程序产品具有其上嵌入有一个计算机程序的介质,所述计算机程序包括:
计算机代码,用于将源代码划分成多个模块,其中所述模块包括至少一个主处理器代码模块和至少一个附属处理器代码模块;
计算机代码,用于选择将被封装在所述至少一个主处理器代码模块中的代码,其中所述选定代码被目标化为由所述至少一个附属处理器采用;
计算机代码,用于编译所述至少一个主处理器代码模块以及至少一个选定的附属处理器代码模块;
计算机代码,用于根据所述选定的至少一个附属处理器模块生成至少一个存根函数;
计算机代码,用于链接所述至少一个主处理器编译代码模块和至少所述至少一个存根函数;以及
计算机代码,用于创建一个链接对象集成可执行程序。
28、一种用于在分布式计算机***中编译和使用代码的处理器,所述处理器包括一个计算机程序,所述计算机程序包括:
计算机代码,用于将源代码划分成多个模块,其中所述模块包括至少一个主处理器代码模块和至少一个附属处理器代码模块;
计算机代码,用于选择将被封装在所述至少一个主处理器代码模块中的代码,其中所述选定代码被目标化为由所述至少一个附属处理器采用;
计算机代码,用于编译所述至少一个主处理器代码模块以及至少一个选定的附属处理器代码模块;
计算机代码,用于根据所述选定的至少一个附属处理器模块生成至少一个存根函数;
计算机代码,用于链接所述至少一个主处理器编译代码模块和至少所述至少一个存根函数;以及
计算机代码,用于创建一个链接对象集成可执行程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/280,244 | 2002-10-24 | ||
US10/280,244 US7243333B2 (en) | 2002-10-24 | 2002-10-24 | Method and apparatus for creating and executing integrated executables in a heterogeneous architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1499369A true CN1499369A (zh) | 2004-05-26 |
CN1271516C CN1271516C (zh) | 2006-08-23 |
Family
ID=32106884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200310101079.9A Expired - Fee Related CN1271516C (zh) | 2002-10-24 | 2003-10-15 | 在分布式计算***中创建和执行可执行程序的方法和*** |
Country Status (2)
Country | Link |
---|---|
US (1) | US7243333B2 (zh) |
CN (1) | CN1271516C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102741828A (zh) * | 2009-10-30 | 2012-10-17 | 英特尔公司 | 对计算机平台的异构处理器的双向通信支持 |
CN101727316B (zh) * | 2008-10-22 | 2013-01-02 | 上海超级计算中心 | 适于集群***的并行程序集成开发***及其应用实现方法 |
WO2015032311A1 (zh) * | 2013-09-03 | 2015-03-12 | 华为技术有限公司 | 一种代码生成方法、编译器、调度方法、装置及调度*** |
CN105308565A (zh) * | 2013-05-31 | 2016-02-03 | 微软技术许可有限责任公司 | 深度并行的源代码编译 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002101511A2 (en) * | 2001-06-13 | 2002-12-19 | Rivar Technologies, Inc. | System and method for integrated web-based software code environment |
JP2004171234A (ja) * | 2002-11-19 | 2004-06-17 | Toshiba Corp | マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム |
US7219279B2 (en) * | 2005-01-18 | 2007-05-15 | International Business Machines Corporation | Software testing |
US8838974B2 (en) * | 2005-07-15 | 2014-09-16 | The Mathworks, Inc. | System and method for verifying the integrity of read-only components in deployed mixed-mode applications |
CN100495328C (zh) * | 2005-08-08 | 2009-06-03 | 中国科学院研究生院 | 用于开发计算机***的装置及其方法 |
US7941791B2 (en) * | 2007-04-13 | 2011-05-10 | Perry Wang | Programming environment for heterogeneous processor resource integration |
US8214808B2 (en) * | 2007-05-07 | 2012-07-03 | International Business Machines Corporation | System and method for speculative thread assist in a heterogeneous processing environment |
US8276132B1 (en) * | 2007-11-12 | 2012-09-25 | Nvidia Corporation | System and method for representing and managing a multi-architecture co-processor application program |
US8281294B1 (en) * | 2007-11-12 | 2012-10-02 | Nvidia Corporation | System and method for representing and managing a multi-architecture co-processor application program |
FR2928753B1 (fr) * | 2008-03-14 | 2012-09-21 | Pierre Fiorini | Architecture de traitement informatique accelere. |
US8150902B2 (en) | 2009-06-19 | 2012-04-03 | Singular Computing Llc | Processing with compact arithmetic processing element |
GB0911099D0 (en) * | 2009-06-26 | 2009-08-12 | Codeplay Software Ltd | Processing method |
US9063805B2 (en) | 2009-11-25 | 2015-06-23 | Freescale Semiconductor, Inc. | Method and system for enabling access to functionality provided by resources outside of an operating system environment |
EP2526494B1 (en) * | 2010-01-21 | 2020-01-15 | SVIRAL, Inc. | A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations |
US9348661B2 (en) * | 2010-03-11 | 2016-05-24 | International Business Machines Corporation | Assigning a unique identifier to a communicator |
US20110225297A1 (en) * | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue |
US9448850B2 (en) * | 2010-03-11 | 2016-09-20 | International Business Machines Corporation | Discovering a resource in a distributed computing system |
US8621446B2 (en) * | 2010-04-29 | 2013-12-31 | International Business Machines Corporation | Compiling software for a hierarchical distributed processing system |
US8645934B2 (en) | 2010-05-06 | 2014-02-04 | International Business Machines Corporation | Simultaneous compiler binary optimizations |
US8589867B2 (en) * | 2010-06-18 | 2013-11-19 | Microsoft Corporation | Compiler-generated invocation stubs for data parallel programming model |
WO2012019111A2 (en) * | 2010-08-06 | 2012-02-09 | Frederick Furtek | A method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system |
US8949777B2 (en) | 2011-04-22 | 2015-02-03 | Intel Corporation | Methods and systems for mapping a function pointer to the device code |
US9195443B2 (en) | 2012-01-18 | 2015-11-24 | International Business Machines Corporation | Providing performance tuned versions of compiled code to a CPU in a system of heterogeneous cores |
US20140068581A1 (en) * | 2012-08-30 | 2014-03-06 | International Business Machines Corporation | Optimized division of work among processors in a heterogeneous processing system |
US9094395B2 (en) | 2013-06-17 | 2015-07-28 | Seven Networks, Inc. | Secure mechanism to deliver mobile traffic management configuration upon stub activation on a mobile device of a global service discovery server |
WO2014205012A1 (en) * | 2013-06-17 | 2014-12-24 | Seven Networks, Inc. | Secure mechanism to deliver mobile traffic management configuration upon stub activation on a mobile device of a global service discovery server |
US10185547B2 (en) * | 2015-06-26 | 2019-01-22 | Intel Corporation | Techniques for distributed operation of secure controllers |
CN110147238B (zh) * | 2019-05-29 | 2022-11-11 | 中国人民解放军战略支援部队信息工程大学 | 一种程序编译方法、装置及*** |
US11467812B2 (en) | 2019-11-22 | 2022-10-11 | Advanced Micro Devices, Inc. | Compiler operations for heterogeneous code objects |
US11256522B2 (en) * | 2019-11-22 | 2022-02-22 | Advanced Micro Devices, Inc. | Loader and runtime operations for heterogeneous code objects |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4882674A (en) | 1985-03-05 | 1989-11-21 | Wang Laboratories, Inc. | Apparatus and method for control of one computer system by another computer system |
DE4131380A1 (de) | 1991-09-20 | 1993-03-25 | Siemens Ag | Verfahren zur adaption einer objektorientierten applikation |
CA2061117C (en) * | 1991-12-02 | 1998-09-29 | Neta J. Amit | Apparatus and method for distributed program stack |
US5339430A (en) | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
EP0607668B1 (en) | 1993-01-21 | 1999-03-03 | Advanced Micro Devices, Inc. | Electronic memory system and method |
US5664159A (en) | 1994-03-08 | 1997-09-02 | Exponential Technology, Inc. | Method for emulating multiple debug breakpoints by page partitioning using a single breakpoint register |
US5850518A (en) | 1994-12-12 | 1998-12-15 | Northrup; Charles J. | Access-method-independent exchange |
US5895503A (en) | 1995-06-02 | 1999-04-20 | Belgard; Richard A. | Address translation method and mechanism using physical address information including during a segmentation process |
US6138140A (en) | 1995-07-14 | 2000-10-24 | Sony Corporation | Data processing method and device |
US5812848A (en) | 1995-08-23 | 1998-09-22 | Symantec Corporation | Subclassing system for computer that operates with portable-executable (PE) modules |
US5887172A (en) * | 1996-01-10 | 1999-03-23 | Sun Microsystems, Inc. | Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends |
US6006248A (en) | 1996-07-12 | 1999-12-21 | Nec Corporation | Job application distributing system among a plurality of computers, job application distributing method and recording media in which job application distributing program is recorded |
US6145119A (en) | 1997-03-31 | 2000-11-07 | International Business Machines Corporation | Programming development environment for intranet and internet applications employing unique project data structure |
US6061517A (en) | 1997-03-31 | 2000-05-09 | International Business Machines Corporation | Multi-tier debugging |
US6157960A (en) | 1997-05-07 | 2000-12-05 | International Business Machines Corporation | Technique for programmatically creating distributed object programs |
US6219803B1 (en) | 1997-07-01 | 2001-04-17 | Progress Software Corporation | Testing and debugging tool for network applications |
US6138209A (en) | 1997-09-05 | 2000-10-24 | International Business Machines Corporation | Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof |
US6209061B1 (en) | 1998-03-02 | 2001-03-27 | Hewlett-Packard Co. | Integrated hierarchical memory overlay having invariant address space span that inactivates a same address space span in main memory |
US6077312A (en) | 1998-05-06 | 2000-06-20 | International Business Machines Corporation | Apparatus, program product and method of debugging utilizing a context sensitive breakpoint |
US6427234B1 (en) | 1998-06-11 | 2002-07-30 | University Of Washington | System and method for performing selective dynamic compilation using run-time information |
US6119247A (en) | 1998-06-22 | 2000-09-12 | International Business Machines Corporation | Remote debugging of internet applications |
US6760907B2 (en) | 1998-06-30 | 2004-07-06 | Sun Microsystems, Inc. | Code generation for a bytecode compiler |
US6480818B1 (en) | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US6704842B1 (en) | 2000-04-12 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Multi-processor system with proactive speculative data transfer |
US6738977B1 (en) | 2000-05-31 | 2004-05-18 | International Business Machines Corporation | Class sharing between multiple virtual machines |
US6779049B2 (en) | 2000-12-14 | 2004-08-17 | International Business Machines Corporation | Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism |
US6735601B1 (en) * | 2000-12-29 | 2004-05-11 | Vmware, Inc. | System and method for remote file access by computer |
US7197600B2 (en) * | 2001-02-16 | 2007-03-27 | Broadcom Corporation | Transferring data along with code for program overlays |
US6526491B2 (en) | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US6968546B2 (en) | 2001-03-30 | 2005-11-22 | Intel Corporation | Debugging support using dynamic re-compilation |
US7222332B2 (en) * | 2002-10-24 | 2007-05-22 | International Business Machines Corporation | Method and apparatus for overlay management within an integrated executable for a heterogeneous architecture |
-
2002
- 2002-10-24 US US10/280,244 patent/US7243333B2/en not_active Expired - Fee Related
-
2003
- 2003-10-15 CN CN200310101079.9A patent/CN1271516C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727316B (zh) * | 2008-10-22 | 2013-01-02 | 上海超级计算中心 | 适于集群***的并行程序集成开发***及其应用实现方法 |
CN102741828A (zh) * | 2009-10-30 | 2012-10-17 | 英特尔公司 | 对计算机平台的异构处理器的双向通信支持 |
CN105308565A (zh) * | 2013-05-31 | 2016-02-03 | 微软技术许可有限责任公司 | 深度并行的源代码编译 |
CN105308565B (zh) * | 2013-05-31 | 2019-04-02 | 微软技术许可有限责任公司 | 深度并行的源代码编译 |
WO2015032311A1 (zh) * | 2013-09-03 | 2015-03-12 | 华为技术有限公司 | 一种代码生成方法、编译器、调度方法、装置及调度*** |
CN104423994A (zh) * | 2013-09-03 | 2015-03-18 | 华为技术有限公司 | 一种代码生成方法、编译器、调度方法、装置及调度*** |
CN104423994B (zh) * | 2013-09-03 | 2018-05-11 | 华为技术有限公司 | 一种代码生成方法、编译器、调度方法、装置及调度*** |
US10007495B2 (en) | 2013-09-03 | 2018-06-26 | Huawei Technologies Co., Ltd. | Code generation method for scheduling processors using hook function and exception handling function |
Also Published As
Publication number | Publication date |
---|---|
US20040083462A1 (en) | 2004-04-29 |
CN1271516C (zh) | 2006-08-23 |
US7243333B2 (en) | 2007-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1271516C (zh) | 在分布式计算***中创建和执行可执行程序的方法和*** | |
CN100533416C (zh) | 控制处理环境的数据传输的方法和*** | |
JP3437849B2 (ja) | オブジェクト指向プログラミングを支援するデータベース管理システム及び方法 | |
US7098921B2 (en) | Method, system and computer program product for efficiently utilizing limited resources in a graphics device | |
US6631515B1 (en) | Method and apparatus to reduce code size and runtime in a Java environment | |
EP0387172A2 (en) | Procedure call interface | |
CN100414517C (zh) | 异构体系结构中的覆盖生成、管理的方法和设备 | |
CN100350381C (zh) | 用于以一种语言独立语法记录宏的方法和*** | |
US20060041880A1 (en) | Adaptive class loading | |
CN1752946A (zh) | 一种嵌入式***的调试方法及其*** | |
JP2002525744A (ja) | テキスト・オブジェクトのコンパイル方法およびシステム | |
US20090144528A1 (en) | Method for running native code across single or multi-core hybrid processor achitecture | |
US20080288919A1 (en) | Encoding of Symbol Table in an Executable | |
CN1460208A (zh) | 使用主叫用户地址的安全软件smi调度 | |
CN113010470A (zh) | 边缘节点远程控制***、方法、设备及存储介质 | |
US7752138B1 (en) | Dynamic licensing in a distributed system | |
CN101051269A (zh) | 智能平台管理接口韧体架构及其建立方法 | |
CN105404635A (zh) | 字符串匹配的方法、设备和异构计算*** | |
US5946493A (en) | Method and system in a data processing system for association of source code instructions with an optimized listing of object code instructions | |
CN103501341A (zh) | 一种Web服务的创建方法及装置 | |
CN1407477A (zh) | 智能卡通用高速发卡机及其发卡方法 | |
US6518973B1 (en) | Method, system, and computer program product for efficient buffer level management of memory-buffered graphics data | |
KR100331519B1 (ko) | 분산 애플리케이션을 실행시키는 시스템 및 컴퓨터화된 방법 | |
CN117251387A (zh) | 一种数据预取方法、编译方法及相关装置 | |
EP1046985A2 (en) | File portability techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1062344 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1062344 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060823 |