CN104011682B - 对应用事件响应进行推测性处理的方法和计算机系统 - Google Patents

对应用事件响应进行推测性处理的方法和计算机系统 Download PDF

Info

Publication number
CN104011682B
CN104011682B CN201280057785.5A CN201280057785A CN104011682B CN 104011682 B CN104011682 B CN 104011682B CN 201280057785 A CN201280057785 A CN 201280057785A CN 104011682 B CN104011682 B CN 104011682B
Authority
CN
China
Prior art keywords
event
event response
subprocess
application
response
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.)
Active
Application number
CN201280057785.5A
Other languages
English (en)
Other versions
CN104011682A (zh
Inventor
弗朗切斯科·约里奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Autodesk Inc
Original Assignee
Autodesk Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Autodesk Inc filed Critical Autodesk Inc
Publication of CN104011682A publication Critical patent/CN104011682A/zh
Application granted granted Critical
Publication of CN104011682B publication Critical patent/CN104011682B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的一个或多个实施例是一种用于推测地执行应用事件响应的计算机实现的方法。该方法包括下述步骤:识别通过主进程执行的应用可以发出以待执行的一个或多个事件响应;对于每个事件响应,生成子进程以执行事件响应;确定包括在一个或多个事件响应中的第一事件响应已由应用发出以待执行;提交与第一事件响应相关联的子进程作为新的主进程;以及异常终止主进程和不同于与第一事件响应相关联的子进程的所有子进程。

Description

对应用事件响应进行推测性处理的方法和计算机系统
相关申请的交叉引用
本申请要求2011年10月26日提交的第13/282,059号美国临时专利申请的权益,其全部内容通过引用合并于此。
技术领域
本发明总体上涉及软件应用,具体地,涉及应用级推测性处理。
背景技术
许多应用都是事件驱动应用,以使得异步地引发(raise)事件,并且基于对该事件的响应执行一系列操作。对单个事件可以有多个响应,其中,每个响应启动不同的一系列操作。事件驱动应用的一个示例是允许用户创建对象的复杂三维(3D)模型的计算机建模软件应用。
尽管由事件响应启动的一些操作可以由计算装置迅速地执行,但是通常,由软件应用启动的操作需要若干个处理循环。当执行包括大量事件响应和操作的后续执行的工作流时,工作流中的每组操作都必须等待若干个处理循环来结束执行是非常冗长且耗时的。这样的等待时间是非常不期望的并且可能导致为了避免在等待执行结束时不得不花费相当大量的时间而执行不是最适宜的动作。
对上述问题的一个解决方案为代码的推测性执行。然而,为了使这样的推测性执行可行,需要非常小心地将代码设计成遵循支持推测性执行的预定义数据模型。这样的设计过程不仅困难以及增加开发时间,而且不是非常普及。因此,当今存在许多未被构建为支持推测性执行的软件应用。
如上述所说明,本领域需要的是用于减少执行应用响应于事件而启动的操作所需的处理循环的数量的机制。
发明内容
本发明的一个或多个实施例是用于推测性地执行应用事件响应的计算机实现的方法。该方法包括下述步骤:识别主进程执行的应用可以发出以待执行的一个或多个事件响应;对于每个事件响应,生成子进程以执行事件响应;确定包括在一个或多个事件响应中的第一事件响应已由应用发出以待执行;提交与第一事件响应相关联的子进程作为新的主进程;以及异常终止主进程和不同于与第一事件响应相关联的子进程的所有子进程。在另一实施例中,当提交与第一事件响应相关联的子进程时,子进程被吸收到主进程中并且主进程未终止。
有利地,通过推测性地发出待处理的事件响应,本文所描述的技术减少了处理事件响应的总等待时间。如果已推测性地处理了所选择的待下次处理的事件响应,则不需要后续处理。另外,甚至未被构建为支持推测性执行的应用也可以以考虑到事件响应的推测性发出的方式来执行。换句话说,本文所描述的技术可以追溯地应用于现有的事件驱动应用,从而避免对现有应用的数据模型进行重构(refactor)以支持推测性执行的耗时要求。
附图说明
为了可以详细地了解本发明的上述特征,上述简要概括的本发明的更具体描述都可以参照实施例来获得,部分实施例在附图中示出。然而,应注意的是,附图仅示出了本发明的典型实施例,因此不应认为是对本发明的范围的限制,因为本发明可以承认其他等效的实施例。
图1是配置为实现本发明的一个或多个实施例的计算环境;
图2示出了根据本发明的一个实施例的与图1的应用相关的事件响应层级;
图3是根据本发明的一个实施例的图1的执行空间和存储空间的更详细的图;
图4是根据本发明的另一个实施例的图1的执行空间和存储空间的更详细的图;
图5是根据本发明的一个实施例的用于推测性地执行与应用可以发出的事件响应相关的操作的方法步骤的流程图;以及
图6是根据本发明的一个实施例的图1的应用和推测引擎可以在其内运行的示例性系统。
具体实施方式
在以下描述中,阐述了大量的具体细节以提供对本发明的更彻底的理解。然而,对于本领域技术人员来说显而易见的是,可在没有这些具体细节中的一个或多个的情况下实现本发明。在其他情况下,未描述已知的特征以便避免难以理解本发明。
图1是配置为实现本发明的一个或多个实施例的计算环境100。如所示,计算环境包括事件驱动应用104、推测引擎106、执行空间108以及存储空间110。
事件驱动应用104是允许经由对异步引发的事件的响应而执行一系列操作的软件程序。事件驱动应用104可以处理从另一个应用、物理传感器、用户输入等接收到的数据,并且可以将数据输出到终端、到另一个应用、到磁盘等。事件驱动应用104可以是图形应用、诸如AutoCAD的建模应用、字处理应用等。在一个实施例中,用户经由用户输入102与事件驱动应用104交互。用户输入102可以是对处理特定事件响应(诸如,建模应用中的绘图事件响应)的指示。
事件驱动应用104在执行空间108内运行。通常,事件驱动应用104响应于引发的事件而发出事件响应,并且随后在执行空间108内处理这些事件响应。另外,事件驱动应用104被分配了存储空间110的一部分,以使得在分配给事件驱动应用104的存储空间110的一部分内执行与事件驱动应用104相关的存储器存取操作。
在一些实施例中,以层级的方式组织与应用相关的事件响应,以使得一旦执行在层级中的一级的特定事件响应,就可以执行在层级中的后一级的任何事件响应。
推测引擎106预测事件驱动应用104可以发出以待处理的将来事件响应,并且推测性地发出那些事件响应以在执行空间108内进行处理。基于与事件驱动应用104相关联的应用状态来预测事件响应,应用状态尤其指示应用发出以待处理的先前的(一个或多个)事件响应、与事件驱动应用104的当前操作相关联的环境(context)以及在事件驱动应用104运行的同时引发的任何事件。推测引擎106对与事件驱动应用104相关联的应用状态进行评估以识别具有事件驱动应用104下次发出的高可能性的某些事件响应。在一个实施例中,推测引擎106基于与事件驱动应用104先前发出以待执行的事件响应相关的事件响应层级来预测待处理的事件响应。在另一实施例中,该推测基于先前收集的、指示在当前事件响应被发出以待处理之后由事件驱动应用104或者类似应用发出以待处理的特定事件响应的事件响应处理历史来预测待处理的事件响应。
当发出待处理的预测事件响应时,推测引擎106在分配给事件驱动应用104的执行空间108内克隆(clone)该进程,然后在所克隆的进程内发出预测事件响应。克隆的进程也被分配了存储空间110内的独立存储部分。以下在图3和图4中描述与克隆的进程的执行有关的更多细节。
在一个实施例中,如果事件驱动应用104下次发出的事件响应与在克隆进程中处理的预测事件响应之一匹配,则推测引擎106选择克隆进程作为主进程。然后,异常终止任何其他克隆进程和执行事件驱动应用104的原始进程。在替选的实施例中,如果事件驱动应用104下次发出的事件响应与在克隆进程中处理的预测事件响应之一匹配,则主进程吸收通过克隆进程进行的存储器和I/O修改。然后,异常终止所有克隆进程。
图2示出了根据本发明的实施例的与图1的应用相关的事件响应层级。如所示,事件响应A 202链接到事件响应B 204、事件响应C 206、事件响应D 208。如果事件驱动应用104发出事件响应A 202,则事件驱动应用104下次可以发出事件响应204至208中的任一个,因为那些事件响应处于事件响应层级200中的下一级别。图3和图4示出推测引擎106如何基于事件响应层级200推测性地执行事件响应。
图3是根据本发明的一个实施例的图1的执行空间108和存储空间110的更详细的图。如所示,执行空间108包括主进程302、克隆进程304、克隆进程306和克隆进程308。同样如所示,存储空间110包括应用存储区域310、克隆存储区域312和克隆I/O缓冲器314。
在图3的图示中,主进程302是事件驱动应用104发出的事件响应在其内执行的进程,以及应用存储区域310是在分配给事件驱动应用104的存储空间110内的存储部分。在主进程302中正执行的事件响应A由事件驱动应用104在主进程302内发出以待处理。随后,推测引擎106预测存在事件响应B、事件响应C或事件响应D将下次由事件驱动应用104发出以待处理的高可能性。此外,这样的预测基于与事件驱动应用104以及事件响应层级200相关联的应用状态以及推测引擎106分析的任何其他历史执行信息。
如本文以上所述的那样,当发出待处理的预测事件响应时,推测引擎106克隆事件驱动应用104在其内正在运行的进程。然后,推测引擎106在克隆的进程内对待处理的预测事件响应进行调度。因此,对于事件响应B、事件响应C或事件响应D中的每一个,推测引擎106创建主进程302的克隆并且在克隆进程内对待处理的预测事件响应进行调度。克隆进程304是在其内推测引擎106已调度待处理的预测事件响应B的主进程302的克隆。类似地,克隆进程306和308是在其内推测引擎106分别调度了待处理的预测事件响应C及预测事件响应D的主进程的克隆。
另外,将在存储空间110内的不同克隆存储区域312分配给克隆进程304至308中的每一个。在一个实施例中,克隆进程304至308共享存储在应用存储区域310中的数据,以使得仅要修改的数据(即写入数据)存储在相应的克隆存储区域312中。在另一实施例中,当创建克隆进程时,推测引擎106也克隆应用存储区域310并且将克隆的存储器存储在与克隆进程相对应的克隆存储区域312中。另外,将在存储空间110内的不同的克隆I/O缓冲器314分配给克隆进程304至308中的每一个。通过克隆进程启动的任何I/O操作都未被执行而是缓冲在相应的克隆I/O缓冲器314中。
在一个实施例中,如果事件驱动应用104下次发出的事件响应与在克隆进程304至308中正执行的预测事件响应之一匹配,则推测引擎106选择与匹配的事件响应相关联的克隆进程作为主进程。然后异常终止任何其他克隆进程和执行事件驱动应用104的原始进程,并且将与所选择的克隆进程相关的数据提交到磁盘(未示出)。在替选的实施例中,如果事件驱动应用104下次发出的事件响应与在克隆进程304至308中正处理的预测事件响应之一匹配,则主进程吸收通过克隆进程进行的存储器和I/O修改。然后,异常终止克隆进程304至308。
在克隆进程304至308共享存储在应用存储区域310中的数据以使得仅写入数据存储在相应的克隆存储区域312的实施例中,将应用存储区域310和与所选择的克隆进程相对应的克隆存储区域312结合以产生分配给新的主进程的存储区域。另外,执行分配给所选择的克隆进程的I/O缓冲器314中所缓冲的I/O操作。这些I/O操作包括对磁盘的操作、网络操作等。
图4是根据本发明的另一实施例的图1的执行空间108和存储空间110的更详细的图。如所示,执行空间108包括主虚拟机(VM)402、克隆虚拟机404、克隆虚拟机406和克隆虚拟机408。VM 402至408中的每一个都是虚拟机进程。同样如所示,存储空间110包括主VM存储区域410、克隆VM存储区域412和克隆I/O缓冲器314。
在图4示出的实施例中,事件驱动应用104发出的事件响应在主VM 402内运行,其中存储空间110内的主VM存储区域410被分配给主VM 402。当发出待处理的预测事件响应时,推测引擎106创建主VM 402的克隆(诸如,克隆VM 404),并且向克隆VM发出预测事件响应以进行处理。克隆VM 404至408均被分配了存储空间110内的不同的克隆VM存储区域412。在一个实施例中,克隆VM 404至408共享存储在VM存储区域410中的数据,以使得仅要修改的数据(即写入数据)存储在相应的VM存储区域412中。在另一个实施例中,当创建克隆进程时,推测引擎106还克隆VM存储区域410并将克隆的存储器存储在与克隆进程相对应的VM存储区域412中。另外,将存储空间110内的不同的克隆I/O缓冲器314分配给克隆进程404至408中的每一个。通过克隆进程启动的任何I/O操作并未被执行而是缓冲在相应的克隆I/O缓冲器314中。
在一个实施例中,如果事件驱动应用104下次发出的事件响应与在克隆VM 404至408中正执行的预测事件响应之一匹配,则推测引擎106选择与匹配的事件响应相关联的克隆VM作为主VM。然后异常终止任何其他克隆VM和执行事件驱动应用104的原始主VM 402,并且提交与所选择的克隆VM相关的数据。另外,执行分配给所选择的克隆VM的I/O缓冲器314中所缓冲的I/O操作。这些I/O操作包括对磁盘的操作、网络操作、与诸如通用串行总线(USB)端口等外部端口相关的任何操作。
在替选的实施例中,如果事件驱动应用104下次发出的事件响应与在克隆VM 404至408中正处理的预测事件响应之一匹配,则主VM 402吸收由所选择的克隆VM进行的存储器修改。另外,执行分配给所选择的克隆VM的I/O缓冲器314中所缓冲的I/O操作。然后,异常终止克隆VM 404至408。
重要的是,图3和图4中所描述的实施例提供了两种不同级别的封装。图3中的实施例具有通过多个进程克隆存储空间和I/O子系统的能力。图4中的实施例具有克隆整个系统的能力,从而为可能影响系统中的除了存储器和磁盘外的附加部件的性能的事件响应提供推测。
图5是根据本发明的一个实施例的用于推测性地执行与应用可以发出的事件响应相关的操作的方法步骤的流程图。尽管结合图1至图4的系统描述了方法步骤,但是本领域技术人员将理解,以任何顺序配置为执行这些方法步骤的任何系统都在本发明的范围内。
方法500开始于步骤502,在步骤502中,推测引擎106基于与事件驱动应用104相关联的当前应用状态来识别事件驱动应用104下次可以发出以待处理的一个或多个事件响应。如本文中先前所述的,可以基于事件驱动应用104发出的最近事件响应、在执行事件驱动应用104期间引发的任何事件、先前捕获的事件响应执行历史等来识别一个或多个事件响应。
在步骤504中,对于所识别的每个事件响应,推测引擎106创建与事件驱动应用104发出的事件响应在其内运行的主进程不同的克隆进程。然后,在相应的克隆进程内调度所识别的每个事件响应来进行处理。在一个实施例中,克隆进程是进程,而在另一实施例中,克隆进程是虚拟机。
在步骤506中,推测引擎106确定事件驱动应用104发出的待处理的下一事件响应与在步骤502中识别的事件响应之一匹配。在步骤508中,推测引擎106然后选择下一事件响应被抢先调度以待处理的进程作为主进程。在步骤510中,推测引擎106异常终止任何其余的克隆进程和原始的主进程。
在一个实施例中,将本文描述的推测执行技术应用于执行“取消”操作。不同的克隆进程可以存储应用的先前状态,并且当发出取消事件时,可以选择存储应用的先前状态的克隆进程作为主进程。
图6是根据本发明的一个实施例的图1的事件驱动应用104和推测引擎106可以运行的示例性系统。如所示,系统600包括系统存储器602、外部存储器604、中央处理单元(CPU)606、输入装置610和显示装置612。
系统存储器602包括本文先前描述的事件驱动应用104。系统存储器602是临时存储在任何指定时间在系统600内运行的软件程序的存储空间,通常是随机存取存储器(RAM)。CPU 606执行所存储的与计算机系统600中的各种元件相关联的和/或从计算机系统600中的各种元件传送的一系列指令。外部存储器604是用于存储与事件驱动应用104相关联的数据的存储装置,例如硬盘。输入装置610是允许用户操作事件驱动应用104的各方面并且将输入传送到事件驱动应用104的终端用户控制的输入装置(例如,鼠标或者键盘),诸如用户输入102。显示装置612可以是阴极射线管(CRT)、液晶显示器(LCD)或者任何其他类型的显示装置。
有利地,通过推测性地发出待处理的事件响应,本文所描述的技术减少了处理事件响应的总等待时间。如果已推测性地处理下次选择的待处理的事件响应,则不再需要后续处理。另外,甚至未被构建为支持推测性执行的应用也可以以考虑事件响应的推测性发出的方式来执行。换句话说,本文所描述的技术可以追溯地应用于现有的事件驱动应用,从而避免对现有应用的数据模型进行重构以支持推测性执行的耗时要求。
本发明的一个实施例可以被实现为供计算机系统使用的程序产品。程序产品的程序限定了实施例(包括本文描述的方法)的功能并且可以包含在各种计算机可读存储介质中。说明性的计算机可读存储介质包括但不限于:(i)永久存储信息的不可写的存储介质(例如,计算机内的只读存储装置,诸如CD-ROM(只读光盘存储器)驱动器可读取的CD-ROM、闪速存储器、ROM芯片或者任何类型的固态非易失性半导体存储器);以及(ii)存储有可改变的信息的可写存储介质(例如,在软盘驱动器或硬盘驱动器内的软盘或者任何类型的固态随机存取半导体存储器)。
以上参照具体实施例描述了本发明。然而,本领域技术人员将理解,可以在不背离所附权利要求中陈述的本发明的更广精神和范围的情况下对本发明进行各种修改和改变。相应地,应以说明性的意义而非限制性的意义来看待以上描述和附图。

Claims (11)

1.一种用于对应用事件响应进行推测性处理的计算机实现的方法,所述方法包括:
识别在计算装置上运行的第一主进程正执行的应用能够发出以待处理的一个或多个事件响应;
对于每个事件响应,克隆所述第一主进程以生成子进程从而处理所述事件响应,其中每个子进程在所述第一主进程正执行所述应用的同时执行所述第一主进程正执行的所述应用;
确定包括在所述一个或多个事件响应中的第一事件响应已由所述应用发出以待处理;
提交与所述第一事件响应相关联的子进程作为第二主进程,其中所述应用继续在所提交的子进程中执行;以及
异常终止所述第一主进程和不同于与所述第一事件响应相关联的子进程的所有子进程。
2.根据权利要求1所述的方法,其中,基于包括所述应用先前发出的当前事件响应的应用处理状态来识别所述一个或多个事件响应。
3.根据权利要求2所述的方法,其中,识别所述一个或多个事件响应包括:识别与所述当前事件响应相关的至少一个事件响应。
4.根据权利要求2所述的方法,其中,识别所述一个或多个事件响应包括:识别所述应用先前发出以待执行的在所述当前事件响应之后的至少一个事件响应。
5.根据权利要求1所述的方法,其中,基于包括在执行所述应用期间引发的事件的应用处理状态来识别所述一个或多个事件响应。
6.根据权利要求1所述的方法,其中,对于每个事件响应,生成所述子进程还包括:在所述子进程内对待执行的事件响应进行调度。
7.根据权利要求1所述的方法,其中,所述第一主进程被配置为对第一存储部分进行存取,而与所述第一事件响应相关联的子进程被配置为访问第二存储部分,以及提交与所述第一事件响应相关联的子进程包括将所述第一存储部分与所述第二存储部分进行结合。
8.根据权利要求1所述的方法,其中,提交与所述第一事件响应相关联的子进程包括:将与所述第一事件响应相关联的子进程吸收到所述第一主进程中。
9.根据权利要求1所述的方法,其中,提交与所述第一事件响应相关联的子进程包括:终止所述第一主进程并且提交与所述第一事件响应相关联的子进程作为所述第二主进程。
10.根据权利要求1所述的方法,其中,所述第一主进程包括第一虚拟机,而与所述第一事件响应相关联的子进程包括第二虚拟机。
11.一种计算机系统,包括:
存储器;以及
处理器,所述处理器配置为:
识别在计算装置上运行的第一主进程正执行的应用能够发出以待处理的一个或多个事件响应;
对于每个事件响应,克隆所述第一主进程以生成子进程从而处理所述事件响应,其中每个子进程在所述第一主进程正执行所述应用的同时执行所述第一主进程正执行的所述应用;
确定包括在所述一个或多个事件响应中的第一事件响应已由所述应用发出以待处理;
提交与所述第一事件响应相关联的子进程作为第二主进程,其中所述应用继续在所提交的子进程中执行;以及
异常终止所述第一主进程和不同于与所述第一事件响应相关联的子进程的所有子进程。
CN201280057785.5A 2011-10-26 2012-10-25 对应用事件响应进行推测性处理的方法和计算机系统 Active CN104011682B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/282,059 US8739186B2 (en) 2011-10-26 2011-10-26 Application level speculative processing
US13/282,059 2011-10-26
PCT/US2012/061990 WO2013063319A1 (en) 2011-10-26 2012-10-25 Application level speculative processing

Publications (2)

Publication Number Publication Date
CN104011682A CN104011682A (zh) 2014-08-27
CN104011682B true CN104011682B (zh) 2017-06-09

Family

ID=48168515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280057785.5A Active CN104011682B (zh) 2011-10-26 2012-10-25 对应用事件响应进行推测性处理的方法和计算机系统

Country Status (4)

Country Link
US (1) US8739186B2 (zh)
CN (1) CN104011682B (zh)
DE (1) DE112012004468B4 (zh)
WO (1) WO2013063319A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811371B2 (en) * 2012-06-29 2017-11-07 International Business Machines Corporation Concurrent execution of a computer software application along multiple decision paths
US20140180695A1 (en) * 2012-12-25 2014-06-26 Microsoft Corporation Generation of conversation to achieve a goal
GB2533414B (en) * 2014-12-19 2021-12-01 Advanced Risc Mach Ltd Apparatus with shared transactional processing resource, and data processing method
US11489845B1 (en) * 2019-09-24 2022-11-01 Menlo Security, Inc. Speculative rendering

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1027108A (ja) * 1996-07-12 1998-01-27 Nec Corp スレッド実行方法
CN1790256A (zh) * 2004-12-17 2006-06-21 国际商业机器公司 用于微处理器的分支前瞻预取

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615127A (en) * 1994-11-30 1997-03-25 International Business Machines Corporation Parallel execution of a complex task partitioned into a plurality of entities
US6553488B2 (en) 1998-09-08 2003-04-22 Intel Corporation Method and apparatus for branch prediction using first and second level branch prediction tables
JP3702814B2 (ja) 2001-07-12 2005-10-05 日本電気株式会社 マルチスレッド実行方法及び並列プロセッサシステム
EP1398699A1 (de) * 2002-09-12 2004-03-17 Siemens Aktiengesellschaft Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme
US20040154010A1 (en) * 2003-01-31 2004-08-05 Pedro Marcuello Control-quasi-independent-points guided speculative multithreading
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US20060235927A1 (en) 2005-04-19 2006-10-19 Bhakta Dharmesh N System and method for synchronizing distributed data streams for automating real-time navigation through presentation slides
US8782671B2 (en) 2006-07-26 2014-07-15 Hewlett-Packard Development Company, L. P. Systems and methods for flexibly controlling resource usage by a driver domain on behalf of a virtual machine
GB2457341B (en) 2008-02-14 2010-07-21 Transitive Ltd Multiprocessor computing system with multi-mode memory consistency protection
US8140646B2 (en) * 2009-06-04 2012-03-20 Microsoft Corporation Network application performance enhancement using speculative execution
US8726275B2 (en) 2009-12-18 2014-05-13 International Business Machines Corporation Selective partial cloning of virtual machines in a virtual computing environment
US20110239229A1 (en) 2010-03-26 2011-09-29 Microsoft Corporation Predicative and persistent event streams
US8386652B2 (en) 2010-11-12 2013-02-26 Apple Inc. Mobile computing device with adaptive response based on accessory firmware
US8751564B2 (en) 2011-04-19 2014-06-10 Echostar Technologies L.L.C. Reducing latency for served applications by anticipatory preprocessing
US9250969B2 (en) 2011-08-30 2016-02-02 At&T Intellectual Property I, L.P. Tagging a copy of memory of a virtual machine with information for fetching of relevant portions of the memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1027108A (ja) * 1996-07-12 1998-01-27 Nec Corp スレッド実行方法
CN1790256A (zh) * 2004-12-17 2006-06-21 国际商业机器公司 用于微处理器的分支前瞻预取

Also Published As

Publication number Publication date
DE112012004468B4 (de) 2018-07-12
WO2013063319A1 (en) 2013-05-02
US20130111501A1 (en) 2013-05-02
DE112012004468T5 (de) 2014-07-10
CN104011682A (zh) 2014-08-27
US8739186B2 (en) 2014-05-27

Similar Documents

Publication Publication Date Title
US10841236B1 (en) Distributed computer task management of interrelated network computing tasks
US9715408B2 (en) Data-aware workload scheduling and execution in heterogeneous environments
Ananthanarayanan et al. {GRASS}: Trimming stragglers in approximation analytics
US20130239125A1 (en) Application level speculative processing
US9972063B2 (en) Pipelined approach to fused kernels for optimization of machine learning workloads on graphical processing units
CN111406250B (zh) 无服务器计算环境中的使用经预取的数据的配设
KR102102166B1 (ko) 심드 구조 기반의 쓰레드 분기 관리 장치 및 방법
CN108139931A (zh) 通过重映射同步来加速任务子图
CN104011682B (zh) 对应用事件响应进行推测性处理的方法和计算机系统
US11763146B1 (en) Processing loops in computational graphs
US8458004B2 (en) Dynamically pooling unused capacities across an organization to execute atomic tasks
CN105378668A (zh) 多处理器系统中的操作系统管理的中断引导
WO2017107810A1 (zh) 数据库操作方法及装置
US9325576B2 (en) Dynamic server to server configuration and initialization
US20160132770A1 (en) Early generation of individuals to accelerate genetic algorithms
JP2022546271A (ja) カーネルチューニングパラメータを予測するための方法及び装置
JP5755146B2 (ja) リアルタイム取引予測
WO2017148508A1 (en) Multi-phase high performance business process management engine
US9032405B2 (en) Systems and method for assigning executable functions to available processors in a multiprocessing environment
CN115858667A (zh) 用于同步数据的方法、装置、设备和存储介质
CN115564635A (zh) 一种gpu资源调度方法、装置、电子设备及存储介质
CN115586955A (zh) 命令执行方法、装置、计算机设备和存储介质
US20220044101A1 (en) Collaborative sensor data processing by deep learning accelerators with integrated random access memory
CN109635191B (zh) 相似度确定方法、装置、存储介质和计算机设备
US20230409387A1 (en) Automatic selection of computer hardware configuration for data processing pipelines

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant