CN111177984A - 电子设计自动化中异构计算单元的资源利用 - Google Patents
电子设计自动化中异构计算单元的资源利用 Download PDFInfo
- Publication number
- CN111177984A CN111177984A CN201910561303.3A CN201910561303A CN111177984A CN 111177984 A CN111177984 A CN 111177984A CN 201910561303 A CN201910561303 A CN 201910561303A CN 111177984 A CN111177984 A CN 111177984A
- Authority
- CN
- China
- Prior art keywords
- computing
- eda
- resource utilization
- units
- heterogeneous
- 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
- 238000013461 design Methods 0.000 title claims abstract description 36
- 230000015654 memory Effects 0.000 claims description 35
- 238000000034 method Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 14
- 238000001459 lithography Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 230000001934 delay Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011867 re-evaluation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W16/00—Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
- H04W16/02—Resource partitioning among network components, e.g. reuse partitioning
- H04W16/10—Dynamic resource partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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
-
- 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/5061—Partitioning or combining of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0032—Distributed allocation, i.e. involving a plurality of allocating devices, each making partial allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/02—CAD in a network environment, e.g. collaborative CAD or distributed simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
- Power Sources (AREA)
- Stored Programmes (AREA)
Abstract
一种系统可以包括异构计算单元池,该异构计算单元池被配置以执行用于设计或验证电路的电子设计自动化(EDA)应用,其中异构计算单元池包括具有不同计算能力的多个计算单元。该系统还可以包括资源利用引擎,该资源利用引擎被配置以识别将为EDA应用进行的EDA操作,在异构计算单元池之中选择计算单元,以基于特定于所选择的计算单元的确定的计算能力来执行EDA操作,并将EDA操作的执行分配至所选择的计算单元。
Description
背景技术
电子电路(例如集成微电路)几乎用于现代社会的每个方面,从汽车、微波,到个人计算机。微电路的设计可以涉及许多步骤,被称为“设计流程”。设计流程的具体步骤通常取决于被设计的微电路的类型、其复杂性、设计团队,以及将制造微电路的微电路制造商或芯片制造厂家。电子设计自动化(EDA)应用支持制造前的电路设计和验证。EDA应用可以包括用以在设计流程的各个阶段测试或验证设计的各种功能、工具或特征。
发明内容
所公开的实施方式包括可以支持在执行EDA操作时对异构计算单元的资源利用的系统、方法、设备和逻辑。
在一个示例中,方法可以由计算系统进行、执行或实现。该方法可以包括:识别异构计算单元池(a pool of heterogeneous compute units),所述异构计算单元池被配置以执行用于设计或验证电路的EDA应用,其中异构计算单元池包括具有不同计算能力的多个计算单元;识别将为EDA应用进行的EDA操作;在异构计算单元池之中选择计算单元,以基于特定于所选择的计算单元的确定的计算能力(determined computing capability)来执行EDA操作;以及将EDA操作的执行分配至所选择的计算单元。
在另一示例中,系统可以包括异构计算单元池,该异构计算单元池被配置以执行用于设计或验证电路的EDA应用,其中异构计算单元池包括具有不同计算能力的多个计算单元。系统还可以包括资源利用引擎(resource utilization engine),该资源利用引擎被配置以识别将为EDA应用进行的EDA操作;在异构计算单元池之中选择计算单元,以基于特定于所选择的计算单元的确定的计算能力来执行EDA操作;并将EDA操作的执行分配至所选择的计算单元。
在又一示例中,非瞬时性机器可读介质可以存储处理器可执行指令。当指令被执行时,指令可以使系统:识别异构计算单元池,所述异构计算单元池被配置以执行用于设计或验证电路的EDA应用,其中异构计算单元池包括具有不同计算能力的多个计算单元;识别将为EDA应用进行的EDA操作;在异构计算单元池之中选择计算单元,以基于特定于所选择的计算单元的确定的计算能力来执行EDA操作;并将EDA操作的执行分配至所选择的计算单元。
附图说明
在以下详细描述中并参考附图描述了一些示例。
图1示出了支持在执行EDA操作时对异构计算单元的资源利用的计算系统的示例;
图2示出了资源利用引擎对特定于配置的(configuration-specific)EDA资源的利用的示例;
图3示出了资源利用引擎对EDA操作的性能基准测试(performancebenchmarking)的示例;
图4示出了资源利用引擎对与配置无关的(configuration-agnostic)EDA资源的利用的示例;
图5示出了逻辑的示例,系统可以实施该逻辑以支持在执行EDA操作时对异构计算单元的资源利用;
图6示出了支持在执行EDA操作时对异构计算单元的资源利用的系统的示例。
具体实施方式
以下公开涉及可以用于促进电路的设计和制造的EDA应用和CAD系统。随着技术的进步,现代电路设计可能包括数十亿或更多的部件。为了支持日益增加的电路设计复杂程度,EDA应用可以包括各种特征,例如高级合成、原理图捕获、晶体管或逻辑模拟、场解算器、功能和物理验证、几何处理、等效检查、设计规则检查、掩码数据准备等。这些各种EDA处理可以通过实施各自相应EDA处理的一系列EDA操作的执行来进行。
被配置以执行EDA应用和EDA处理的计算环境在计算能力和资源配置上可以不同。被配置以执行EDA应用的计算系统可以包括范围从16个CPU到10,000个CPU或更多倍的CPU的分布式系统。通常,这些计算系统中可用的计算资源是异构的,具有不同的硬件配置、处理速度、网络带宽或延迟、CPU数量、可用内存系统、物理或虚拟资源以及其他不同的计算能力。提高在具有异构计算资源的计算环境中的资源利用可以提高EDA计算系统的执行延迟(execution latencies)和计算性能。
本文描述的特征可以支持在执行EDA操作时对异构计算单元的资源利用。具体地,本文描述的基于EDA的资源利用特征可以提供用于在异构计算单元池中分布将要执行的EDA操作的特定于EDA的标准。这种特定于EDA的资源利用标准可以基于可用计算资源的具体资源(例如,硬件)配置或与配置无关(例如,没有不同计算资源之间的硬件或资源配置的直接比较)。
特定于配置的EDA资源利用可以包括:识别与各种EDA操作的执行相关的特定计算能力(particular computing capability),并将这种EDA操作的执行分配给具有增加的用于执行EDA操作的适用性的计算资源,例如具有适于执行具体EDA操作或处理的阈值CPU速度、网络带宽或内存容量的单元。与配置无关的EDA资源利用包括:对针对不同EDA操作的异构计算单元的性能进行基准测试,以及选择表现出用于EDA操作的执行的阈值性能特性(例如,最低执行延迟)的具体计算资源。
本文对这些和其他基于EDA的资源利用特征进行了更详细的描述。
图1示出了支持在执行EDA操作时对异构计算单元的资源利用的计算系统100的示例。计算系统100可以包括单个或多个计算设备,例如应用服务器、计算节点、数据服务器、台式或膝上型计算机、智能手机或其他移动设备、平板设备、嵌入式控制器等。计算系统100可以具有使用特定于EDA的资源利用标准来分配EDA操作的执行的能力。在这方面,当选择计算资源来执行具体EDA操作时,计算系统100可以考虑将要执行的具体EDA操作。
结合本文所描述的各种基于EDA的资源利用特征,计算系统100可以实施、利用或以其他方式支持如2018年1月17日提交的、申请号为15/873,827、标题为“DYNAMICDISTRIBUTED RESOURCE MANAGEMENT”(“动态分布式资源管理”,以下简称'827申请)的美国专利申请中所描述的动态资源分配,上述申请的全部内容通过引用并入本文。由计算系统100所使用和分配的计算单元可以根据在'827申请中描述的各种动态分配机制以及根据在本文描述的各种基于EDA的资源利用特征而被维护和分配。
计算系统100可包括多个计算单元以执行EDA处理和操作。如本文所使用的,计算单元可以指用于执行EDA应用的任何物理的、逻辑的或虚拟的计算资源。计算单元可以被实施为分布式计算系统的一部分,并采取例如计算节点、服务器刀片(server blades)、服务器机架、计算群集或其他各种计算资源的形式。作为示例性实施方式,图1所示的计算系统100包括作为分布式计算系统的一部分的计算单元121-132。计算单元121-132可以通过通信网络与任意数量的中间路由设备通信。计算单元121-132可以用作能够对EDA处理(例如,设计-规则-检查处理、光学接近校正处理等)进行EDA计算的单独实体(无论是物理上还是逻辑上)。
计算单元可以被实施为硬件和软件的组合,并因此可以包括物理计算资源(例如CPU、内存、网络资源等)和处理器可执行的指令(如工作流程处理、指令调度逻辑、资源获取或线程激活指令等)以支持EDA计算。在操作中,计算单元121-132可以并行操作,例如,每个计算单元用作进行EDA操作的执行实体,无论是在IC设计的特定部分上还是通过执行特定EDA操作集。
计算单元可以是异构的。当计算单元的至少一种计算能力不同时,两个计算单元可以被称为异构。例如,计算单元121-132可以形成异构计算单元池,其中计算单元121-132中的至少两个计算单元在CPU的数量、CPU速度、内存容量、网络带宽或任何其他计算能力方面不同。
EDA应用可以在各种类型的计算环境中执行,包括全部或部分经由云计算执行。如此,计算系统100(包括计算单元121-132)可以部分经由公共云、私有云或混合云实施。附加地或可替代的,EDA应用可以经由软件即服务(“SaaS”)分布模型(无论是全部还是部分)而被执行,并且包括计算系统100的计算资源可以是非现场的(例如,关于EDA应用用户)、现场的,或者二者的组合。本文描述的各种EDA特征可以被实施为SaaS分布模型的一部分,或者经由云计算实施方式来实现。
如本文更详细描述的,计算系统100可以基于特定于EDA的资源利用标准来控制异构计算单元中的资源利用。在图1的环境中,计算系统100可以通过将特定EDA操作的执行分配给所选择的计算单元来控制在计算单元121-131中利用哪些计算资源。在提供基于EDA的资源利用时,计算系统100可以基于被确定为与特定EDA操作的执行相关的所选择的计算单元的特定能力,来选择用于EDA操作执行的计算单元。换言之,本文描述的基于EDA的资源利用特征可以包括具有特别适合于特定EDA操作的执行的计算能力的特定计算单元的选择。这种基于EDA的资源利用可以由资源利用引擎110进行,如图1所示。
计算系统100可以以各种方式实施资源利用引擎110(及其部件),例如,作为硬件和程序。用于资源利用引擎110的程序可以采取被存储在非瞬时性机器可读存储介质上的处理器可执行指令的形式,并且用于资源利用引擎110的硬件可以包括执行这些指令的处理器。处理器可以采取单一处理器或多处理器系统的形式,并且在一些示例中,计算系统100使用共同的计算系统特征或硬件部件(例如,用于资源利用引擎110和计算引擎101、102和103的公共处理器或公共存储介质)来实施多引擎部件或系统元件。
在操作中,资源利用引擎110可以识别被配置以执行EDA应用的异构计算单元池,例如可以包括具有不同计算能力的多个计算单元的计算单元121-132。资源利用引擎110还可以识别将为EDA应用进行的EDA操作、在异构计算单元池之中选择计算单元以基于特定于所选择的计算单元的确定的计算能力来执行EDA操作,并将EDA操作的执行分配至所选择的计算单元。
接下来将更详细地描述这些及其他基于EDA的资源利用特征,包括特定于配置的EDA资源利用和与配置无关的EDA资源利用。
图2示出了资源利用引擎110对特定于配置的EDA资源的利用的示例。在图2所示的示例中,资源利用引擎110将EDA操作的执行分配至包括计算单元201、202和203的分布式计算环境。
资源利用引擎110可以将计算单元201、202和203识别为异构计算单元池。为此,资源利用引擎110可以分别确定计算单元201、202和203的各种计算能力。这种确定可以经由资源利用引擎110轮询计算单元201、202和203以获取资源配置(或能指示计算能力的其他相关信息)来完成。轮询可以是定期的或不定期的,例如,作为系统启动期间的资源发现/识别处理的一部分。附加地或可替代地,计算单元201、202和203本身可以将能指示相应计算能力的任何信息提供至资源利用引擎110。
以任意多种方式,资源利用引擎110可以识别计算单元201、202和203是异构的,并且在包括CPU、处理器速度、可用随机存取内存(RAM)、内存容量和网络延迟的各种计算能力方面不同。图2描述了对于计算单元201、202和203的这些不同计算能力的示例值。
在一些实施方式中,资源利用引擎110确定计算单元201、202和203的总体计算能力,该总体计算能力可以指存在于相应计算单元中的计算能力的总和(例如,总共500GB的存储,无论这种存储容量是已使用的、已保留的还是可用的)。在其他示例中,资源利用引擎110确定计算单元201、202和203的可用计算能力,计算单元201、202和203的可用计算能力可以指可被分配用于EDA操作的执行的空闲或未使用的计算能力(例如,对于具有500GB总存储容量的计算单元,可用存储是200GB)。在本文中考虑了基于总体计算能力、可用计算能力或以上二者的基于EDA的资源利用特征。因此,本文所使用的对计算能力的任何引用可以指总计算能力或可用计算能力,并且资源利用引擎110可以使用两者中的任一形式的计算能力(或二者的组合)来支持基于EDA的资源利用。
在操作中,资源利用引擎110可以在EDA操作和处理的执行中对所利用的计算资源进行调度、分配或以其他方式进行控制时,考虑异构计算单元池的计算能力的差异。在图2所示的示例中,资源利用引擎110可以在用于电路设计210的设计或验证的EDA处理的执行中分配计算资源。尽管图2中的电路设计210被示为电路布局,但任何电路格式都被考虑在内,包括分层数据集、电路原理图、RTL或VHDL设计等。如此,资源利用引擎110可以支持在电路设计210中各种EDA操作的执行。
一些计算能力可以比其他计算能力对具体EDA操作的效率和执行延迟具有更大影响。例如,涉及布尔运算(Boolean operations)、整数比较或行扫描处理的EDA操作可以比其他计算能力更受处理器速度和缓存延迟的影响。为电路设计210执行的光刻操作可以涉及快速傅立叶变换,并且可以受益于用于高效执行的增加的内存容量。以类似的方式,包括设计规则检查(DRC)操作、光学接近校正(OPC)操作、布局对照原理图(LVS)、多模式操作、逻辑验证操作、综合操作等的EDA处理,可以在哪种特定计算能力(或计算能力集)最影响执行延迟方面不同。
对于给定的EDA操作,资源利用引擎110可以基于特定于EDA的资源利用标准来选择计算单元,以分配用于EDA操作的执行。特定于EDA的资源利用标准可以将EDA操作(或操作类型)与和EDA操作的执行相关的特定计算能力相关联。这种关联可以是预先配置的或用户指定的,并且特定于EDA的资源利用标准可以控制具有特定计算能力的计算单元的选择以用于具体EDA操作的执行。
作为具体示例,特定于EDA的资源利用标准可以将DRC操作与处理器速度和缓存存储器速度的特定计算能力相关联。在该示例中,资源利用引擎110可以选择具有阈值处理器速度(例如,>3.0GHz)或阈值缓存内存速度(例如,<3.5时钟周期访问)的具体算单元以执行DRC操作。作为另一示例,资源利用引擎110可以从异构计算单元池中选择计算单元,以用最高处理器速度、最高缓存内存速度或其二者的组合进行DRC操作。
通过示例,特定于EDA的使用标准可以将光刻操作与主内存速度的特定计算能力相关联,其中主内存可以指与外部存储设备(例如硬盘驱动)相对照的计算单元内部的物理内存(例如RAM)。这可以是当光刻EDA操作可能不能有效地缓存时的情况,并因此受益于到其他系统内存资源(例如RAM等)的增加的内存带宽。在该示例中,资源利用引擎110可以选择具有阈值RAM速度(例如,>900MHz)的具体计算单元来执行光刻操作。作为另一示例,资源利用引擎110可以从异构计算单元池中选择计算单元以用最高的主内存(例如,RAM)速度来进行DRC操作。作为又一示例,特定于EDA的利用标准可以例如根据实施方式(基于整数的多模式操作的处理器速度或基于图形的多模式操作的缓存大小/速度),将多模式EDA操作与和处理器速度或缓存速度相关的特定计算能力相关联。
以这种方式,资源利用引擎110可以在异构计算单元201、202和203的池之中选择计算单元,以基于特定于所选择的计算单元的所确定的计算能力来执行EDA操作。作为图2中所示的示意性实例,资源利用引擎110选择EDA操作1(operation1)的执行并将该执行分配至计算单元201。执行的分配可以由资源利用引擎110通过发出执行指令、通过对计算单元201上的EDA操作1的执行线程进行初始化、或通过调度用于EDA操作1的执行的计算单元201上的计算资源来进行。也如图2所示,资源利用引擎110选择EDA操作2的执行并将该执行分配至计算单元202。
因此,资源利用引擎110可以选择具有特定的基于配置的计算能力的计算单元以用于EDA操作的执行。通过将特定EDA操作与相关计算能力相关联,资源利用引擎110可以对EDA操作执行进行选择并将其分配至更适合执行这种EDA操作的计算单元。即,本文描述的基于EDA的资源利用特征可以提供特定的基于EDA的技术解决方案,用于在电路设计中提高应用执行延迟(application execution latencies)。在这方面,资源利用引擎110可以提高执行EDA应用的计算系统的效率,并且通过这种基于EDA的资源利用特征可以减少EDA应用的执行时间。
(例如,如上所述的)特定于配置的EDA资源利用可以基于各种计算单元的特定物理或逻辑计算特性,如CPU、处理器速度、RAM、内存容量、网络延迟等。另一方面,与配置无关的EDA资源利用可以由资源利用引擎110进行,而不需要确定异构计算单元的特定资源配置。下面的图3和图4描述了与配置无关的EDA资源特征示例。
图3示出了资源利用引擎110对EDA操作进行性能基准测试的示例。通过性能基准测试,资源利用引擎110可以表征异构计算单元,而不需要确定计算单元的实际资源配置。即,资源利用引擎110不需要确定各种计算单元的CPU的特定数量、RAM可用性、网络延迟或其他特定计算能力。相反,性能基准可以用作计算能力,资源利用引擎110通过该计算能力选择和分配不同EDA操作的执行。换言之,性能基准可以将多种资源计算能力(CPU速度、内存速度、网络延迟等)封装为奇异参考点(a singular point of reference),通过该参考点,资源利用引擎110可以比较和评估用于执行EDA操作的各种计算单元。
在图3所示的示例中,资源利用引擎110将计算单元301、302和303识别为可用于EDA应用的执行的计算资源。注意,在图3中(并与图2相比),未示出计算单元301、302和303的特定资源配置(例如CPU、处理器速度、RAM、内存容量和网络延迟),因为资源利用引擎110不需要确定计算单元301、302和303的这些特定资源配置来用于选择和用于EDA操作分配。相反,资源利用引擎110可以通过性能基准来表征各种计算单元301、302和303。如图3所示,资源利用引擎110可以将基准测试操作310发送至计算单元301、302和303中的每个计算单元,并跟踪计算单元301、302和303的执行性能。
资源利用引擎110发起的基准测试操作可以特定于具体EDA操作。例如,向计算单元301、302和303发起的基准测试操作310可以是DRC操作或LVS操作,通过该操作,资源利用引擎110可以表征用于DRC或LVS EDA处理的计算单元301、302和303的计算能力。资源利用引擎110可以针对多个不同EDA操作对计算单元301、302和303的性能进行基准测试。在这样做的过程中,资源利用引擎110可以将特定计算能力(特定于EDA操作的性能基准)与每个不同的EDA操作相关联。
性能基准可以采用针对具体EDA处理或EDA操作的执行延迟的形式。在图3所示的示例中,资源利用引擎110维持计算单元基准表320。计算单元基准表320包括关于不同EDA操作(包括LVS操作、OPC操作和DRC操作)所跟踪的针对计算单元301、302和303的示例执行延迟。计算单元基准表320可以采取用以存储各种计算单元的性能基准的任何数据结构的形式。
存储在计算单元基准表320中的所跟踪的执行延迟可以特定于各种EDA操作,从而允许资源利用引擎110针对不同的EDA操作特定地评估计算单元301、302和303。注意,资源利用引擎110可以将计算单元301、302和303识别或确认为异构计算单元池,因为计算单元301、302和303对于所跟踪的EDA操作中的每一个EDA操作的执行延迟不同。
在一些实施方式中,资源利用引擎110获得针对特定EDA操作的多个不同性能基准。这些不同性能基准可由资源利用引擎110获得,该不同性能基准因输入电路设计尺寸或复杂性、正被分析电路的类型或资源利用引擎110可用来区分用于特定EDA操作的执行的参数的任何其他可配置参数而变化。为此,资源利用引擎110可以针对单个EDA操作发起多个不同的基准操作(或操作集)。这些不同的基准操作可以由资源利用引擎110配置,以例如针对正被基准测试的EDA操作而在不同的输入数据集或不同的代表性电路上进行操作。
如上所述,对于不同的EDA操作,资源利用引擎可以获得异构计算单元池301、302和303之中的计算单元的性能基准。资源利用引擎110可以使用所获得的性能基准来选择计算单元以执行特定EDA操作。由于性能基准可以被确定而无需对计算单元301、302和303的资源配置的明确识别或确定,因此资源利用引擎110可以支持与配置无关的EDA资源利用,例如,如接下来在图4中所描述的那样。
图4示出了资源利用引擎110对与配置无关的EDA资源的利用的示例。具体地,图4提供了资源利用引擎110使用确定的性能基准来选择计算单元以执行OPC操作的说明性示例。
具体地,资源利用引擎110在计算单元301、302和303中选择计算单元以执行用于电路设计的OPC操作。在做出这样的选择时,资源利用引擎110可以在计算单元基准表320中进行基准查找,以访问计算单元301、302和303的性能基准。这种性能基准可以分别是特定于计算单元301、302和303的计算能力,并且资源利用引擎110可以确定这种计算能力,而无需确定或识别计算单元301、302和303的任何具体资源(硬件或虚拟)配置。
正如本文所指出的,所获得的性能基准可以是特定于EDA操作的。即,资源利用引擎110可以确定特定于将要分配的OPC操作的计算单元301、302和303的计算能力(例如,性能基准)。在图3中,资源利用引擎110在特定于OPC操作的执行的计算单元基准表320中进行性能基准查找。返回的计算能力可以包括以执行延迟形式的性能基准:计算单元301为1063.6秒,计算单元302为805.1秒,计算单元303为1200.1秒。在该示例中,资源利用引擎110选择具有OPC操作的最小执行延迟(或者以另一方式,最佳性能基准)的计算单元。因此,资源利用引擎110可以选择OPC操作的执行并将该执行分配至(具有OPC操作的最小执行延迟的)计算单元302。
在一些实施方式中,计算单元基准表320可以存储特定于OPC操作的多个性能基准(例如,当获得多个代表性输入电路设计的OPC基准时)。资源利用引擎110可以选择与OPC操作将执行的电路设计(例如,电路设计210)相关联的特定性能基准。例如,资源利用引擎110可以在多个OPC操作基准之中选择与在电路尺寸、布局、设计或电路类型方面最紧密关联的性能基准。计算单元选择可以是基于所选择的性能基准(例如,对于所选择的性能基准,各个计算单元相比较情况如何)。
在其他示例中,资源利用引擎110可以组合多个性能基准以用于计算单元选择。例如,资源利用引擎110可以对所跟踪的不同OPC基准操作的多个执行延迟取平均值,并选择具有OPC操作的最小平均执行延迟的计算单元。加权平均可以由资源利用引擎110例如根据可自定义的权重(例如,用户指定的权重)而得到支持。
在上述任何方式中,资源利用引擎110都可以支持与配置无关的EDA资源利用。这些特征可以特定于EDA操作的计算单元性能而被定制,并且无需在计算单元的特定资源配置之间进行识别或比较来完成。相反,资源利用引擎110可以(例如,仅)对特定EDA操作的计算单元的性能进行加权,从而允许资源利用引擎110对异构计算单元的性能能力做出全面评估并优化资源利用。如此,与配置无关的EDA资源利用可以通过降低执行延迟和提高计算效率来改进EDA计算系统。
如本文所述,资源利用引擎110可以以各种方式支持基于EDA的资源利用。在实施本文描述的任意基于EDA的资源利用特征时,资源利用引擎110可以支持静态和动态资源优先级。在静态资源优先级中,资源利用引擎110可以访问静态资源列表,通过该静态资源列表用户可以手动地将特定计算单元与特定EDA操作或处理相关联。这样,资源利用引擎110可以支持可自定义的资源分配,通过该可自定义的资源分配,用户或系统管理员可以手动地控制用于EDA应用的执行的资源分配,这是在每个EDA操作的基础上进行的。
在一些实施方式中,资源利用引擎110可以支持动态资源优先级,该动态资源优先级可以包括在EDA应用执行期间计算单元或其他计算资源的任何动态重新评估。例如,在执行期间,资源利用引擎110可以收集特定于计算单元的性能或其他计算统计量,包括作为示例的EDA执行时间、实际处理器速度、平均可用内存或RAM容量、最大空闲时间等。这些动态收集的性能统计量可以用作更新的计算能力,资源利用引擎110通过该更新的计算能力评估可用计算资源,并且资源利用引擎110可以基于更新的计算能力动态地调整用于后续EDA操作的执行的资源选择。例如,实际运行时(run-time)执行时间可以用作更新的性能基准,并且资源利用引擎110可以基于更新的性能基准来选择用于后续EDA的执行的计算单元。本文还考虑了任何其他一致的动态/运行时调整。
图5示出了逻辑500的示例,系统可以实施该逻辑500以支持在执行EDA操作时对异构计算单元的资源利用。在一些示例中,计算系统100可以将逻辑500实施为硬件、存储在机器可读介质上的可执行指令,或二者的组合。计算系统100可以经由资源利用引擎110来实施逻辑500,例如,通过该资源利用引擎110,计算系统100可以将逻辑500进行或执行为一种用以支持在执行EDA操作时对异构计算单元的资源利用的方法。以下使用资源利用引擎110作为实施例来提供对逻辑500的描述。然而,由系统执行的各种其他实施选项是可能的。
在实施逻辑500时,资源利用引擎110可以识别异构计算单元池,所述异构计算单元池被配置以执行用于电路(502)的设计或验证的EDA应用。异构计算单元池可以包括具有不同计算能力的多个计算单元,并且资源利用引擎110可在系统初始化期间或经由资源发现(resource discovery)来识别计算单元。附加地或可替代地,当计算单元将状态和资源配置数据通信到资源利用引擎110时,资源利用引擎110可以监听所选择的网络端口。
资源利用引擎110可以识别将为EDA应用进行的EDA操作(504)。例如,资源利用引擎110可以控制被执行以用于EDA应用的资源调度和EDA操作。在一些实施方式中,资源利用引擎110可以实施EDA操作队列,以调度和分配由EDA计算环境中的计算资源(例如计算单元)所执行的EDA操作。
资源利用引擎110可以在异构计算单元池之中选择计算单元,以基于特定于所选择的计算单元的确定的计算能力来执行EDA操作(506)。如本文所述,计算能力可以是特定资源配置,例如CPU的数量、RAM速度、网络延迟、指令集架构等。在其他示例中,计算能力可以是与配置无关的,例如计算单元的执行延迟或其他性能基准。计算单元选择可以基于特定于EDA的资源利用标准,例如具有特定于EDA操作的阈值水平的特定计算能力的任何计算单元或具有最高(例如,最佳)水平的特定计算能力的计算单元(例如,最高CPU数量、最低网络延迟、最快内存速度等)。然后,资源利用引擎110可以将EDA操作的执行分配至所选择的计算单元(508)。
尽管通过图5示出和描述了基于EDA的资源利用特征的示例实施方式,但是逻辑500也可以包括任何数量的附加的或可替代的步骤。逻辑500可以附加地或可替代地实施本文描述的任何其他基于EDA的资源利用特征,例如关于资源利用引擎110的任何特征。
图6示出了支持在执行EDA操作时对异构计算单元的资源利用的系统600的示例。系统600可以包括处理器610,该处理器610可采用单个处理器或多处理器的形式。一个或多个处理器610可以包括适于执行存储在机器可读介质上的指令的任何中央处理单元(CPU)、微处理器或硬件设备。系统600可以包括机器可读介质620。机器可读介质620可以采取存储有可执行指令(例如图6所示的资源利用指令622)的任何非瞬时性电子、磁性、光学或其他物理存储设备的形式。因此,机器可读介质620可以是例如随机存取存储器(RAM)(例如动态RAM(DRAM))、闪存、自旋转移扭矩存储器、电可擦除可编程只读存储器(EEPROM)、存储器驱动器、光盘等。
系统600可以通过处理器610执行存储在机器可读介质620上的指令。执行这些指令可以使系统600进行任何本文所述的基于EDA的资源利用特征,包括根据任何资源利用引擎110的特征。
例如,由处理器610对资源利用指令622的执行可以使系统600识别被配置以执行用于电路的设计或验证的EDA应用的异构计算单元池,其中异构计算单元池包括具有不同计算能力的多个计算单元;识别将为EDA应用进行的EDA操作;在异构计算单元池之中选择计算单元,以基于特定于所选择的计算单元的确定的计算能力执行EDA操作;并将EDA操作的执行分配至所选择的计算单元。
上面描述的包括计算引擎101、102和103以及资源利用引擎110的系统、方法、设备和逻辑,可以在硬件、逻辑、电路和存储在机器可读介质上的可执行指令的许多不同组合中以许多不同方式来实现。例如,计算引擎101、102和103、资源利用引擎110或其组合可以包括:控制器、微处理器或专用集成电路(application specific integrated circuit,ASIC)中的电路,或可由离散逻辑或元件或其他类型的模拟或数字电路的组合来实现,其被组合在单个集成电路上或分布在多个集成电路中。一种产品(例如计算机程序产品)可以包括存储介质和存储在该介质上的机器可读指令,当其在终端、计算机系统或其他设备中被执行时,该机器可读指令使得该设备进行如任何上述描述所述的操作,包括根据计算引擎101、102和103、资源利用引擎110或其二者的组合所述的任何特征。
本文所描述的系统、设备和引擎(包括计算引擎101、102和103以及资源利用引擎110)的处理能力,可以分布在多个系统组件之中,例如在多个处理器和存储器(可选地包括多个分布式处理系统或云/网络元件)之中。参数、数据库和其他数据结构可以被单独地存储和管理,可以被结合到单个内存或数据库中,可以以许多不同的方式逻辑和物理地组织,以及可以以许多方式(包括数据结构,如链接列表、哈希表(hash tables)或隐式存储机制)实施。程序可以是单个程序、单独的程序、分布在若干内存和处理器中的程序的部分(例如,子例程),或者以许多不同的方式实施,例如在库(library)中(例如,共享库)。
尽管上文已描述了各种示例,但是更多实施方式是可能的。
Claims (15)
1.一种方法,包括:
通过计算系统(100、600):
识别(502)异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)池,所述异构计算单元池被配置以执行用于设计或验证电路的电子设计自动化(EDA)应用,其中所述异构计算单元池包括具有不同计算能力的多个计算单元;
识别(504)将为所述EDA应用进行的EDA操作;
在所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中选择(506)计算单元,以基于特定于所选择的计算单元的确定的计算能力来执行EDA操作;和
将所述EDA操作的执行分配(508)至所选择的计算单元。
2.根据权利要求1所述的方法,其特征在于,所述确定的计算能力包括:阈值中央处理单元(CPU)数量、阈值处理器速度、阈值内存速度或阈值可用内存量。
3.根据权利要求1所述的方法,其特征在于,所述选择包括:
识别与所述EDA操作相关的特定计算能力;和
从所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中选择具有所述特定计算能力的最高测量值的所述计算单元。
4.根据权利要求1所述的方法,其特征在于,所述确定的计算能力包括:用于特定于所选择的计算单元的所述EDA操作的性能基准。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:对于不同的EDA操作,通过以下步骤获得所述异构计算单元池之中的计算单元的性能基准:
向所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中的所述多个计算单元中的每个计算单元发起特定于所述不同的EDA操作的基准操作(310);和
跟踪所述多个计算单元(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)中的每个计算单元在执行所发起的基准操作(310)中的性能。
6.根据权利要求1至5中任意一项所述的方法,其特征在于:
所述EDA操作是设计规则检查(DRC)操作;和
所述选择包括:在所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中选择计算单元,以最高处理器速度、最高缓存内存速度或以上二者的组合进行所述DRC操作。
7.根据权利要求1至5中任意一项所述的方法,其特征在于:
所述EDA操作是光刻操作;和
所述选择包括:在所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中选择计算单元,以最高主内存速度进行所述光刻操作。
8.一种系统(100),包括:
异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303),其被配置以执行用于设计或验证电路的电子设计自动化(EDA)应用,其中所述异构计算单元池包括具有不同计算能力的多个计算单元(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303);
资源利用引擎(110),其被配置以:
识别将为所述EDA应用进行的EDA操作;
在所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中选择计算单元,以基于特定于所选择的计算单元的确定的计算能力来所述执行EDA操作;和
将所述EDA操作的执行分配至所选择的计算单元。
9.根据权利要求8所述的系统(100),其特征在于,所述确定的计算能力包括:阈值中央处理单元(CPU)数量、阈值处理器速度、阈值内存速度或阈值可用内存量。
10.根据权利要求8所述的系统(100),其特征在于,所述资源利用引擎(110)被配置以通过以下步骤选择所述计算单元:
识别与所述EDA操作相关的特定计算能力;和
从所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中选择具有所述特定计算能力的最高测量值的所述计算单元。
11.根据权利要求8所述的系统(100),其特征在于,所述确定的计算能力包括:用于特定于所选择的计算单元的所述EDA操作的性能基准。
12.根据权利要求11所述的系统(100),其特征在于,所述资源利用引擎(110)还被配置以:
对于不同的EDA操作,通过以下步骤获得用于所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中的计算单元的性能基准:
向所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中的所述多个计算单元中的每个计算单元发起特定于所述不同的EDA操作的基准操作(310);以及
跟踪所述多个计算单元(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)中的每个计算单元在执行所发起的基准操作(310)中的性能。
13.根据权利要求8至12中任一项所述的系统,其特征在于:
所述EDA操作是设计规则检查(DRC)操作;和
所述资源利用引擎(110)被配置以:在所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中选择计算单元,以最高处理器速度、最高缓存内存速度或以上二者的组合进行所述DRC操作。
14.根据权利要求8至12中任一项所述的系统,其特征在于:
所述EDA操作是光刻操作;和
所述资源利用引擎(110)被配置以:在所述异构计算单元池(121、122、123、124、125、126、127、128、129、130、131、132、201、202、203、301、302、303)之中选择计算单元,以进行具有最高主内存速度的所述光刻操作。
15.非瞬时性机器可读介质,其包括指令,当由处理器执行所述指令时,使系统进行根据权利要求1至7中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/169,306 US10771982B2 (en) | 2018-10-24 | 2018-10-24 | Resource utilization of heterogeneous compute units in electronic design automation |
US16/169,306 | 2018-10-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111177984A true CN111177984A (zh) | 2020-05-19 |
CN111177984B CN111177984B (zh) | 2024-04-05 |
Family
ID=67060289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910561303.3A Active CN111177984B (zh) | 2018-10-24 | 2019-06-26 | 电子设计自动化中异构计算单元的资源利用 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10771982B2 (zh) |
EP (1) | EP3644213A1 (zh) |
CN (1) | CN111177984B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11736458B2 (en) | 2021-04-23 | 2023-08-22 | Dell Products L.P. | Method and system for securely applying a stackable system role to an information handling system |
US12008415B2 (en) | 2021-04-23 | 2024-06-11 | Dell Products L.P. | Method and system for a semi-democratic determination of stackable system roles in an information handling system environment |
US11915038B2 (en) | 2021-04-23 | 2024-02-27 | Dell Products L.P. | Method and system for collectively-determining stackable system roles in an information handling system environment |
US11698796B2 (en) * | 2021-04-23 | 2023-07-11 | Dell Products L.P. | Method and system for a semi-dictatorial determination of stackable system roles in an information handling system |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040006584A1 (en) * | 2000-08-08 | 2004-01-08 | Ivo Vandeweerd | Array of parallel programmable processing engines and deterministic method of operating the same |
US20090106008A1 (en) * | 2007-10-18 | 2009-04-23 | Michael John Branson | Performance sampling in distributed systems |
US20110246653A1 (en) * | 2010-03-30 | 2011-10-06 | Synopsys, Inc. | Efficient provisioning of resources in public infrastructure for electronic design automation (eda) tasks |
EP2565788A1 (en) * | 2011-09-01 | 2013-03-06 | Fujitsu Limited | Method and apparatus for selecting optimum computing resources |
US20140196050A1 (en) * | 2013-01-07 | 2014-07-10 | Ki Soo Yu | Processing system including a plurality of cores and method of operating the same |
US8904321B1 (en) * | 2012-11-06 | 2014-12-02 | Cadence Design Systems, Inc. | System and method for automatically generating coverage constructs and constraint solver distributions |
US20170277550A1 (en) * | 2016-03-22 | 2017-09-28 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Best performance delivery in heterogeneous computing unit environment |
US20170371784A1 (en) * | 2016-06-24 | 2017-12-28 | Advanced Micro Devices, Inc. | Targeted per-line operations for remote scope promotion |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6080204A (en) | 1997-10-27 | 2000-06-27 | Altera Corporation | Method and apparatus for contemporaneously compiling an electronic circuit design by contemporaneously bipartitioning the electronic circuit design using parallel processing |
US20020152060A1 (en) | 1998-08-31 | 2002-10-17 | Tseng Ping-Sheng | Inter-chip communication system |
US6782408B1 (en) * | 1999-03-30 | 2004-08-24 | International Business Machines Corporation | Controlling a number of instances of an application running in a computing environment |
US6634008B1 (en) | 1999-06-20 | 2003-10-14 | Fujitsu Limited | Methodology server based integrated circuit design |
US6539522B1 (en) | 2000-01-31 | 2003-03-25 | International Business Machines Corporation | Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs |
US6594799B1 (en) | 2000-02-28 | 2003-07-15 | Cadence Design Systems, Inc. | Method and system for facilitating electronic circuit and chip design using remotely located resources |
US7092985B2 (en) | 2000-03-30 | 2006-08-15 | United Devices, Inc. | Method of managing workloads and associated distributed processing system |
US6578174B2 (en) | 2001-06-08 | 2003-06-10 | Cadence Design Systems, Inc. | Method and system for chip design using remotely located resources |
WO2004051520A2 (en) | 2002-11-19 | 2004-06-17 | Prophicy Semiconductor, Inc. | System and method for automated electronic device design |
US7505891B2 (en) | 2003-05-20 | 2009-03-17 | Verisity Design, Inc. | Multi-user server system and method |
US7502859B2 (en) | 2003-09-19 | 2009-03-10 | Panasonic Corporation | Dynamic resource management for distributed retrieval system for security |
JP4603256B2 (ja) | 2003-12-01 | 2010-12-22 | 日本電気株式会社 | ユーザ認証システム |
JP3896111B2 (ja) | 2003-12-15 | 2007-03-22 | 株式会社日立製作所 | リソース割り当てシステム、方法及びプログラム |
US8429660B2 (en) | 2004-08-23 | 2013-04-23 | Goldman, Sachs & Co. | Systems and methods to allocate application tasks to a pool of processing machines |
US7681242B2 (en) | 2004-08-26 | 2010-03-16 | Novell, Inc. | Allocation of network resources |
US8555286B2 (en) * | 2004-10-27 | 2013-10-08 | International Business Machines Corporation | Method, system, and apparatus for establishing a software configurable computing environment |
US20060200266A1 (en) | 2005-03-04 | 2006-09-07 | Athena Design Systems, Inc. | Systems for performing parallel distributed processing for physical layout generation |
EP2080130A1 (en) * | 2006-10-09 | 2009-07-22 | Mentor Graphics Corporation | Properties in electronic design automation |
US8584131B2 (en) | 2007-03-30 | 2013-11-12 | International Business Machines Corporation | Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment |
US20090064075A1 (en) | 2007-08-28 | 2009-03-05 | International Business Machines Corporation | Systems, methods and computer products for schematic editor mulit-window enhancement of hierarchical integrated circuit design |
US8578381B2 (en) | 2007-10-26 | 2013-11-05 | Oracle America, Inc. | Apparatus, system and method for rapid resource scheduling in a compute farm |
US8321558B1 (en) | 2009-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Dynamically monitoring and modifying distributed execution of programs |
US8285681B2 (en) | 2009-06-30 | 2012-10-09 | Commvault Systems, Inc. | Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites |
US8606920B1 (en) | 2010-05-28 | 2013-12-10 | Amazon Technologies, Inc. | Providing notification of computing resource availability for on-demand allocation |
US8429276B1 (en) | 2010-10-25 | 2013-04-23 | Juniper Networks, Inc. | Dynamic resource allocation in virtual environments |
US8825791B2 (en) | 2010-11-24 | 2014-09-02 | Red Hat, Inc. | Managing subscribed resource in cloud network using variable or instantaneous consumption tracking periods |
US8448112B1 (en) * | 2011-04-08 | 2013-05-21 | Cadence Design Systems, Inc. | System, method, and computer program product for automatic power management verification |
JP5939740B2 (ja) | 2011-04-11 | 2016-06-22 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 動的にリソースを割り当てる方法、システム及びプログラム |
US8386982B1 (en) * | 2011-06-13 | 2013-02-26 | Cadence Design Systems, Inc. | System, method, and computer program product for pin assignment in an electronic design |
US9026630B2 (en) | 2011-06-14 | 2015-05-05 | Vmware, Inc. | Managing resources in a distributed system using dynamic clusters |
US8667454B1 (en) * | 2011-06-15 | 2014-03-04 | Cadence Design Systems, Inc. | System, method, and computer program product for optimizing pins |
US8656368B1 (en) * | 2011-07-11 | 2014-02-18 | Cadence Design Systems, Inc. | System, method, and computer program product for abstract software performance profiling |
US9678801B2 (en) | 2012-08-09 | 2017-06-13 | International Business Machines Corporation | Service management modes of operation in distributed node service management |
US8726224B1 (en) * | 2012-09-18 | 2014-05-13 | Cadence Design Systems, Inc. | System, method, and computer program product for hierarchical browsing |
US8595667B1 (en) * | 2012-10-26 | 2013-11-26 | Freescale Semiconductor, Inc. | Via placement and electronic circuit design processing method and electronic circuit design utilizing same |
US8964321B2 (en) * | 2013-05-31 | 2015-02-24 | International Business Machines Corporation | Iterative data storage read channel architecture having dropout mitigation |
US9491112B1 (en) * | 2014-12-10 | 2016-11-08 | Amazon Technologies, Inc. | Allocating processor resources based on a task identifier |
US9864636B1 (en) * | 2014-12-10 | 2018-01-09 | Amazon Technologies, Inc. | Allocating processor resources based on a service-level agreement |
US10069693B1 (en) | 2014-12-11 | 2018-09-04 | Amazon Technologies, Inc. | Distributed resource allocation |
US9535740B1 (en) | 2015-08-26 | 2017-01-03 | International Business Machines Corporation | Implementing dynamic adjustment of resources allocated to SRIOV remote direct memory access adapter (RDMA) virtual functions based on usage patterns |
US10387682B2 (en) | 2017-06-08 | 2019-08-20 | International Business Machines Corporation | Parallel access to running electronic design automation (EDA) application |
-
2018
- 2018-10-24 US US16/169,306 patent/US10771982B2/en active Active
-
2019
- 2019-06-25 EP EP19182122.2A patent/EP3644213A1/en not_active Withdrawn
- 2019-06-26 CN CN201910561303.3A patent/CN111177984B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040006584A1 (en) * | 2000-08-08 | 2004-01-08 | Ivo Vandeweerd | Array of parallel programmable processing engines and deterministic method of operating the same |
US20090106008A1 (en) * | 2007-10-18 | 2009-04-23 | Michael John Branson | Performance sampling in distributed systems |
US20110246653A1 (en) * | 2010-03-30 | 2011-10-06 | Synopsys, Inc. | Efficient provisioning of resources in public infrastructure for electronic design automation (eda) tasks |
EP2565788A1 (en) * | 2011-09-01 | 2013-03-06 | Fujitsu Limited | Method and apparatus for selecting optimum computing resources |
US8904321B1 (en) * | 2012-11-06 | 2014-12-02 | Cadence Design Systems, Inc. | System and method for automatically generating coverage constructs and constraint solver distributions |
US20140196050A1 (en) * | 2013-01-07 | 2014-07-10 | Ki Soo Yu | Processing system including a plurality of cores and method of operating the same |
US20170277550A1 (en) * | 2016-03-22 | 2017-09-28 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Best performance delivery in heterogeneous computing unit environment |
US20170371784A1 (en) * | 2016-06-24 | 2017-12-28 | Advanced Micro Devices, Inc. | Targeted per-line operations for remote scope promotion |
Non-Patent Citations (1)
Title |
---|
HELAL A E, ET AL.: "Parallel circuit simulation using the direct method on a heterogeneous cloud", pages 1 - 6 * |
Also Published As
Publication number | Publication date |
---|---|
US20200137581A1 (en) | 2020-04-30 |
CN111177984B (zh) | 2024-04-05 |
US10771982B2 (en) | 2020-09-08 |
EP3644213A1 (en) | 2020-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177984B (zh) | 电子设计自动化中异构计算单元的资源利用 | |
Hadary et al. | Protean:{VM} allocation service at scale | |
Delgado et al. | Job-aware scheduling in eagle: Divide and stick to your probes | |
Tiwari et al. | Classification framework of MapReduce scheduling algorithms | |
Haque et al. | Exploiting heterogeneity for tail latency and energy efficiency | |
Chowdhury et al. | Implementation and performance analysis of various VM placement strategies in CloudSim | |
Jalaparti et al. | Network-aware scheduling for data-parallel jobs: Plan when you can | |
EP3155521B1 (en) | Systems and methods of managing processor device power consumption | |
Grandl et al. | Multi-resource packing for cluster schedulers | |
US8028286B2 (en) | Methods and apparatus for scheduling threads on multicore processors under fair distribution of cache and other shared resources of the processors | |
CN111344688B (zh) | 云计算中资源提供的方法及系统 | |
Simão et al. | Partial utility-driven scheduling for flexible SLA and pricing arbitration in clouds | |
US20150301864A1 (en) | Resource allocation method | |
US11954419B2 (en) | Dynamic allocation of computing resources for electronic design automation operations | |
JP2016042284A (ja) | 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム | |
US10079774B2 (en) | Hierarchical fairshare of multi-dimensional resources | |
US20170339069A1 (en) | Allocating Cloud Computing Resources In A Cloud Computing Environment | |
Guo et al. | Inter-task cache interference aware partitioned real-time scheduling | |
Simao et al. | Flexible slas in the cloud with a partial utility-driven scheduling architecture | |
Guliani et al. | Per-application power delivery | |
US20170083375A1 (en) | Thread performance optimization | |
Sheikh et al. | Energy-efficient cache-aware scheduling on heterogeneous multicore systems | |
CN111930516B (zh) | 一种负载均衡方法及相关装置 | |
JP6201591B2 (ja) | 情報処理装置および情報処理装置の制御方法 | |
Enemali et al. | FAReP: Fragmentation-aware replacement policy for task reuse on reconfigurable FPGAs |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210615 Address after: Texas, USA Applicant after: SIEMENS INDUSTRY SOFTWARE Ltd. Address before: oregon Applicant before: MENTOR GRAPHICS Corp. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |