CN107209696A - 由应用动态控制的工作负载执行 - Google Patents
由应用动态控制的工作负载执行 Download PDFInfo
- Publication number
- CN107209696A CN107209696A CN201680008337.4A CN201680008337A CN107209696A CN 107209696 A CN107209696 A CN 107209696A CN 201680008337 A CN201680008337 A CN 201680008337A CN 107209696 A CN107209696 A CN 107209696A
- Authority
- CN
- China
- Prior art keywords
- calculating task
- information processing
- processing system
- available
- workload
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了用于优化信息处理***上的工作负载的方法和***,其包括由应用确定供所述应用执行的计算任务。所述应用可以确定用于在信息处理***处执行的计算任务的工作负载属性。工作负载属性由所述应用使用以动态地确定用于在信息处理***处配置硬件资源的工作负载策略。在由所述应用根据工作负载策略对硬件资源进行动态配置后,由所述应用在信息处理***处执行计算任务。
Description
技术领域
本发明一般涉及信息处理***,更具体地涉及由应用动态控制的工作负载执行。
背景技术
随着信息的价值和使用不断增加,个人和企业寻求额外的方式来处理和存储信息。用户可以选择的一个选项是信息处理***。信息处理***通常处理、编译、存储和传输用于商业、个人或其他目的的信息或数据,从而允许用户利用信息的价值。由于技术和信息处理需要和要求在不同的用户或应用之间有所变化,所以信息处理***也可以根据处理的信息、信息的处理方式、处理、存储或传输信息的多少以及处理、存储或传输信息的速度和效率而有所变化。信息处理***的变化允许信息处理***为特定用户或特定用途进行通用或配置,诸如金融交易处理、航空公司预订、企业数据存储或全球通信。此外,信息处理***可以包括可以被配置来处理、存储和传输信息的各种硬件和软件组件,并且可以包括一个或多个计算机***、数据存储***和网络***。
随着信息处理***中使用的硬件性能的提高,许多软件组件和架构可能无法有效利用可用硬件的性能。
发明内容
在一方面,公开了一种用于由应用优化信息处理***的工作负载的方法包括由应用确定在信息处理***中由应用执行的计算任务。该方法可以包括由应用确定计算任务的工作负载属性,工作负载属性包括计算任务对包括在信息处理***中的硬件资源的依赖性。该方法还可以包括由应用识别在信息处理***中存在的硬件资源。基于确定的工作负载属性和识别的硬件资源,该方法可以包括确定用于计算任务的工作负载策略。在该方法中,工作负载策略可以指明用于在信息处理***处执行计算任务的硬件资源。该方法还可以包括由应用在信息处理***实现工作负载策略,包括配置在工作负载策略中指定的硬件资源。该方法还可以包括根据工作负载策略在信息处理***处执行计算任务。
在另一方面,公开了至少一个非暂时性计算机可读介质,其包括用于通过应用优化在信息处理***上的工作负载的计算机可读指令,该指令可由处理器执行。
在另一方面,公开了一种信息处理***,其用于通过应用优化在信息处理***上的工作负载。
附图说明
为了更全面地了解本发明及其特征和优点,现在参考以下结合附图进行的描述,其中:
图1示出了信息处理***的实施例的选定元件的框图;
图2是工作负载优化的实施例的选定元件的框图;
图3是分布式工作负载优化的实施例的选定元件的框图;
图4是工作负载优化服务器的实施例的选定元件的框图;
图5示出了用于动态控制的工作负载执行的方法的选定元件的流程图;
图6A和6B示出了用于动态控制的分布式工作负载执行的方法的选定元件的流程图;
图7示出了用于优化专有工作负载的方法的选定元件的流程图;以及
图8示出了由应用动态控制的工作负载执行的方法的选定元件的流程图。
具体实施方式
在下面的描述中,通过示例阐述细节以便于对所公开的主题的讨论。然而,对于本领域的普通技术人员来说显而易见的是,所公开的实施例是示例性的,而不穷尽所有可能的实施例。
在本公开中,连字符形式的附图标记指的是元件的特定实例,不连字符形式的附图标记是指一般地或集体地表示的元件。因此,作为示例(附图中未示出),设备“12-1”是指设备类的一种实例,其可以被统称为设备“12”,并且其中任何一个可以一般地被称为设备“12”。在附图和说明书中,相同的附图标记旨在表示相同的元件。
为了本公开的目的,信息处理***可以包括可操作的硬件资源或硬件资源的集合以用于计算、分类、处理、发送、接收、检索、发起、切换、存储、显示、表明、检测、记录、复制、处理或使用各种形式的信息、智能、或用于企业、科学,控制,娱乐,或其他目的数据。例如,信息处理***可以是个人计算机、PDA、消费者电子设备,网络存储设备或其他合适的设备,并且可以在大小、形状、性能、功能和价格上变化。信息处理***可以包括存储器,一个或多个处理资源,诸如中央处理单元(CPU)或硬件或软件控制逻辑。信息处理***的附加组件可以包括一个或多个存储设备,用于与外部设备通信的一个或多个通信端口以及诸如键盘、鼠标和视频显示的各种输入和输出(I/O)设备。信息处理***还可以包括一个或多个总线,其可操作以发送各种硬件组件之间的通信。
此外,信息处理***可以包括用于控制或与例如硬盘驱动器、网络电路、存储器设备、I/O设备和其他***设备通信的固件。如本公开所使用的,固件包括嵌入在用于执行预定义任务的信息处理***组件中的软件。固件通常被存储在非易失性存储器中,或者在电力丢失时不会丢失存储数据的存储器中。在某些实施例中,与信息处理***组件相关联的固件被存储在一个或多个信息处理***组件可访问的非易失性存储器中。在相同或替代实施例中,与信息处理***组件相关联的固件被存储在非易失性存储器中,该非易失性存储器是专用于该组件并且包括该组件的一部分。
如将进一步详细描述,本公开的发明人已经发现用于文本和优化的方法和***。这些方法和***集合并导出耦合的信息处理***的文本信息,以便优化各种信息处理***的资源。
通过参考图1-图8能最好地理解特定实施例,其中相似的数字用于表示相似和相应的部分。
图1示出了根据本公开的实施例的信息处理***100的选定元件的框图。在特定实施例中,一个或多个信息处理***100执行本文描述或示出的一种或多种方法的一个或多个步骤。在特定实施例中,一个或多个信息处理***100提供本文所描述或示出的功能。在特定实施例中,在一个或多个信息处理***100上运行的软件执行本文所描述或示出的一种或多种方法的一个或多个步骤,或提供本文所描述或示出的功能。特定实施例包括一个或多个信息处理***100的一个或多个部分。这里,在适当的情况下,提到的信息处理***可以包括计算设备,反之亦然。此外,在适当的情况下,提到的信息处理***可以包括一个或多个信息处理***。除了信息处理***100还示出了网络155,其相对于信息处理***100是外部或远程的。
如图1所示,信息处理***100的组件包括但不限于可包括一个或多个处理器的处理器子***120以及将各种***组件通信地耦合到处理器子***120的***总线121,该各种***组件包括例如,存储器130、I/O子***140、本地存储资源150、图像接口152和网络接口160。在某些实施例中,图像接口152可以包括图像处理器。***总线121代表各种合适类型的总线结构,例如使用在所选择的实施例中各种总线架构的存储器总线、***总线或局部总线。例如,这样的架构可以包括但不限于微通道架构(MCA)总线、工业标准架构(ISA)总线、增强型ISA(EISA)总线、***组件互连(PCI)总线、PCI-Express总线、超传输(HT)总线和视频电子标准协会(VESA)局部总线。
在图1中,网络接口160是可操作以用作信息处理***100和网络155之间接口的合适的***,装置或设备。网络接口160可使信息处理***100能够使用合适的传输协议或标准通过网络155进行通信,合适的传输协议或标准包括但不限于以下关于网络155的讨论列举的传输协议和标准。在一些实施例中,网络接口160可以经由网络155通信地耦合到其他信息处理***。网络155可以被实现为,或可以是存储区域网络(SAN)、个人区域网络(PAN)、局域网(LAN)、城域网(MAN)、广域网(WAN)、无线局域网(WLAN)、虚拟专用网(VPN)、内联网,互联网或便于信号、数据和消息(通常称为数据)通信的其它适当架构或***。网络155可以使用合适的存储或通信协议来发送数据,包括但不限于光纤通道、帧中继、异步传输模式(ATM)、互联网协议(IP),其他基于分组的协议、小型计算机***接口(SCSI)、互联网SCSI(iSCSI)、串行连接SCSI(SAS)或使用SCSI协议、先进技术附件(ATA)、串行ATA(SATA)、先进技术附件分组接口(ATAPI)、串行存储架构(SSA)、集成驱动电子(IDE)或其任何组合。网络155及其各种组件可以使用硬件、软件或其任何组合来实现。在某些实施例中,信息处理***100和网络155可以包括在机架域中。
如图1所示,处理器子***120是可操作以分析或执行程序指令并处理数据的***、设备或装置。处理器子***120可以包括微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)或用于分析或执行程序指令和处理数据的其它数字或模拟电路。在一些实施例中,处理器子***120可分析或执行存储在存储器130中的程序指令和处理数据。在相同或替代实施例中,处理器子***120可以分析或执行程序指令和处理远程存储的数据,诸如在网络存储资源170中存储的数据。
此外,在图1中,存储器130包括可操作以在一段时间内保持和检索程序指令或数据的***、设备或装置,诸如计算机可读介质。如图1的示例实施例所示,存储器130存储操作***132和应用134。操作***132可以代表可由处理器子***120执行以在启动之后操作信息处理***100的指令。应当注意的是,在不同的实施例中,操作***132可以被存储在耦合到网络155的网络存储资源170,并且可以经由网络接口160被处理器子***120存取。应用134可以代表可由处理器子***120执行以用于实现通用应用功能的指令,其可以包括用户接口和对计算资源的存取,诸如本地存储资源150。存储器130可以包括随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、PCMCIA卡、固态存储器、磁存储器、光磁存储器和适当地选择的(例如陣列)易失性或非易失性存储器。非易失性存储器包括在断电后保留数据的存储器。
本地存储资源150可以包括诸如硬盘驱动器、软盘驱动器、CD-ROM或其他类型的旋转存储介质,固态存储器、EEPROM或其他类型的固态存储介质之类的计算机可读介质。本地存储资源150通常可操作以存储指令和数据。例如,本地存储资源150可以以可以被加载到存储器130中以执行的程序文件的形式存储可执行代码。
在信息处理***100中,I/O子***140包括通常可操作以接收和发送关于信息处理***100的数据的***,设备或装置。I/O子***140可以包括例如各种通信接口、图像接口、视频接口、用户输入接口和***接口。在某些实施例中,I/O子***140可以包括触摸面板或显示器适配器。触摸面板(未示出)可以包括用于与由显示器适配器(未示出)驱动的显示器(未示出)一起实现触摸功能的电路。
图1中还示出了嵌入式控制器(EC)180,其可以包括作为用于某些管理任务的信息处理***100所包括的第二处理器的EC处理器182。EC处理器182可以存取EC非易失性随机存取存储器(NV-RAM),其可以存储EC固件186,其代表可由EC处理器182执行的指令。还显示了存储在BIOS NV-RAM 190中的通常简称或统称为“BIOS”的BIOS固件192。BIOS固件192可以代表可由处理器子***120执行的预启动指令,例如用于通过激活各种硬件组件来准备信息处理***100来启动,以准备启动操作***132以供执行。在一些实施例中,BIOS固件192可以由EC处理器182执行。
在操作中,操作***132或应用134可以被配置为在信息处理***100上执行。由于操作***132或应用134可能未被优化以用于信息处理***100的硬件配置,因此工作负载优化器136可执行某些硬件配置的动态优化,如本文进一步详细描述的。工作负载优化器136可以使用与信息处理***100相关联的其他资源或硬件资源、操作***132、EC固件186、EC处理器192、BIOS固件192、I/O子***140、本地存储资源150、图像接口152和网络接口160中的任何一个或多个实现各种动态优化。
图2示出了根据本公开的一些实施例的工作负载优化200实施例的框图。如图所示,工作负载优化200代表在信息处理***中的工作负载优化的架构,该信息处理***包括图1所讨论的信息处理***100的任何实施例。工作负载优化200可以包括用于执行本文描述的功能的元件或模块的任何合适的组合或数量。如图2所示,工作负载优化200包括工作负载优化器202和硬件资源260。工作负载优化器202可以代表图1所示的工作负载优化器136的实施例。如图所示,工作负载优化器202包括策略处理引擎210、监测引擎220、配置引擎230、IHS简档管理器240、用户接口250和插件280。工作负载优化器202可以监测和配置信息处理***诸如信息处理***100上的硬件资源。硬件资源260代表某些硬件元件或组件,包括相对于图1中的信息处理***100描述的组件。
在工作负载优化200中,工作负载优化器202包括策略处理引擎210。策略处理引擎210可以以任何合适的方式来实现。例如,策略处理引擎210可以由代码、指令、库、共享库、软件为服务(software-as-a-service)、功能、应用、脚本或可执行程序来实现。尽管在图2中示出为单个元件,但策略处理引擎210可以通过元件的组合来实现。在一些实施例中,策略处理引擎210可以被配置为优化在一个或多个信息处理***上执行的工作负载。
在一些实施例中,策略处理引擎210可以用于通过将硬件资源260配置为与工作负载的属性特别匹配的方式来优化在信息处理***处执行的工作负载。用户接口250代表用户可以操作以使用策略处理引擎210的用户接口,例如以指明工作负载或选择用于实现特定工作负载策略的简档。
策略处理引擎210可以根据由IHS简档管理器240维护和管理的一个或多个IHS简档242进行分析和操作。在某些实施例中,IHS简档242可以由信息处理***或硬件资源260的制造商从IHS简档管理器240中选择、创建、修改和移除。例如,计算机***的制造商可以提供用于节省功耗的IHS简档242。在特定实施例中,可由策略处理引擎210从IHS简档管理器240中选择、创建、修改和移除IHS简档242。例如,策略处理引擎210可以选择IHS简档242,以用于在检测到计算机***已经从电源拔出时节省电力。在一些实施例中,IHS简档管理器240可以是被配置为管理简档242并且将简档信息传输到策略处理引擎210的应用。
如图所示,IHS简档管理器240可以包括IHS简档242-1、242-2等,多达242-N,其表示N个简档,其中N是任何所需数量。IHS简档242可以由策略处理引擎210接收并用于实现特定工作负载策略。因此,IHS简档242可以相应地包括策略信息,诸如具有由硬件资源260代表的硬件组件的特定配置(或设置)的执行场景。除了其他示例之外,IHS简档242可以是用户特定的信息处理***的使用类型、特定信息处理***或在信息处理***上执行的应用。IHS简档管理器240可以能够在本地或远程存储器上存储、检索、创建、删除、添加和修改IHS简档242,例如响应于经由用户接口250接收的用户输入。在某些实施例中,IHS简档管理器240以分布式方式跨越网络而操作,例如,结合下面参照图3描述的分布式简档管理器340。
策略处理引擎210可以监视信息处理***的各种硬件资源260。例如,策略处理引擎210可以通信地耦合到监测引擎220,从而经由相应的插件280在一个或多个硬件资源260上接收监测的信息。监视引擎220可以以任何合适的方式来实现,诸如通过代码、指令、库、共享库、软件为服务、功能、应用、脚本或可执行程序。尽管被示为单个元件,但是监测引擎220可以通过元件的组合来实现。在一些实施例中,监测引擎220可被配置为监测多于一个物理信息处理***的硬件资源。
策略处理引擎210可以主动地配置(或更改设置)信息处理***的各种硬件资源260。例如,策略处理引擎210可以通信地耦合到配置引擎230,以经由相应的插件280根据工作负载策略来配置硬件资源260。硬件资源260的配置可以通过插件280以各种方式实现。例如,插件280可以直接存取BIOS NV RAM 190以改变由BIOS固件192使用的设置。插件280可以存取或与EC180通信以更改硬件设置。插件280可以进一步存取或可以包括硬件驱动程序,诸如用于硬件资源260中的各个操作***驱动程序。配置引擎230可以以任何合适的方式来实现。例如,配置引擎230可以由代码、指令、库、共享库、软件为服务、功能、应用、脚本或可执行程序来实现。尽管被示为单个元件,但可以通过元件的组合来实现配置引擎230。在一些实施例中,配置引擎230可以在多于一个的信息处理***上配置硬件资源。
插件280可以代表安装在工作负载优化器202中用于存取特定硬件资源260的模块代码。因此,每个插件280可以对于特定硬件资源260是特定的,并且对于工作负载优化器202是特定的。插件280的每一个可以包括可以单独实现或者可以组合实现的监测和配置功能。换句话说,插件280能够使监测引擎220和配置引擎230独立操作。随着硬件资源260被添加、移除、更新、替换等,可以添加、移除、更新、更换相应的插件280。如图所示,CPU插件280-1可以为CPU 260-1提供监测和配置支持,CPU 260-1可以代表处理器或处理器子***;存储器插件280-2可以提供对存储器260-2的监测和配置支持,存储器260-2可以代表可由存取CPU 260-1的主存储器;图像插件280-3可以为图像260-3提供监测和配置支持,图像260-3可以表示图像接口或图像处理单元;存储器插件280-4可以为存储器260-4提供监测和配置支持,存储器260-4可以代表本地或远程存储资源;冷却插件280-5可以为冷却260-5提供监测和配置支持,冷却260-5可以表示热控制***;显示器插件280-6可以为显示器260-6提供监测和配置支持,显示器260-6可以表示一个或多个显示设备,例如耦合到图像260-3的显示设备;并且网络插件280-7可以为网络260-7提供监测和配置支持,网络260-7可以代表任何或多个网络接口。注意,所描述的插件280和硬件资源260是示例性的,并且可以包括各种实施例中的其他元件。
在操作中,策略处理引擎210可以经由用户接口250从用户接收工作负载请求。工作负载请求可以指明计算任务,诸如由应用134执行的计算任务。在一些实施例中,工作负载请求可以用于来自不同信息处理***的分布式计算任务,其寻求使用策略处理引擎210以及其他分布式资源来执行分布式计算任务的某些部分。工作负载请求可以包括IHS简档242中特定一个的指示。或者,策略处理引擎210可以在各种实施例中基于诸如用户(或用户帐户)或应用134之类的其他信息来选择IHS简档242中的一个。在某些实施例中,应用134本身可以包括用于使用策略处理引擎210生成工作负载请求或执行计算任务的功能。在一些实施例中,工作负载优化器202的至少某些部分包括在应用134中。
基于工作负载请求,策略处理引擎210可以确定计算任务的工作负载属性。工作负载属性可以包括计算任务对硬件资源260的依赖性。例如,当计算任务包括多线程时,可能需要激活CPU内的多个核心。或者,当计算任务在单个线程内执行时,当计算任务被发送到CPU内的单个核心时可能可以最有效地执行,这可能是期望的。因此,工作负载属性可以指明多线程程度、线程优先级和指令集架构中的任何一个或多个。工作负载属性可以指明例如任何一个或多个期望的处理器频率、处理器缓存容量、处理器缓存架构、处理器缓存吞吐量、存储器容量、存储器总线速度、存储器吞吐量以及非均匀存储器架构的使用。例如,工作负载属性还可以指明所期望的背景执行程度或可容忍的网络延迟。工作负载属性还可以指明任何一个或多个所期望的存储器容量、最小可用存储器空间、存储器数据吞吐量和存储器延迟。除了其它用于工作负载的其他希望的属性外,工作负载属性还可以指明以下的一个或多个:图像处理单元的加速程度、垂直同步设置、数字信号处理程度、整数处理程度、背景执行程度和操作***。
然后,策略处理引擎210可以经由例如监视引擎220识别信息处理***中存在的硬件资源260中的特定硬件资源260。此外,策略处理引擎210可以监测至少一些硬件资源260的操作状态,以便确定工作负载属性指示哪些配置更改,或哪些配置设置已经与工作负载属性相称。硬件资源260可以包括各种资源,包括图2所示的资源。具体来说,硬件资源260可以包括诸如许多可用的处理器核心、可用的处理器核心的独占存取程度、可用的处理器多线程程度、可用的背景执行程度、可用的用户模式执行程度、处理器频率、处理器架构、处理器缓存架构、处理器电源状态、可用的处理器缓存容量、可用的处理器功耗以及可用的指令集架构。其他硬件资源260可以包括诸如可用的图像处理单元、可用的存储器容量、可用的存储器吞吐量、可用的非均匀存储器存取程度、可用的存储容量、可用的存储器吞吐量和可用的存储器延迟等方面。其他硬件资源260可以包括从可用的网络容量、可用的网络吞吐量、可用的网络延迟、***重启功能和***掉电特征中选择的方面。与硬件资源260有关的其他方面也被考虑。
接下来,基于工作负载属性和硬件资源260,策略处理引擎210可以确定用于计算任务的工作负载策略。如上所述,工作负载策略可以基于其中一个IHS简档242。工作负载策略可以指明用于执行计算任务的硬件资源260,诸如通过为所标识的硬件资源260的方面指定特定设置。在确定工作负载策略之后,策略处理引擎210可以实现工作负载策略,例如使用配置引擎230存取插件280,如上所述。实施工作负载策略可以涉及不同实施例中的各种操作,诸如重新配置内部或外部硬件组件。在一些实施例中,可以在执行计算任务之前重新启动或重新开始信息处理***以实现某些工作负载策略。当实施工作负载策略时,计算任务可以由信息处理***执行。应当注意,执行计算任务可以涉及长期操作,诸如用户使用特定应用的持续时间。
在另一方面,工作负载优化200可用于优化专有的工作负载,诸如使用专有数据的工作负载。例如,制造商可以使用应用来建模专有的新产品,包括集成到制造过程中的计算机辅助设计。制造商可能会尝试使用应用来优化与新产品相关联的工作负载,这些应用可能包括计算机密集型操作,诸如三维渲染。制造商可以安装工作负载优化器202的某些部分,诸如监测引擎220,其可以在专用工作负载的执行期间监测硬件资源260。监测引擎220可以通过监测专用工作负载产生的结果来生成工作负载仿真数据。然而,即使工作负载仿真数据反映相同的工作负载属性和与专有工作负载相当的计算复杂度,监控引擎220也可以不包括专有数据的方式生成工作负载仿真数据。
然后,工作负载仿真数据可以由另一个工作负载优化200的实例在另一个信息处理***中使用。例如,上述示例中的制造商可以将工作负载仿真数据安全地发送到信息处理***的提供者。然后,可以基于工作负载仿真数据来确定工作负载属性。例如,当专有工作负载包括诸如飞机或船舶的大型复杂***的渲染时,工作负载仿真数据可以指明与专有数据相对应的其他示例中的图像属性,诸如相应数量的多边形、相应类型的多边形、相应的纹理数据、动画数据以及相应数量的部分或元件。所确定的工作负载属性可能是专有工作负载的特征。因此,工作负载属性可以包括(或指明)专有计算任务对硬件资源的依赖性。然后,可以识别硬件资源,并且可以确定工作负载策略。而且,基于工作负载仿真数据,具有与专有计算任务相同工作负载属性的仿真计算任务。仿真计算任务可用于对专有计算任务进行建模,而不依赖专有信息。然后可以在提供商的信息处理***处实施工作负载策略,并且当实施工作负载策略时,可以在第二信息处理***执行仿真计算任务。以这种方式,可以使用仿真计算任务来评估和测试工作负载策略,并进行修改或优化以产生期望的计算效率或性能。
在这种方式下没有专有数据的确定的工作负载策略可被发送回制造商以用于执行专有工作负载。然后,工作负载策略可以由工作负载优化200使用,以在使用专有信息的同时改进专有工作负载的诸如性能、延迟或速度的执行。
在另一方面,工作负载优化器202的至少某些部分可以集成到应用134中。例如,工作负载优化器202的某些功能可以作为软件开发工具包(SDK)提供给应用134的提供者,他们可以将功能集成到应用134的版本中。以这种方式,如本文所述,用户接口250、HIS简档管理器240、策略处理引擎210、监测引擎220、配置引擎230和插件260的至少某些部分可以被集成在应用134内。
图3是分布式工作负载优化300的实施例的选定元件的框图。分布式工作负载优化300可以代表用于优化分布式计算工作负载执行的架构。在一个实施例中,分布式工作负载优化300可用于在联网环境中的多个信息处理***352之间分配和优化工作负载。如图所示,分布式工作负载优化300包括在工作组350中的一个或多个信息处理***352,网络310和分布式工作负载优化器302。如图所示,分布式工作负载优化器302包括文本聚合引擎306、决策引擎308、动作引擎304和分布式简档管理器340。在一些实施例中,分布式工作负载优化300的一些或所有元件可以通过网络310通信地耦合。信息处理***352可以代表关于图1和图2所描述的信息处理***100的实施例。因此,可以假设在图2中信息处理***352中的至少一些执行工作负载优化器202。
在分布式工作负载优化300中,工作组350被示为包括多个信息处理***(IHS)352的逻辑网络。如图所示,工作组350可以包括信息处理***352-1、352-2等等,多达352-M表示M个信息处理***,其中M是任何所需数量。尽管工作组350被示出为单个实例以便清楚描述,但是应当理解,分布式工作负载优化300可操作于不同数量的工作组350,包括较大量的工作组350和信息处理***352。在某些实施例中,工作组350可以表示网络域或组织实体,诸如组织中的办公室或部门的位置。因此,工作组350可以代表具有包括信息处理***352的物理基础设施的企业实体或子实体。
在分布式工作负载优化器302中,文本聚合引擎306可以聚合用于优化分布式工作负载执行的文本信息。文本聚合引擎306可以导出用于分布式工作负载优化的不同种类的文本信息。文本聚合引擎306可以聚合来自各种来源的文本信息,包括来自分布式简档管理器340和信息处理***352的文本信息。文本聚合引擎306可以聚合从工作负载优化器202接收的、在信息处理***352上的,例如来自IHS简档管理器240或由监测引擎220收集的文本信息。文本信息可以包括硬件资源的位置、容量、温度、版本、状态和利用率等信息。在一些实施例中,文本聚合引擎306可以将与信息处理***352相关的文本信息聚合并存储到IHS简档342-3中。文本聚合引擎306可以导出复杂的IHS文本信息。例如,文本聚合引擎306可以处理***文件、通信和维护请求记录以导出用于信息处理***352的安全性、使用或可靠性文本。作为示例而不是限制,过时的操作***可以指示特定信息处理***352的安全性或可靠性问题。在一些实施例中,文本聚合引擎306可以使用导出的复杂IHS文本信息来更新信息处理***简档342-3。文本聚合引擎306可以从存储在各种信息处理***352上的数据导出复杂的文本信息。具体地,文本聚合引擎306可以处理文件、数据库、位置或任何其他相关数据以导出复杂的文本信息。在一个示例中,文本聚合引擎306可以从对分布式工作负载优化300的改变,诸如基于从工作组350添加或移除信息处理***302来导出复杂的文本信息。文本聚合引擎306还可以从简档342或先前由文本聚合引擎306聚合或存储的其他数据导出复杂的文本信息。在一些实施例中,文本聚合引擎306可以从预定义的数据关联导出复杂的文本信息,诸如日历条目和用户位置之间的关联。例如,文本聚合引擎306可以解析机器可读的可扩展标记语言、逗号分隔值,数据库条目等,以辨别关系或确定某些文本信息段之间的关联。在某些实施例中,文本聚合引擎306可以使用人工智能算法来产生否则不相交数据之间的关联。
文本聚合引擎306还可以聚合经由诸如网络拓扑、网络设备状态、网络利用率或与网络310相关的维护信息等网络310的来自其他来源的文本信息。在某些实施例中,文本聚合引擎306可以将与网络310相关的信息聚合并存储到网络简档342-2中。文本聚合引擎306可以导出复杂的网络文本信息。例如,文本聚合引擎306可以处理日历、电子邮件或维护请求记录以导出未来网络的可用性、使用或可靠性。在一个示例中,大量维护请求关于与网络310上的特定连接可能指示可靠性的问题。在另一示例中,文本聚合引擎306可以部分地基于网络存取日志导出网络安全信息。文本聚合引擎306可以使用导出的复杂网络文本信息来更新网络简档342-2。
另外,文本聚合引擎306可以在用户的信息处理***352上聚合用户资讯。用户资讯可以与信息处理***352或工作组350上用户的用户帐户相关联。作为示例而不是限制,用户资讯可以包括用户偏好、信息处理***的使用、用户分类、用户状态、用户位置或用户时间表。在一些实施例中,文本聚合引擎306可以将用户信息聚合并存储到用户简档342-1中。
在一些实施例中,文本聚合引擎306可以聚合描述应用在信息处理***352上执行的信息。这样的应用信息可以包括例如资源需求、资源使用性、应用设置、应用状态或应用版本等。在一些实施例中,文本聚合引擎306可以将应用信息聚合并存储到应用简档324-4中。文本聚合引擎306可导出复杂的应用文本信息。例如,文本聚合引擎306可以处理应用使用记录,例如确定应用的平均运行时间、用户统计、预期性能、最佳设置、峰值使用时间或与应用134相关的任何其他信息。文本聚合引擎306可以使用导出的复杂文本信息来更新聚合应用简档324-4。
在特定实施例中,文本聚合引擎306可以与分布式工作负载优化300中的其他元件通信文本信息。例如,文本聚合引擎306可将文本信息传输到决策引擎308、动作引擎304或诸如通过网络310传输到分布式工作负载优化300中的另一元件。作为示例而不是限制,文本聚合引擎306传输的文本信息可以包括来自简档342的信息或任何其他信息。
在一些实施例中,文本聚合引擎306可以检测并动态地调节分布式工作负载优化300中的变化。例如,文本聚合引擎306可以检测新的信息处理***352。响应于加入工作组350或连接到网络310的新的信息处理***352,文本聚合引擎306可以开始从新的信息处理***352聚合文本信息。
在另一个示例而不是限制,文本聚合引擎306可检测到通信地耦合(例如,通过有线、无线、蓝牙或任何其他通信手段)到网络310或信息处理***352的便携式电子设备(例如,手机、膝上型计算机、PDA等)。文本聚合引擎306可以指示便携式电子设备下载并安装软件以支持图2所描述的工作负载优化200,诸如工作负载优化器202的至少某些部分。在一些实施例中,文本聚合引擎306可以在检测到工作组350改变时更新适当的简档342。例如,文本聚合引擎306可以被配置为在检测到信息处理***352加入或离开工作组350时更新IHS简档342。
文本聚合引擎306可以以任何合适的方式来实现。例如,文本聚合引擎306可以由代码、指令、库、共享库、软件为服务、功能、应用、脚本或可执行程序来实现。在一些实施例中,文本聚合引擎306可以在信息处理***352处执行。虽然文本聚合引擎306被示为单个元件,但可以通过元件的组合来实现文本聚合引擎306。例如,文本聚合引擎306可以被包括在工作负载优化器202中。
如上所述,文本聚合引擎306可以根据由分布式简档管理器340维护和管理的一个或多个简档342进行分析和操作。在某些实施例中,可以由网络310的网络管理员从分布式简档管理器340中选择、创建、修改和删除简档342。例如,网络管理员可以修改网络简档342-2以实现节能网络策略。在特定实施例中,可以由文本聚合引擎306从分布式简档管理器340中选择、创建、修改和删除概要简档342。例如,文本聚合引擎306可以在检测到计算机***已经从电源拔下时选择IHS简档342-3以节省电力。在一些实施例中,分布式简档管理器340可以是被配置为管理简档342并且将简档信息传输到文本聚合引擎306的应用。因此,分布式简档管理器340可以以与图2中的IHS简档管理器240类似的方式操作。
在分布式工作负载优化器302中,决策引擎308可以确定资源的最佳分配。在一个实施例中,决策引擎308可以被配置为接收资源请求,诸如用于分布式执行的计算任务的工作负载请求。例如,信息处理***352可以请求用于处理数字计算、显示呈现、启动应用或其他计算任务的资源。决策引擎308可将资源请求分配成多个资源请求。例如,决策引擎308可以将显示呈现的请求分解为运行应用以打开的请求以及显示来自应用的输出的请求。
如上所述,决策引擎308可以通信地耦合到文本聚合引擎306以例如分析或查询文本信息。在一些实施例中,决策引擎308可以分析由文本聚合引擎306导出的复杂文本信息。决策引擎308也可以启动文本信息的聚合。例如,在接收到资源请求时,决策引擎308可以确定附加的文本信息被指示以做出特定的决定。因此,决策引擎308可以请求文本聚合引擎306提供附加的文本信息。作为响应,文本聚合引擎306可以通过例如导出复杂的文本信息或处理用于文本信息的附加源来聚合附加文本信息。
在一些实施例中,决策引擎308可以基于文本信息来分配资源请求。例如,当文本信息指示信息处理***352-1与网络310暂时断开连接时,决策引擎308可以决定不向信息处理***352-1分配资源请求。类似地,当文本信息指示特定信息处理***352-2在不久的将来可能与网络310断开连接时,则决策引擎308可以例如因为资源请求的预期持续时间而决定不将资源请求分配给信息处理***352-2。在另一示例中,当文本聚合引擎306确定两个用户为相同的团队(例如利用相应的用户简档342-1)的情况下,则决策引擎308可以分配诸如应用或日历的常用计算资源来满足用户的资源请求。在另一示例中,决策引擎308可以基于用户的当前位置或未来位置来分配资源。当用户实际位于会议室并请求资源以串流多媒体呈现时,则决策引擎308可以选择与用户非常接近的某些信息处理***352来完成资源请求,诸如通过执行某些计算任务来支持多媒体串流。
在一些实施例中,决策引擎308可以基于诸如某些硬件资源的优化准则来分配资源请求。在一些实施例中,优化准则可以指明特定的应用或活动,诸如速度、电力、优先级、安全性、可靠性、位置等。决策引擎308可以接收资源请求的优化准则。例如,资源请求可以指示用于处理资源请求的速度超过安全性的优先级。在一些实施例中,决策引擎308可从文本信息导出优化准则。作为示例而不是限制,计算密集型的应用,诸如来自Natick,Mass的The MathWorks公司的MATLABTM,可包含指示应用是资源密集型的应用简档342-2。基于应用简档342-2,决策引擎308可以相应地确定优化准则,以指示例如处理器和存储器资源优先于图形或存储器。
决策引擎308可以以任何合适的方式来实现。例如,决策引擎308可以由代码、指令、库、共享库、软件为服务、功能、应用程序、脚本或可执行程序来实现。尽管决策引擎308被示出为单个元件,但是决策引擎308可以通过元件的组合来实现。例如,在一个实施例中,决策引擎308可以分布在工作组350内的各种信息处理***352中。
在分布式工作负载优化器302中,动作引擎304可以启动操作以实现资源请求,并且可以通信地耦合到决策引擎308。在一些实施例中,动作引擎304可以从决策引擎308接收优化的资源请求,诸如将硬件资源的分配指定给特定工作负载请求以用于分布式执行。在一些实施例中,来自决策引擎308的优化资源请求可以标识与满足资源请求相关联的信息处理***352。作为示例而不是限制,动作引擎304可以基于来自决策引擎308识别信息处理***352-1和应用的优化资源请求来启动应用在信息处理***352-1***上的执行。
动作引擎304可以以任何合适的方式来实现。例如,动作引擎304可以由代码、指令、库、共享库、软件为服务、功能、应用程序、脚本或可执行程序来实现。虽然动作引擎304被示出为单个元件,但动作引擎304可以通过元件的组合来实现。例如,在一个实施例中,动作引擎304可以分布在工作组350内的各种信息处理***352中。
虽然文本聚合引擎306、决策引擎308和动作引擎304的功能性被描述为图3中单独的元件,但是它们每一个的功能可以通过分布式工作负载优化300的任何适当部分来实现。
在用于将分布式工作负载优化到信息处理***352的分布式工作负载优化300的操作中,分布式工作负载优化器302可以从信息处理***352-1接收指定用于分布式执行的计算任务的工作负载请求。然后,文本聚合引擎306可以基于工作负载请求来确定计算任务的工作负载属性。工作负载属性可以包括计算任务对包括在诸如先前描述的硬件资源260的信息处理***352中的硬件资源的依赖性。
然后,文本聚合引擎306可以通过网络310识别信息处理***352或其他信息处理***(称为分布式信息处理***),以用于计算任务的分布式执行。例如,所识别的信息处理***可以执行工作负载优化器202的至少某些部分以支持分布式工作负载优化300的操作。文本聚合引擎306还可以识别存在于分布式信息处理***的硬件资源(称为分布式硬件资源)。然后,基于所确定的工作负载属性和所识别的分布式硬件资源,文本聚合引擎306(或一些实施例中的决策引擎308)可以确定分布式硬件资源之间的计算任务的初步分配。初步分配可以表示硬件资源的期望分配,但是可以基于先前收集的文本信息,并且由于信息处理***352处的持续变化而导致当下可能不完全准确。然后,文本聚合引擎306(或者一些实施例中的动作引擎304)可以向分布式信息处理***发送第一请求,请求确认初步分配。作为响应,可以从分布式信息处理***中的至少一些接收第一分布式资源信息。应当注意,超时可应用于对第一请求的响应。第一分布式资源信息可以描述或指明分布式信息处理***当前可用的分布式硬件资源,以用于计算任务的分布式执行。
基于第一分布式资源信息,文本聚合引擎306(或者一些实施例中的决策引擎308)可以确定在分布式硬件资源之中的计算任务的确认分配。所确认的分配可以包括或表示描述用于计算任务的分布式执行的分布式硬件资源的工作负载策略354。然后,基于所确认的分配,文本聚合引擎306(或者一些实施例中的动作引擎304)可以至少向作出响应的分布式信息处理***(称为确认的分布式信息处理***)发送第二请求,以使得第一分布式资源信息中描述的分布式硬件资源专用于计算任务。第二请求可以包括或可以表示当确认分配被确定时由文本聚合引擎306(或在一些实施例中的决策引擎308)确定的工作负载策略354。文本聚合引擎306(或者一些实施例中的动作引擎304)然后可以将计算任务分段以用于在确认的分布式信息处理***中分布式执行。然后,文本聚合引擎306(或者一些实施例中的动作引擎304)可以将所分割的计算任务发送到所确认的分布式信息处理***中相应的一个。作为响应,文本聚合引擎306(或一些实施例中的动作引擎304)可以从确认的分布式信息处理***中相应的一个接收计算任务的分段输出(或计算任务的结果)。然后,文本聚合引擎306(或一些实施例中的动作引擎304)可以组合分段输出以生成计算任务的组合输出。最后,文本聚合引擎306(或者一些实施例中的动作引擎304)可以将组合的输出发送回请求计算任务的分布式执行的信息处理***352-1。
尽管存在上述用于工作负载任务的分布式执行的双重分配过程,包括初步分配和确认的分配,但是在信息处理***352处的持续变化可能导致第一分布式资源信息在相对短的时间内变得过时或淘汰。因此,文本聚合引擎306(或者在一些实施例中的决策引擎308)可以接收指明第一分布式资源信息中的改变的指示。基于该变化,可以更新确认的分配,并且可以生成指示该变化的第二分布式资源信息。然后,根据需要可以重复上述过程,以执行计算任务的分布式执行。
现在参考图4,示出了工作负载优化服务器400的实施例的选定元件的框图。在图4中,工作负载优化服务器400被表示为信息处理***,其包括用于实现工作负载优化的物理和逻辑组件,如本文所述,并且相应地包括处理器401、存储器410和网络接口420。处理器401可以代表一个或多个单独的处理单元,并且可以执行程序指令,分析数据以及处理由存储器410或其他存储(诸如数据库430)存储的数据以及其他示例。尽管图4示出了包括物理和逻辑组件的工作负载优化服务器400,但是应当理解,工作负载优化服务器400(或数据库430)可以使用共享硬件资源来实现,诸如在管理程序下的虚拟机中,例如在托管多个虚拟服务器的机架域中。
在图4中,存储器410通信地耦合到处理器401,并且可以包括适于在一段时间内保留程序指令和数据的***、设备或装置(例如,计算机可读介质)。存储器410可以包括各种类型的组件和设备,诸如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、PCMCIA卡、闪存、固态磁盘、硬盘驱动器、磁带库、光学磁盘驱动器、磁光盘驱动器、压缩磁盘驱动器、紧凑型磁盘阵列、磁盘阵列控制器和/或易失性或非易失性存储器的任何合适的选择或阵列。非易失性存储器是指在电源关闭后保留数据的存储器。应当注意,在各种实施例中,存储器410可以包括不同数量的物理存储设备。
如图4所示,如本文所述,存储器410可以包括用于分布式工作负载优化的分布式工作负载优化器402。在某些实施例中,工作负载优化器402代表如图3描述的工作负载优化器302的实现。信息存储器440可以存储各种数据和参数,诸如与工作负载优化相关联的数据和参数,如本文所述。在一些实施例中,数据库430可以包括可数据库功能操作的单个信息处理***。
图5示出了根据本公开的一些实施例的用于动态控制的工作负载执行的示例方法500。可以使用如关于图2所述的工作负载优化200来实现方法500。应当注意,方法500中描述的某些操作可以是可选的,或者可以在不同的实施例中重新排列。
方法500开始于接收(操作502)对指明用于在信息处理***执行的计算任务的信息处理***的工作负载请求。基于工作负载请求,确定计算任务的工作负载属性(操作504),工作负载属性包括计算任务对包括在信息处理***中的硬件资源的依赖性。信息处理***中存在的硬件资源可以被识别(操作506)。至少一些硬件资源的操作状态被监测(操作508)。基于工作负载属性和硬件资源,确定用于计算任务的工作负载策略(操作510),工作负载策略指明用于在信息处理***执行计算任务的硬件资源。在信息处理***中实现工作负载策略(操作512),包括基于操作状态配置工作负载策略中指定的硬件资源。根据工作负载策略,在信息处理***处执行计算任务(操作514)。
图6A和6B示出了根据本公开的一些实施例的用于动态控制的分布式工作负载执行的示例方法600。可以使用如关于图3所述的分布式工作负载优化300来实现方法600。应当注意,方法600中描述的某些操作可以是可选的,或者可以在不同的实施例中重新排列。
方法600开始于从第一信息处理***接收(操作602)工作负载请求,工作负载请求指明用于分布式执行的计算任务。基于工作负载请求,确定计算任务的工作负载属性(操作604),工作负载属性包括计算任务对包括在信息处理***中的硬件资源的依赖性。可通过网络存取的分布式信息处理***(操作606)被识别,以用于计算任务的分布式执行,其包括识别分布式信息处理***中存在的分布式硬件资源,包括至少一个信息处理***。基于工作负载属性和硬件资源,确定计算任务在分布式硬件资源之间的初步分配(操作608)。发送第一请求(操作610)到分布式信息处理***以请求确认初步分配。从分布式信息处理***的至少一部分接收第一分布式资源信息(操作612),其描述响应于第一请求的分布式信息处理***处当前可用的分布式硬件资源。基于第一分布式资源信息,在分布式硬件资源中确定计算任务的确认分配(操作614)。
在操作614之后,方法600可以进行到图6B的操作616。基于所确认的分配,将第二请求(操作616)发送到确认的包括至少一些分布式信息处理***的分布式信息处理***,以使得在第一分布式资源信息中描述的分布式硬件资源专用于该计算任务。对计算任务进行分段(操作618)以用于在确认的分布式信息处理***中分布式执行。分段的计算任务被发送(操作620)到相应的确认的分布式信息处理***中。从相应的确认的分布式信息处理***接收计算任务的分段输出(操作622),分段输出对应于分段计算任务。分段输出被组合(操作624)以产生计算任务的组合输出。将组合好的输出发送(操作626)到第一信息处理***。
图7示出了根据本公开的一些实施例的用于优化专有工作负载的示例方法700。可以使用如关于图2所述的工作负载优化200来实现方法700。应当注意,方法700中描述的某些操作可以是可选的,或者可以在不同的实施例中重新排列。
方法700开始于在第二信息处理***处接收(操作702)工作负载仿真数据,工作负载仿真数据指示可在第一信息处理***上执行的专有计算任务,以使得工作负载仿真数据不包括由专有计算使用的专有数据。基于工作负载仿真数据,确定专有计算任务的工作负载属性(操作704),工作负载属性包括专有计算任务对包括在第一信息处理***中的硬件资源的依赖性。存在于第一信息处理***的硬件资源正在识别(操作706)。基于所确定的工作负载属性和所识别的硬件资源,在用于专有计算任务的第二信息处理***处确定工作负载策略(操作708),以使得工作负载策略指明用于执行计算任务的硬件资源第一信息处理***。将工作负载策略(操作710)发送到第一信息处理***,以使得工作负载策略可由第一信息处理***使用以使用专有信息来执行专有计算任务。基于工作负载仿真数据,生成具有与专有计算任务相同的工作负载属性的仿真计算任务(操作712)。在第二信息处理***处实施工作负载策略(操作714)。当实施工作负载策略时,在第二信息处理***处执行仿真计算任务(操作716)。
图8示出了根据本公开的一些实施例的用于由应用动态控制工作负载执行的示例方法800。可以使用实现如关于图1和图2所述的工作负载优化200的至少某些部分的应用134来实现方法800。应用134可以是例如在操作***下执行并且向操作***的用户提供功能的任何应用。应用134可以被编译为使用软件开发工具包(或其他库)来包括工作负载优化器202的至少某些部分,以将工作负载优化200的功能集成到应用134中。应当注意,方法800中描述的某些操作可以是可选的或可以在不同的实施例中重新排列。
方法800开始于由应用确定(操作802)用于在信息处理***处由应用执行的计算任务。由应用确定计算任务的工作负载属性(操作804),工作负载属性包括计算任务对信息处理***中包括的硬件资源的依赖性。存在于信息处理***的硬件资源被应用识别(操作806)。由应用监测至少一些硬件资源的操作状态(操作808)。基于工作负载属性和硬件资源,确定用于计算任务的工作负载策略(操作810),工作负载策略指明用于在信息处理***处执行计算任务的硬件资源。由信息处理***的应用实现工作负载策略(操作812),包括根据操作状态配置工作负载策略中指定的硬件资源。在信息处理***处根据工作负载策略执行计算任务(操作814)。
这里,除非另有明确说明或在上下文表示,否则“或”是包容性且非排除性的。因此,除非另有明确说明或在上下文表示,否则在本文中“A或B”表示“A、B或两者”。此外,除非另有明确说明或在上下文表示,否则“和”是联合的和多个的。因此,除非另有明确说明或在上下文表示,否则在本文中“A和B”意指“A和B、共同或分别”。
本公开的范围涵盖了本领域普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、改造和修改。本公开的范围不限于这里描述或示出的示例性实施例。此外,尽管本公开描述并且将本文的各个实施例示出为包括特定组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何实施例可以包括任何组件、元件、特征、功能、操作的任何组合或排列,或在本文任何地方描述或示出的本领域普通技术人员将理解的步骤。此外,在所附权利要求书中参考装置或***或装置或***的组件,其适于、被布置为、能够:被配置为、能够、可操作地或可操作地执行特定功能的装置、***或装置或***的部件的参考包括该装置,只要该装置,其包括该装置、***、组件,无论其是否被激活、打开或解锁,只要该装置、***或组件如此调整、布置、有能力、配置、启用、可操作或有效的。
Claims (20)
1.一种由应用来优化信息处理***上的工作负载的方法,所述方法包括:
由应用确定在所述信息处理***由所述应用执行的计算任务;
由所述应用确定所述计算任务的工作负载属性,所述工作负载属性包括所述计算任务对在所述信息处理***中的硬件资源的依赖性;
由所述应用识别所述信息处理***中存在的所述硬件资源;
基于确定的所述工作负载属性和所识别的所述硬件资源,确定用于所述计算任务的工作负载策略,其中所述工作负载策略指定用于在所述信息处理***执行所述计算任务的所述硬件资源;
由所述应用实现所述信息处理***的所述工作负载策略,包括配置在所述工作负载策略中指定的所述硬件资源;以及
根据所述工作负载策略在所述信息处理***执行所述计算任务。
2.如权利要求1所述的方法,其特征在于,配置所述硬件资源包括以下中的至少一个:
存取所述信息处理***的基本输入/输出***;以及
存取用于所述硬件资源的相应硬件驱动程序,所述硬件驱动程序安装于在所述信息处理***执行的操作***上。
3.如权利要求1所述的方法,其特征在于,所述应用使用操作***驱动程序来存取所述硬件资源中的至少一些,并且其中所述工作负载属性从以下各项中的至少一个中选择:
所述计算任务使用的多线程程度;
所述计算任务使用的线程优先级;
所述计算任务使用的指令集架构;
所述计算任务使用的存储器容量;
所述计算任务使用的存储器数据吞吐量;
所述计算任务使用的存储器缓存容量;
所述计算任务使用的存储器缓存架构;
所述计算任务允许的非均匀存取程度;
所述计算任务允许的背景执行程度;
所述计算任务允许的网络延迟;
所述计算任务使用的存储容量;
所述计算任务使用的存储数据吞吐量;
所述计算任务允许的存储延迟;
所述计算任务使用的图像处理单元的加速程度;
所述计算任务允许的垂直同步设置;
所述计算任务使用的数字信号处理程度;
所述计算任务使用的整数处理程度;
所述计算任务允许的背景执行程度;以及
所述计算任务使用的操作***。
4.如权利要求3所述的方法,其特征在于,确定所述工作负载属性包括确定与所述应用相关联的第一信息处理***的用户。
5.如权利要求4所述的方法,其特征在于,确定所述工作负载策略包括:
基于所述用户确定所述工作负载策略。
6.如权利要求1所述的方法,其特征在于,配置所述硬件资源包括存取用于所述硬件资源的所述操作***驱动程序,并且其中所述硬件资源是从以下至少一个中选择的:
可用的处理器核心;
对所述可用的处理器核心的独占存取程度;
可用的处理器多线程程度;
可用的背景执行程度;
可用的用户模式执行程度;
处理器频率;
处理器架构;
处理器缓存结构;
处理器电源状态;
可用的处理器的缓存容量;
可用的处理器的电源消耗;
可用的指令集架构;
可用的图像处理单元;
可用的存储器容量;
可用的存储器吞吐量;
可用的非均匀存储器访问存取程度;
可用的存储容量;
可用的存储吞吐量;
可用的存储延迟;
可用的网络容量;
可用的网络吞吐量;
可用的网络延迟;
***重启功能;
***掉电功能;以及
在所述信息处理***上执行的操作***。
7.如权利要求1所述的方法,还包括:
由所述应用监测至少一些所述硬件资源的操作状态,其中基于所述操作状态来执行所述硬件资源的配置。
8.至少一个非暂时计算机可读介质,包括用于由应用优化信息处理***的工作负载的计算机可读指令,所述指令在执行时使得处理器:
由应用确定,用于在所述信息处理***由所述应用执行的计算任务;
由所述应用确定所述计算任务的工作负载属性,所述工作负载属性包括所述计算任务对在所述信息处理***中的硬件资源的依赖性;
由所述应用识别所述信息处理***中存在的所述硬件资源;
由所述应用监测至少一些所述硬件资源的操作状态;
基于确定的所述工作负载属性和识别的所述硬件资源,确定用于所述计算任务的工作负载策略,其中所述工作负载策略指明用于在所述信息处理***执行所述计算任务的所述硬件资源;
由所述应用实现所述信息处理***的所述工作负载策略,包括基于所述操作状态配置所述硬件资源的指令;以及
根据所述工作负载策略在所述信息处理***执行所述计算任务。
9.如权利要求8所述的计算机可读介质,其特征在于,配置所述硬件资源的指令包括至少一个指令以:
存取所述信息处理***的基本输入/输出***;以及
存取用于所述硬件资源的相应硬件驱动程序,所述硬件驱动程序安装于在所述信息处理***上执行的操作***中。
10.如权利要求8所述的计算机可读介质,其特征在于,所述应用使用操作***驱动程序来存取所述硬件资源中的至少一些,并且其中所述工作负载属性从以下各项中的至少一个中选择:
所述计算任务使用的多线程程度;
所述计算任务使用的线程优先级;
所述计算任务使用的指令集架构;
所述计算任务使用的存储器容量;
所述计算任务使用的存储器数据吞吐量;
所述计算任务使用的存储器缓存容量;
所述计算任务使用的存储器缓存架构;
所述计算任务允许的非均匀存储器存取程度;
所述计算任务允许的背景执行程度;
所述计算任务允许的网络延迟;
所述计算任务使用的存储容量;
所述计算任务使用的存储数据吞吐量;
所述计算任务允许的存储延迟;
所述计算任务使用的图像处理单元的加速程度;
所述计算任务允许的垂直同步设置;
所述计算任务使用的数字信号处理程度;
所述计算任务使用的整数处理程度;
所述计算任务允许的背景执行程度;以及
所述计算任务使用的操作***。
11.如权利要求10所述的计算机可读介质,其特征在于,用于确定所述工作负载属性的指令包括用于确定与所述应用相关联的第一信息处理***的用户的指令。
12.如权利要求11所述的计算机可读介质,其特征在于,用于确定所述工作负载策略的指令包括以下指令:
根据所述用户确定所述工作负载策略。
13.如权利要求8所述的计算机可读介质,其特征在于,配置所述硬件资源的指令包括存取所述硬件资源的操作***驱动程序的指令,并且其中所述硬件资源选自以下中的至少一个:
可用的处理器核心;
对所述可用处理器核心的独占存取程度;
可用的处理器多线程程度;
可用的背景执行程度;
可用的用户执行模式程度;
处理器频率;
处理器架构;
处理器缓存结构;
处理器电源状态;
可用的处理器的缓存容量;
可用的处理器的电源消耗;
可用的指令集架构;
可用的图像处理单元;
可用的存储器容量;
可用的存储器吞吐量;
可用的非均匀存储器存取程度;
可用的存储容量;
可用的存储吞吐量;
可用的存储延迟;
可用的网络容量;
可用的网络吞吐量;
可用的网络延迟;
***重启功能;
***掉电功能;以及
在所述信息处理***上执行的所述操作***。
14.一种用于由应用优化工作负载的信息处理***,包括:
处理器;
通信地耦合到所述处理器的存储器;以及
存储在所述存储器中并包括计算机可读指令的应用;当执行时,所述指令使所述处理器执行以下操作:
确定由应用在所述信息处理***执行的计算任务;
确定所述计算任务的工作负载属性,所述工作负载属性包括所述计算任务对在所述信息处理***中的硬件资源的依赖性;
识别所述信息处理***中存在的所述硬件资源;
基于确定的所述工作负载属性和识别的所述硬件资源,确定用于所述计算任务的工作负载策略,其中所述工作负载策略指明在所述信息处理***用于执行所述计算任务的所述硬件资源;
在所述信息处理***处实现所述工作负载策略,包括配置所述工作负载策略中指明的所述硬件资源;以及
根据所述工作负载策略在所述信息处理***执行所述计算任务。
15.如权利要求14所述的信息处理***,其特征在于,配置所述硬件资源的指令包括至少一个指令以:
存取所述信息处理***的基本输入/输出***;以及
存取用于所述硬件资源的相应硬件驱动程序,所述硬件驱动程序安装于在所述信息处理***上执行的操作***中。
16.如权利要求14所述的信息处理***,其特征在于,所述应用使用所述操作***驱动程序来存取所述硬件资源中的至少一些,并且其中所述工作负载属性从以下各项中的至少一个中选择:
所述计算任务使用的多线程程度;
所述计算任务使用的线程优先级;
所述计算任务使用的指令集架构;
所述计算任务使用的存储器容量;
所述计算任务使用的存储器数据吞吐量;
所述计算任务使用的存储器缓存容量;
所述计算任务使用的存储器缓存架构;
所述计算任务允许的非均匀存储器存取程度;
所述计算任务允许的背景执行程度;
所述计算任务允许的网络延迟;
所述计算任务使用的存储容量;
所述计算任务使用的存储数据吞吐量;
所述计算任务允许的存储延迟;
由计算任务使用的图像处理单元的加速程度;
所述计算任务允许的垂直同步设置;
所述计算任务使用的数字信号处理程度;
所述计算任务使用的整数处理程度;
所述计算任务允许的背景执行程度;以及
所述计算任务使用的操作***。
17.如权利要求16所述的信息处理***,其特征在于,用于确定所述工作负载属性的指令包括用于确定与所述应用相关联的第一信息处理***的用户的指令。
18.如权利要求17所述的信息处理***,其特征在于,用于确定所述工作负载策略的指令包括以下指令:
根据所述用户确定所述工作负载策略。
19.如权利要求14所述的信息处理***,其特征在于,配置所述硬件资源的指令包括用于存取所述硬件资源的操作***驱动程序的指令,并且其中所述硬件资源选自以下中的至少一个:
可用的处理器核心;
对所述可用处理器核心的独占存取程度;
可用的处理器多线程程度;
可用的背景执行程度;
可用的用户模式执行程度;
处理器频率;
处理器架构;
处理器缓存结构;
处理器电源状态;
可用的处理器的缓存容量;
可用的处理器的电源消耗;
可用的指令集架构;
可用的图像处理单元;
可用的存储器容量;
可用的存储器吞吐量;
可用的非均匀存储器存取程度;
可用的存储容量;
可用的存储吞吐量;
可用的存储延迟;
可用的网络容量;
可用的网络吞吐量;
可用的网络延迟;
***重启功能;
***掉电功能;以及
在所述信息处理***上执行的操作***。
20.如权利要求14所述的信息处理***,还包括以下指令:
由所述应用监测至少一些所述硬件资源的操作状态,其中基于所述操作状态来执行用于配置所述硬件资源的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/613,191 US9684540B2 (en) | 2015-02-03 | 2015-02-03 | Dynamically controlled workload execution by an application |
US14/613,191 | 2015-02-03 | ||
PCT/US2016/012329 WO2016126358A1 (en) | 2015-02-03 | 2016-01-06 | Dynamically controlled workload execution by an application |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107209696A true CN107209696A (zh) | 2017-09-26 |
Family
ID=55300771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680008337.4A Pending CN107209696A (zh) | 2015-02-03 | 2016-01-06 | 由应用动态控制的工作负载执行 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9684540B2 (zh) |
EP (1) | EP3254194B1 (zh) |
CN (1) | CN107209696A (zh) |
WO (1) | WO2016126358A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756312A (zh) * | 2021-01-11 | 2022-07-15 | 戴尔产品有限公司 | 用于对本地服务进行远程协助优化的***和方法 |
CN114764353A (zh) * | 2021-01-13 | 2022-07-19 | 戴尔产品有限公司 | 用于信息处置***(ihs)全***优化的ml到ml的编排***和方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9575811B2 (en) | 2015-02-03 | 2017-02-21 | Dell Products L.P. | Dynamically controlled distributed workload execution |
US9747121B2 (en) | 2015-04-14 | 2017-08-29 | Dell Products L.P. | Performance optimization of workloads in virtualized information handling systems |
US10162405B2 (en) * | 2015-06-04 | 2018-12-25 | Intel Corporation | Graphics processor power management contexts and sequential control loops |
US10855532B2 (en) | 2018-10-08 | 2020-12-01 | Dell Products L.P. | System and method to perform solution aware server compliance and configuration |
US11562263B2 (en) | 2020-01-17 | 2023-01-24 | Visa International Service Association | Method, system, and computer program product for dynamically scheduling machine learning inference jobs with different quality of services on a shared infrastructure |
US11366651B2 (en) * | 2020-03-31 | 2022-06-21 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Framework for hardware-specific analytic plugins |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070240161A1 (en) * | 2006-04-10 | 2007-10-11 | General Electric Company | System and method for dynamic allocation of resources in a computing grid |
CN101694633A (zh) * | 2009-09-30 | 2010-04-14 | 曙光信息产业(北京)有限公司 | 计算机作业调度设备、方法及*** |
US20110154353A1 (en) * | 2009-12-22 | 2011-06-23 | Bmc Software, Inc. | Demand-Driven Workload Scheduling Optimization on Shared Computing Resources |
CN103365713A (zh) * | 2012-04-01 | 2013-10-23 | 华为技术有限公司 | 一种资源的调度和管理方法及装置 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制*** |
US20140108639A1 (en) * | 2012-10-11 | 2014-04-17 | International Business Machines Corporation | Transparently enforcing policies in hadoop-style processing infrastructures |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168244A1 (en) | 2006-01-19 | 2007-07-19 | International Business Machines Corporation | Methods and apparatus for coordinating and selecting protocols for resources acquisition from multiple resource managers |
US20070198982A1 (en) * | 2006-02-21 | 2007-08-23 | International Business Machines Corporation | Dynamic resource allocation for disparate application performance requirements |
US8156179B2 (en) | 2007-04-26 | 2012-04-10 | Platform Computing Corporation | Grid-enabled, service-oriented architecture for enabling high-speed computing applications |
US20090100435A1 (en) * | 2007-10-11 | 2009-04-16 | Microsoft Corporation | Hierarchical reservation resource scheduling infrastructure |
US8286195B2 (en) * | 2007-10-31 | 2012-10-09 | Microsoft Corporation | Controlling hardware across two or more simultaneously running operating systems |
US8931038B2 (en) | 2009-06-19 | 2015-01-06 | Servicemesh, Inc. | System and method for a cloud computing abstraction layer |
KR101564481B1 (ko) | 2009-01-30 | 2015-10-29 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 용량 플래닝 및 작업부하 관리를 통합하기 위한 시스템 및 방법 |
US8429666B2 (en) | 2011-01-25 | 2013-04-23 | Google Inc. | Computing platform with resource constraint negotiation |
US20140025572A1 (en) * | 2013-01-25 | 2014-01-23 | Concurix Corporation | Tracing as a Service |
KR101569093B1 (ko) | 2013-08-13 | 2015-11-13 | 삼성에스디에스 주식회사 | 분산 시스템에서 데이터를 처리하는 방법 |
EP2843537B1 (en) | 2013-08-30 | 2019-03-27 | Fujitsu Limited | Method and systems for simulating a workload of a storage system |
US9262220B2 (en) | 2013-11-15 | 2016-02-16 | International Business Machines Corporation | Scheduling workloads and making provision decisions of computer resources in a computing environment |
US9494998B2 (en) * | 2013-12-17 | 2016-11-15 | Intel Corporation | Rescheduling workloads to enforce and maintain a duty cycle |
US9747121B2 (en) | 2015-04-14 | 2017-08-29 | Dell Products L.P. | Performance optimization of workloads in virtualized information handling systems |
-
2015
- 2015-02-03 US US14/613,191 patent/US9684540B2/en active Active
-
2016
- 2016-01-06 WO PCT/US2016/012329 patent/WO2016126358A1/en active Application Filing
- 2016-01-06 EP EP16702995.8A patent/EP3254194B1/en active Active
- 2016-01-06 CN CN201680008337.4A patent/CN107209696A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070240161A1 (en) * | 2006-04-10 | 2007-10-11 | General Electric Company | System and method for dynamic allocation of resources in a computing grid |
CN101694633A (zh) * | 2009-09-30 | 2010-04-14 | 曙光信息产业(北京)有限公司 | 计算机作业调度设备、方法及*** |
US20110154353A1 (en) * | 2009-12-22 | 2011-06-23 | Bmc Software, Inc. | Demand-Driven Workload Scheduling Optimization on Shared Computing Resources |
CN103365713A (zh) * | 2012-04-01 | 2013-10-23 | 华为技术有限公司 | 一种资源的调度和管理方法及装置 |
US20140108639A1 (en) * | 2012-10-11 | 2014-04-17 | International Business Machines Corporation | Transparently enforcing policies in hadoop-style processing infrastructures |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756312A (zh) * | 2021-01-11 | 2022-07-15 | 戴尔产品有限公司 | 用于对本地服务进行远程协助优化的***和方法 |
CN114756312B (zh) * | 2021-01-11 | 2024-03-22 | 戴尔产品有限公司 | 用于对本地服务进行远程协助优化的***和方法 |
CN114764353A (zh) * | 2021-01-13 | 2022-07-19 | 戴尔产品有限公司 | 用于信息处置***(ihs)全***优化的ml到ml的编排***和方法 |
CN114764353B (zh) * | 2021-01-13 | 2023-09-29 | 戴尔产品有限公司 | 用于信息处置***(ihs)全***优化的ml到ml的编排***和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016126358A1 (en) | 2016-08-11 |
EP3254194B1 (en) | 2024-02-28 |
US9684540B2 (en) | 2017-06-20 |
US20160224382A1 (en) | 2016-08-04 |
EP3254194A1 (en) | 2017-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107209697A (zh) | 动态控制的工作负载执行 | |
CN107209696A (zh) | 由应用动态控制的工作负载执行 | |
US11392843B2 (en) | Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer | |
US10127080B2 (en) | Dynamically controlled distributed workload execution | |
CN111406250B (zh) | 无服务器计算环境中的使用经预取的数据的配设 | |
CN102521154B (zh) | 用于创建低功率区域的动态存储器分配和重新定位 | |
CN104049712B (zh) | 用于计算机***的功率管理方法和*** | |
CN101650660B (zh) | 从中央存储装置引导计算机*** | |
US8832369B2 (en) | Systems and methods for remote raid configuration in an embedded environment | |
CN105052111B (zh) | 跨群集边界的服务迁移 | |
CN110249311A (zh) | 云计算***中针对虚拟机的资源管理 | |
US20120036383A1 (en) | Power supply for networked host computers and control method thereof | |
US20160224377A1 (en) | Optimization of proprietary workloads | |
US20170116036A1 (en) | Operating Programs on a Computer Cluster | |
CN103399781A (zh) | 云服务器及其虚拟机管理方法 | |
WO2016058560A1 (zh) | 一种基于服务端与外部缓存***的外接式计算设备加速方法与实现该方法的设备 | |
CN112486491A (zh) | 页面生成方法、装置、计算机设备及存储介质 | |
CN109474467A (zh) | 网络自动化管理方法、装置、存储介质及电子设备 | |
CN107977254A (zh) | 云数据***中请求的响应方法和计算机可读存储介质 | |
JP6042454B2 (ja) | ユーザ生成によるデータセンターの省電力 | |
CN110221910A (zh) | 用于执行mpi作业的方法和装置 | |
US9535753B2 (en) | Context and optimization framework | |
CN101859307B (zh) | 键盘-屏幕-鼠标切换器、计算机***与文件搜寻方法 | |
US20210406064A1 (en) | Systems and methods for asynchronous job scheduling among a plurality of managed information handling systems | |
US11288046B2 (en) | Methods and systems for program optimization utilizing intelligent space exploration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |