CN112997156A - 用于电子设计自动化操作的计算资源的动态分配 - Google Patents

用于电子设计自动化操作的计算资源的动态分配 Download PDF

Info

Publication number
CN112997156A
CN112997156A CN201880099098.7A CN201880099098A CN112997156A CN 112997156 A CN112997156 A CN 112997156A CN 201880099098 A CN201880099098 A CN 201880099098A CN 112997156 A CN112997156 A CN 112997156A
Authority
CN
China
Prior art keywords
eda
engine
compute
computing
resource
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
Application number
CN201880099098.7A
Other languages
English (en)
Inventor
P·D·吉布森
罗伯特·A·托德
吉米·J·汤布林
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.)
SIEMENS INDUSTRY SOFTWARE Ltd
Original Assignee
SIEMENS INDUSTRY SOFTWARE Ltd
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 SIEMENS INDUSTRY SOFTWARE Ltd filed Critical SIEMENS INDUSTRY SOFTWARE Ltd
Publication of CN112997156A publication Critical patent/CN112997156A/zh
Pending legal-status Critical Current

Links

Images

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/337Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/373Design optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

一种系统,其可以包括一组计算引擎。该计算引擎可以被配置成对表示集成电路(IC)设计的分级数据集执行电子设计自动化(EDA)操作。该系统还可以包括动态资源平衡引擎,该动态资源平衡引擎被配置成:将计算资源分配给所述一组计算引擎;以及基于由第二计算引擎执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符、或者这两者的组合,将分配给所述第一计算引擎的特定计算资源进行重新分配。

Description

用于电子设计自动化操作的计算资源的动态分配
背景技术
诸如集成式微电路的电子电路几乎已用于现代社会中的各个方面,从汽车到微波炉,再到个人计算机。微电路的设计可能涉及许多被称为“设计流程”的步骤。该设计流程的特定步骤通常取决于所设计的微电路的类型、其复杂度、设计团队以及将制造该微电路的微电路制造商或代工厂。电子设计自动化(electronic design automation,EDA)应用支持电路在制造前的设计和验证。EDA应用可以包括各种功能、工具或特征,用以例如通过执行用于错误检测的软件模拟器和/或硬件模拟器,在设计流程的各个阶段处对设计进行测试或验证。
发明内容
所公开的实施方式包括可以支持用于EDA操作的计算资源的动态分配的系统、方法、设备和逻辑。
在一个示例中,一种方法可以由计算系统执行、实行或者以其它方式实现。该方法可以包括:将计算资源分配给一组计算引擎,每个计算引擎被配置成对表示集成电路(IC)设计的分级数据集(hierarchical dataset)执行EDA操作,以及基于由第二计算引擎执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符、或者这两者的组合,将来自第一计算引擎的特定计算资源动态地重新分配给第二计算引擎。
在另一示例中,一种系统,其可以包括一组计算引擎,并且每个计算引擎可以被配置成对表示IC设计的分级数据集执行EDA操作。该系统还可以包括动态资源平衡引擎,该动态资源平衡引擎被配置成:将计算资源分配给一组计算引擎;以及基于由第二计算引擎执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符、或者这两者的组合,将分配给第一计算引擎的特定计算资源进行重新分配。
在又一示例中,一种非瞬时性机器可读介质,其可以存储处理器可执行的指令。当该指令被执行时可以使系统:将计算资源分配给一组计算引擎,每个计算引擎被配置成对表示电路设计的分级数据集执行EDA操作,以及基于由第二计算引擎执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符、或者这两者的组合,将来自第一计算引擎的特定计算资源动态地重新分配给第二计算引擎。
附图说明
在下面的详细描述中并参考以下附图来描述某些示例。
图1示出了支持用于EDA操作的计算资源的动态分配的计算系统的示例。
图2示出了通过动态资源平衡引擎进行的基于EDA操作的资源重新分配的示例。
图3示出了通过动态资源平衡引擎进行的基于空闲的资源重新分配的示例。
图4示出了系统可以实施以支持用于EDA操作的计算资源的动态分配的逻辑示例。
图5示出了支持用于EDA操作的计算资源的动态分配的系统示例。
具体实施方式
以下公开涉及可用于促进电路的设计和制造的EDA应用和CAD系统。随着技术的改进,现代电路设计可能包括数十亿个且更多的部件。为了支持电路设计复杂度的持续增加,EDA应用可以包括各种特征,例如高阶合成、示意性捕获、晶体管或逻辑仿真、场解算器、功能性和物理性验证、几何处理、等效性检查、设计规则检查、掩模数据准备等。
EDA应用和过程的执行可能需要重要的计算资源,并且计算环境可能在使用用于电路设计和验证的EDA应用的不同实体之间变化。被配置成执行EDA应用和过程的计算环境的范围可以是16个CPU到10000个CPU或者更多。随着电路设计在复杂度上的继续增加,EDA应用的计算需求也将继续增加。因此,对用于执行EDA应用的计算系统的计算性能和能力的改进将提供显著的技术益处。
本文描述的特征可以支持用于EDA操作的执行的计算资源的动态分配。具体地,本文描述的动态资源分配特征(也称为动态资源平衡特征)可以提供特定的准则和机制,通过所述准则和机制可以在执行EDA处理过程(EDA process)和基础EDA操作期间动态地分布计算资源。本文描述的各种动态负载平衡特征可以特定于用于电路设计的EDA处理过程,并且示例性负载平衡准则包括基于EDA操作的资源重新分配和基于空闲的资源重新分配(例如,在EDA操作的执行尾部(tail))。这种特定于EDA操作的动态资源平衡可以提高EDA计算系统的计算效率和计算有效性。
图1示出了支持用于EDA操作的计算资源的动态分配的计算系统100的示例。计算系统100可以包括单个或多个计算设备,例如应用服务器、计算节点、数据服务器、台式计算机或膝上型计算机、智能电话或其它移动设备、平板设备、嵌入式控制器等。计算系统100可以具有在电路设计上执行EDA处理过程和操作的不同的计算引擎之间动态地重新分配计算资源的能力,这样做是基于特定的EDA操作优先级或执行状态的。
结合本文描述的各种动态资源平衡特征,计算系统100可以实施、利用或以其它方式支持动态资源分配,如2018年1月17日提交的并且题目为“动态分布的资源管理(DYNAMICDISTRIBUTED RESOURCE MANAGEMENT)”的15/873,827号(‘827申请)美国专利申请中所描述的,该美国专利申请的全文通过引用并入本文。由计算系统100使用和分配的计算资源可以根据在‘827申请中描述的各种动态分配机制以及根据本文描述的各种准则和资源平衡特征来进行维护和分配。
计算系统100可以包括用以执行EDA处理过程和操作的各种计算资源。作为示例性的实施方式,图1中示出的计算系统100包括计算引擎101、102和103。计算引擎101、102和103可以用作能够执行用于EDA处理过程(例如,设计规则校验过程或光学接近性校正过程)的EDA计算的单独实体(无论是物理式的还是逻辑式的)。
每个计算引擎可以被实施为硬件和软件的组合,并且因此可以包括用以支持EDA计算的物理式计算资源(例如,CPU、存储器、网络资源等)和处理器可执行的指令(例如,工作流过程、指令调度逻辑、资源获取或线程激活指令等)。在操作中,计算引擎可以并行地操作,例如每个计算引擎用作在IC(集成电路)设计的特定部分上执行EDA操作或执行特定的多组EDA操作以在EDA处理过程执行中提供并行性和操作级并发(operation-levelconcurrency)的命令服务器。例如,图1中示出的计算引擎101、102和103可以对表示IC设计的分级数据集执行EDA操作。
可以在各种类型的计算环境中执行EDA应用,所述计算环境包括全部或部分地经由云计算的计算环境。这样,计算系统100(包括计算引擎101、102和103)可以部分地经由公共云、私有云或混合云来实施。额外地或可替代地,可以(无论是整体地还是部分地)经由软件即服务(software-as-a-service,SaaS)分布模型来执行EDA应用,并且包括计算系统100的计算资源可以是(例如,关于EDA应用用户)外部的(off-premise)、内部的(on-premise)或者这两者的组合。本文所描述的各种EDA特征可以实施为SaaS分布模型的一部分或经由云计算实施方式来实施。
如本文更详细地描述的,计算系统100可以根据各种平衡准则对分配给不同计算引擎的计算资源进行动态地平衡。这样做,计算系统100可以通过根据EDA操作的优先级、空闲计算引擎或各种其它因素重新分配计算资源(例如,物理式CPU、存储器或用于操作执行的任何其它计算资源)来提高计算效率。这种动态资源分配和平衡可以由动态资源平衡引擎110来执行,例如,如图1所示。
计算系统100可以以各种方式(例如硬件和编程)来实施动态资源平衡引擎110(及其部件)。针对动态资源平衡引擎110的编程可以采取存储在非瞬时性机器可读存储介质上的处理器可执行指令的形式,并且用于动态资源平衡引擎110的硬件可以包括用于执行这些指令的处理器。处理器可以采用单处理器或多处理器系统的形式,并且在一些示例中,计算系统100利用相同的计算系统特征或硬件部件(例如,用于动态资源平衡引擎110和计算引擎101、102和103的公共处理器或公共存储介质)来实施多个引擎部件或系统元件。
在操作中,动态资源平衡引擎110可以将计算资源分配给一组计算引擎,例如计算引擎101、102和103。如本文所使用的,计算资源可以包括用于EDA操作的执行的任何物理式或逻辑式资源。计算资源可以因此包括物理式CPU(包括远程资源)、网络适配器、I/O带宽、存储器(物理式或虚拟的)、用于特定计算元件的使用的调度时隙等。在操作中,动态资源平衡引擎110还可以基于由第二计算引擎(例如,计算引擎102)执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符或者这两者的组合来对分配给第一计算引擎(例如,计算引擎101)的特定计算资源进行重新分配。
下面将更详细地描述这些和其它动态资源平衡特性。描述了特定于EDA应用的执行的各种平衡准则,所述平衡准则包括基于特定EDA操作或操作类型的计算资源重新分配、基于空闲的重新分配(例如,在EDA操作尾部处)以及其它方式。
图2示出了通过动态资源平衡引擎110进行的基于EDA操作的资源重新分配的示例。在图2中示出的示例中,计算系统可以执行对电路布局210进行各种EDA操作的EDA操作。电路布局210可以是诸如集成电路、片上系统(system-on-a-chip,SOC)、印刷电路板(printed circuit board,PCB)等的电路设计的任何表示。这种计算系统可以支持分级格式的电路布局210的表示,例如作为图2中示出的分级数据集220。
分级数据集220可以采取电路设计(例如,电路布局210)的任何分级表示的形式。在这方面,分级数据集220(其可以是分级数据库的形式)可以包括电路表示中的各种分级,以提供计算效率。分级数据集220中的分级可以包括设计要素的分级(例如,将单独的电路结构组合成更大的电路结构)、集成电路中各单独层的堆叠顺序的分级、或以其它分级形式的分级。
在一些实例中,分级数据集220可以包括各种设计单元,所述各种设计单元表示基于单元的(cell-based)分级结构中的电路布局。分级单元可以封装单独的设计结构(例如,电极接触),这些单独的设计结构可以被分组,以在更高分级的层上形成其它分级单元(例如,NAND栅极),所述其它分级单元可以被进一步分组成在其它更高分级的层上的其它分级单元。以这种方式,分级数据集220可以表示电路布局210中的各种设计分级。这种分级结构可以支持用于EDA应用执行的并行性和操作级并发。
动态资源平衡引擎110可以对用于对分级数据集220或其描划的部分执行EDA操作的计算资源进行分配。在一些示例中,动态资源平衡引擎110识别分级数据集220的特定部分(例如,特定层或分级单元),以分派给用于EDA计算的不同计算引擎。额外地或可替代地,动态资源平衡引擎110可以向不同的计算引擎发出用于在分级数据集220(或其所选部分)上执行的不同的EDA操作。因此,计算引擎101可以对分级数据集220的一部分执行第一EDA操作(例如,对电路布局210的金属1层执行多重图案化(multi-patterning)颜色操作),而计算引擎102可以(同时地)对分级数据集220的不同部分执行第二EDA操作(例如,对电路布局210的金属2层执行设计规则校验操作)。
EDA操作的计算复杂度可能不同,并且一些EDA操作可以使用(例如,消耗)从其它EDA操作生成的输出。也就是说,EDA操作可以具有不同的时序、计算或依赖性需求。为了解决这种在需求和复杂度上的差异,动态资源平衡引擎110可以在计算引擎之间重新分配资源,以优先执行所选的EDA操作。这种在用于执行EDA应用的计算引擎之间的计算资源的重新调配可以基于预配置或确定的EDA操作优先级。
为了说明,在将EDA应用实例化(instantiation)时,动态资源平衡引擎110可以将固定的一组计算资源组分配给计算引擎101、102和103,以用于执行被分配给每个相应的计算引擎的EDA操作。在执行EDA应用期间的任意点处,动态资源平衡引擎110可以基于由给定的计算引擎、由不同的计算引擎或者由这两者执行的EDA操作的操作优先级,将分配给给定的计算引擎的计算资源重新分配给不同的计算引擎。
作为特定示例,动态资源平衡引擎110可以对EDA应用的EDA处理过程的关键执行路径中的EDA操作设置优先级(prioritize)。可以对分级数据集220执行各种EDA处理过程,例如布局与示意图(layout-versus-schematic,LVS)验证、设计规则校验(design rulecheck,DRC)、制造设计(design for manufacturing,DFM)处理过程和光学邻近性校正(optical proximity correction,OPC)等等。每个这种EDA处理过程可以包括EDA操作的关键执行路径,特别是当在分级数据集220上执行时的EDA操作的关键执行路径。该关键执行路径可以表示用于执行EDA处理过程的执行时间的关键路径(例如,具有最长执行时间的EDA处理过程中的EDA操作的序列)。
动态资源平衡引擎110可以通过各种EDA操作(其包括特定EDA处理过程)中的图形分析来确定特定EDA处理过程(例如,LVS验证)的关键执行路径。例如,动态资源平衡引擎110可以将EDA处理过程表示为图形,每个节点表示电路设计的不同分级部分上的EDA操作,节点之间的边表示输入依赖性并且包括遍历(例如,计算)成本。因此,动态资源平衡引擎110可以确定或以其它方式识别用于执行EDA处理过程的关键执行路径。
在执行EDA处理过程期间,动态资源平衡引擎110可以向在EDA处理过程的关键执行路径中执行EDA操作的任意一个或多个计算引擎提供额外的计算资源。为此,动态资源平衡引擎110可以识别执行在关键执行路径(例如,EDA处理过程的关键执行路径)上的EDA操作的特定计算引擎并且对分配给执行不在关键执行路径上的EDA操作的不同计算引擎的计算资源进行重新分配。
在一些示例中,计算引擎本身可以向动态资源平衡引擎110提供操作优先级的指示。在图2中,计算引擎103向动态资源平衡引擎110提供操作优先级指示符230,该操作优先级指示符可以指示由计算引擎103执行的EDA操作是在关键执行路径上。在其它示例中(例如,如上所述),动态资源平衡引擎110本身可以确定关键执行路径,并确定哪个或哪些计算引擎正在沿着关键执行路径执行EDA操作。
响应于确定计算引擎103(在该示例中)正在执行关键执行路径上的EDA操作,动态资源平衡引擎110可以将来自其它计算引擎的计算资源重新分配给计算引擎103。在图3中示出的示例中,动态资源平衡引擎110向计算引擎102发送重新分配指令240,响应于此,计算引擎102可以释放供计算引擎103获取/使用的计算资源。图2示出了重新分配的计算资源250,其可以响应于由动态资源平衡引擎110发出的重新分配指令240,由计算引擎102释放并且由计算引擎103来获取。
在一些实施方式中,动态资源平衡引擎110可以基于特定的EDA操作类型来重新分配计算资源。由于EDA操作的计算复杂度可能不同,因此动态资源平衡引擎110可以对具有更高的计算复杂度、时延(latency)或定时需求的EDA操作设置优先级。这种操作优先级可以通过从计算引擎发送的操作优先级指示符消息(例如,作为操作优先级指示符230的一部分)来指明,该操作优先级指示符消息可以指明由计算引擎执行的设置优先级的EDA操作类型。动态资源平衡引擎110可以响应于从计算引擎103接收到操作优先级指示符230来发出重新分配指令240,其中操作优先级指示符230指示了正在由计算引擎103执行的高优先级EDA操作。
可以以各种方式指明、识别或确定EDA操作优先级。在一些示例中,动态资源平衡引擎110维护EDA操作类型的优先级列表,并且这种优先级列表可以是用户可配置的或预先配置的。在其它示例中,动态资源平衡引擎110可以实施或参考(consult)特定的负载平衡准则,该特定的负载平衡准则可以指明特定的EDA操作(或EDA操作类型)和相应的资源重新分配动作。作为特定示例性EDA操作类型,动态资源平衡引擎110可以将额外的计算资源分配给执行填充操作、多重图案化操作、高性能计算(high-performance compute,HPC)操作、或者以其它方式被识别指明为计算复杂的任何其它EDA操作的计算引擎。另一方面,动态资源平衡引擎110可以例如通过对分配给执行具有较低复杂度或具有减少的计算需求或依赖性的基于布尔的EDA操作或其它EDA操作的计算引擎的计算资源的子集进行重新分配,来为较低计算复杂度的EDA操作释放计算资源。
在一些实例中,动态资源平衡引擎110可以基于EDA操作正在以其进行操作的特定分级级别来确定EDA操作优先级。作为一个示例,动态资源平衡引擎110可以针对IC(集成电路)设计的各个层来设置不同的资源分配优先级。作为一个特定的示例,动态资源平衡引擎110可以例如通过将来自在金属10层上执行EDA操作的另一计算引擎的计算资源重新分配给在金属1层或金属2层上执行EDA操作的计算引擎,来将IC设计的前端对齐层的优先级设置为高于其它层。这种基于分级级别的优先级和资源重新分配可以由系统管理员来配置,以将额外的计算资源分配给具有特定物理特征的分级级别(具有增加的计算需求的较厚的IC层,例如金属1层和金属2层)或在处理需求方面计算复杂的/资源密集的分级级别。
作为基于EDA操作的优先级的又一示例,动态资源平衡引擎110可以对具有降低的并行化能力的EDA操作设置优先级。在一些实施方式中,计算引擎可以将用以执行EDA操作的子部分的其它计算引擎实例化。在这种情况下,计算引擎实际上可以充当命令服务器来(例如,通过获取本地或远程计算资源)启动执行线程,以处理EDA操作或其部分。这种实例化计算引擎可以被称为命令计算引擎。由命令计算引擎实例化的计算引擎(其可以被称为实例化的计算引擎)可以在由命令计算引擎分派的选定数据集上进行操作。这些实例化的计算引擎可以提高并行性并支持操作级并发,以作为逻辑上分离的执行单元更有效地在分级数据集220上执行EDA操作。
在一些实施方案中,实例化的计算引擎不需要访问或了解分级数据集220中的数据的不同分级,而是对由命令计算引擎提供的数据子集执行EDA操作。然而,一些EDA操作可能特别需要分级知识或跨越多个分级层,并因此可能不适合由实例化的计算引擎独立执行。这种EDA操作可能需要访问分级数据集220,并可能需要由命令计算引擎本身来执行而不是由实例化的伪计算引擎来执行。在这种情形中,动态资源平衡引擎110可以通过将额外的计算资源分配给命令计算引擎,例如,通过从分配给实例化计算引擎或执行低优先级EDA操作的其它计算引擎的计算资源中抽出该额外的计算资源,来优先执行这些层级相关的EDA操作。
如上所述,动态资源平衡引擎110可以动态地改变被分配给执行EDA应用的不同计算引擎的计算资源。通过利用操作级并发并使用基于操作优先级的平衡准则(无论是明确设置用于特定操作类型还是基于关键执行路径),动态资源平衡引擎110可以改善EDA计算系统以减少执行时间、提高操作效率、并且减少总体资源消耗。这种动态资源平衡可以将EDA应用执行时间减少10%或更多,从而改善了EDA计算系统的计算效率。
虽然上面描述了各种单独的平衡准则,但是动态资源平衡引擎110可以组合地利用任何所描述的平衡准则。额外地或可替代地,动态资源平衡引擎110可以在各种计算引擎之间重新分配计算资源,以在EDA操作执行的各种连接处有效地使用空闲资源,例如,如下面在图3中描述的。
图3示出了通过动态资源平衡引擎110进行的基于空闲的资源重新分配的示例。在图3中,计算引擎101、102和103对分级数据集220执行EDA操作,该分级数据集220可以提供电路布局210的分级表示。具体地,动态资源平衡引擎110可以识别各种计算引擎何时具有空闲的(例如,未使用的)计算资源,并且相应地重新分配任何这种空闲的计算资源。
计算引擎可以包括在EDA操作执行期间的各个点处未充分利用的或空闲的计算资源。这些点可以包括EDA应用程序中的EDA处理过程的执行尾部。为了说明,不同的计算引擎(例如,计算引擎101、102和103)可以用作命令计算引擎,每个命令计算引擎被分配用于执行各种EDA处理过程,每个EDA处理过程可以包括关联的一组EDA操作。命令计算引擎可以将其它计算引擎实例化,以帮助执行EDA处理过程,这样做来提高并行性和操作并发。当每个命令计算引擎(和分别实例化的计算引擎)执行不同的EDA处理过程时,动态资源平衡引擎110(或命令计算引擎本身)可以在这些计算引擎完成所分配的EDA操作的执行时来连续地重新分配资源。
随着计算引擎接近完成EDA操作或EDA处理过程(例如,在执行尾部期间),并行化的机会可能会减少,因为关键执行路径可能需要EDA操作的串行执行。在EDA处理过程的结尾处执行的这种EDA操作可以被称为EDA操作尾部,这将导致在EDA操作执行期间产生未使用的计算资源。在某些情况下,EDA操作执行的“尾部”或EDA操作尾部可以指执行时间的最后10%或EDA指令集的最后10%,然而也可以考虑以其它百分比或度量来测量EDA操作序列的结尾。
当多个命令计算引擎达到EDA处理过程的执行尾部时可能发生这样的情形,其中动态资源平衡引擎110可以将空闲计算资源重新分配给其它计算引擎,以提高计算效率。在这方面,动态资源平衡引擎110可以提高计算环境中(特别是在EDA操作执行的“尾部”期间)的计算资源的总体利用率。
在操作中,动态资源平衡引擎110可以以各种方式来识别EDA操作尾部期间空闲的或未使用的计算资源。在一些实施方式中,动态资源平衡引擎110轮询(poll)计算系统的各种计算引擎,以确定资源利用率。这种轮询可以在周期性的或不规则的(例如,用户触发的)时刻发生。作为另一示例,计算引擎本身可以与空闲指示符通信,以提醒动态资源平衡引擎110注意计算引擎的空闲计算资源。
空闲指示符的示例在图3中示出。在图3中,计算引擎101向动态资源平衡引擎110发送空闲指示符310。空闲指示符310可以采取指示计算引擎具有空闲的/未使用的计算资源的任何通信的形式。在一些实例中,空闲指示符310可以指明分配给计算引擎101的未使用的特定计算资源或分配给计算引擎101的特定计算资源的利用率百分数(例如,60%利用率,这将指示40%的已分配计算资源可以被重新分配)。
作为响应,动态资源平衡引擎110可以向计算引擎101发送重新分配指令320,这在图3中使得计算引擎101释放随后由计算引擎102获取的计算资源。以类似的方式,计算引擎103可以向动态资源平衡引擎110发送空闲指示符330。响应于空闲指示符330,动态资源平衡引擎110可以向计算引擎103发出重新分配指令340,从而计算引擎103可以释放计算资源,该释放的计算机资源随后由计算引擎102获取。
在图3中示出的示例中,当由计算引擎101和103执行的EDA处理过程接近完成或达到完成时,计算引擎101和103可以处于作为EDA操作“尾部”的一部分的执行点。动态资源平衡引擎110可以识别未使用的计算资源并将其重新分配给尚未达到EDA操作“尾部”的其它计算引擎,在该情况下是计算引擎102。通过这样做,动态资源平衡引擎110可以通过向计算引擎102提供提高的计算能力来提高EDA应用的执行效率,这样做并未降低计算引擎101和103的计算效率(其可能仅在EDA操作尾部的执行期间需要计算资源的子集)。
虽然关于EDA操作尾部描述了各种资源平衡示例,但是动态资源平衡引擎110也可以利用任何时间点处的任何空闲计算资源为计算引擎重新分配资源。通过这样做,动态资源平衡引擎110可以提高计算效率并提高资源利用率,这可以改善EDA系统的计算输出和操作。
如上所述,动态资源平衡引擎110可以在EDA应用的执行期间动态地重新分配计算资源。此外,无论计算引擎是否具有空闲的/未使用的计算资源,动态资源平衡引擎110可以支持任何所描述的动态资源平衡特征(例如,当计算资源被充分利用时,基于EDA操作的重新分配)。通过灵活地支持这种EDA操作的资源重新分配特定执行,动态资源平衡引擎110可以提供本文描述的各种技术优点。
图4示出了逻辑400的示例,系统可以实施该逻辑以支持用于EDA操作的计算资源的动态分配。在一些示例中,计算系统100可以将逻辑400实施为硬件、存储在机器可读介质上的可执行指令或者这两者的组合。计算系统100可以经由动态资源平衡引擎110来实施逻辑400,例如,通过该动态资源平衡引擎110,计算系统100可以将逻辑400实行或执行为用来支持用于EDA操作的计算资源的动态分配的方法。使用动态资源平衡引擎110作为实施示例来提供对逻辑400的以下描述。然而,系统的各种其它实施方式选项也是可能的。
在实施逻辑400中,动态资源平衡引擎110可以将计算资源分配给一组计算引擎,每个计算引擎被配置成对表示电路设计的分级数据集执行EDA操作(402)。动态资源平衡引擎110还可以基于由第二计算引擎执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符或者这两者的组合,将来自第一计算引擎的特定计算资源动态地重新分配给第二计算引擎(404)。
虽然通过图4示出并描述了示例性的动态资源平衡特征,但是逻辑400也可以包括任何数量的附加步骤或可替代步骤。逻辑400可以额外地或可替代地实施本文描述的任何其它动态资源平衡特征,例如关于动态资源平衡引擎110的任何其它动态资源平衡特征。
图5示出了支持动态分配用于EDA操作的计算资源的系统500的示例。系统500可以包括处理器510,处理器510可以采用单个或多个处理器的形式。一个或多个处理器510可以包括中央处理单元(CPU)、微处理器或适合于执行存储在机器可读介质上的指令的任何硬件设备。系统500可以包括机器可读介质520。机器可读介质520可以采用存储可执行指令的任何非瞬时性电子、磁性、光学或其它物理存储设备的形式,例如图5中示出的动态资源平衡指令522。因此,机器可读介质520例如可以是随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM))、闪存、自旋转移转矩存储器、电可擦除可编程只读存储器(EEPROM)、存储驱动器、光盘等。
系统500可以通过处理器510执行存储在机器可读介质520上的指令。执行指令可以使系统500执行本文描述的任何动态资源平衡特征,包括根据动态资源平衡引擎110的任何特征。
例如,由处理器510执行的动态资源平衡指令522可以使系统500:将计算资源分配给一组计算引擎,每个计算引擎被配置成对表示电路设计的分级数据集执行EDA操作;以及基于由第二计算引擎执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符、或者这两者的组合,将来自所述第一计算引擎的特定计算资源动态地重新分配给所述第二计算引擎。
以上描述的系统、方法、设备和逻辑,包括有计算引擎101、102和103以及动态资源平衡引擎110,可以以许多种不同的方式以硬件、逻辑、电路以及存储在机器可读介质上的可执行指令的多种不同的组合来实施。例如,计算引擎101、102和103、动态资源平衡引擎110或其组合可以包括控制器、微处理器或专用集成电路(ASIC)中的电路,或者可以用分立逻辑或部件来实施,或者可以用组合在单个集成电路上或分布在多个集成电路之间的其它类型的模拟或数字电路的组合来实施。产品,例如计算机程序产品,可以包括存储介质以及存储在介质上的机器可读指令,当在端点、计算机系统或其它设备中执行时,所述机器可读指令使所述设备根据以上描述中的任何一者(包括根据计算引擎101、102和103、动态资源平衡引擎110或两者的组合的任何特征)来执行操作。
本文描述的系统、设备和引擎(包括计算引擎101、102和103以及动态资源平衡引擎110的系统)的处理能力,可以分布在多个系统部件之间,例如在多个处理器和存储器之间,可选地包括多个分布式处理系统或云端/网络元件。参数、数据库和其它数据结构可以被分开存储和管理,可以被合并到单个存储器或数据库中,可以以许多不同的方式被逻辑地和物理地组织,并且可以以包括有数据结构(例如链表)、哈希表或者隐式存储机制的多种方式来实施。程序可以是单个程序的一部分(例如子例程)、分开的程序、跨越多个存储器和处理器分布的程序、或以多种不同的方式(例如库(例如共享库))来实施。
尽管上面已经描述了各个示例,但是更多的实施方式也是可行的。

Claims (15)

1.一种方法,包括:
通过计算系统:
将计算资源分配给一组计算引擎,每个计算引擎被配置成对表示集成电路(IC)设计的分级数据集执行电子设计自动化(EDA)操作;以及
基于由第二计算引擎执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符、或者这两者的组合,将来自所述第一计算引擎的特定计算资源动态地重新分配给所述第二计算引擎。
2.根据权利要求1所述的方法,其中,基于所述EDA操作的操作优先级来动态地重新分配所述特定计算资源包括:
确定由所述第二计算引擎执行的所述EDA操作是在EDA处理过程的关键执行路径上,并且作为响应,将所述特定计算资源重新分配给所述第二计算引擎。
3.根据权利要求1所述的方法,其中,基于所述EDA操作的操作优先级来动态地重新分配所述特定计算资源包括:
确定由所述第二计算引擎执行的所述EDA操作的操作类型;以及
响应于确定所述EDA操作的操作类型是填充操作或多重图案化操作,将所述特定计算资源重新分配给所述第二计算引擎。
4.根据权利要求1所述的方法,其中,基于所述EDA操作的操作优先级来动态地重新分配所述特定计算资源包括:
确定由所述第二计算引擎执行的所述EDA操作所操作的电路层;以及
响应于确定所述电路层是金属1层或金属2层,将所述特定计算资源重新分配给所述第二计算引擎。
5.根据权利要求1所述的方法,其中,基于针对所述第一计算引擎的空闲指示符来动态地重新分配所述特定计算资源包括:
识别所述第一计算引擎正在执行的EDA处理过程已达到执行尾部;以及
将所述特定计算资源识别为在所述EDA处理过程的所述执行尾部期间所述第一计算引擎未使用的空闲资源。
6.一种系统,包括:
一组计算引擎,每个计算引擎被配置成对表示集成电路(IC)设计的分级数据集执行电子设计自动化(EDA)操作;和
动态资源平衡引擎,其被配置成:
将计算资源分配给所述一组计算引擎;以及
基于由第二计算引擎执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符、或者这两者的组合,将分配给所述第一计算引擎的特定计算资源进行重新分配。
7.根据权利要求6所述的系统,其中,所述动态资源平衡引擎被配置成,通过以下步骤来基于所述EDA操作的操作优先级将所述特定计算资源动态地重新分配:
确定由所述第二计算引擎执行的所述EDA操作是在EDA处理过程的关键执行路径上,并且作为响应,将所述特定计算资源重新分配给所述第二计算引擎。
8.根据权利要求6所述的系统,其中,所述动态资源平衡引擎被配置成,通过以下步骤来基于所述EDA操作的操作优先级将所述特定计算资源动态地重新分配:
确定由所述第二计算引擎执行的所述EDA操作的操作类型;以及
响应于确定所述EDA操作的操作类型是填充操作或多重图案化操作,将所述特定计算资源重新分配给第二计算引擎。
9.根据权利要求6所述的系统,其中,所述动态资源平衡引擎被配置成,通过以下步骤来基于所述EDA操作的操作优先级将所述特定计算资源动态地重新分配:
确定由所述第二计算引擎执行的所述EDA操作所操作的电路层;以及
响应于确定所述电路层是金属1层或金属2层,将所述特定计算资源重新分配给所述第二计算引擎。
10.根据权利要求6所述的系统,其中,所述动态资源平衡引擎被配置成,通过以下步骤来基于针对所述第一计算引擎的空闲指示符将所述特定计算资源动态地重新分配:
识别所述第一计算引擎正在执行的EDA处理过程已达到执行尾部;以及
将所述特定计算资源识别为在所述EDA处理过程的所述执行尾部期间所述第一计算引擎未使用的空闲资源。
11.一种非瞬时性机器可读介质,包括指令,当所述指令由处理器执行时,使得系统:
将计算资源分配给一组计算引擎,每个计算引擎被配置成对表示电路设计的分级数据集执行电子设计自动化(EDA)操作;以及
基于由第二计算引擎执行的EDA操作的操作优先级、针对第一计算引擎的空闲指示符、或者这两者的组合,将来自所述第一计算引擎的特定计算资源动态地重新分配给所述第二计算引擎。
12.根据权利要求11所述的非瞬时性机器可读介质,其中,基于所述EDA操作的操作优先级来动态地重新分配所述特定计算资源的指令包括这样的指令:当该指令由所述处理器执行时使得所述系统:
确定由所述第二计算引擎执行的所述EDA操作是在EDA处理过程的关键执行路径上,并且作为响应,将所述特定计算资源重新分配给所述第二计算引擎。
13.根据权利要求11所述的非瞬时性机器可读介质,其中,基于所述EDA操作的操作优先级来动态地重新分配所述特定计算资源的指令包括这样的指令:当该指令由所述处理器执行时使得所述系统:
确定由所述第二计算引擎执行的所述EDA操作的操作类型;以及
响应于确定所述EDA操作的操作类型是填充操作或多重图案化操作,将所述特定计算资源重新分配给所述第二计算引擎。
14.根据权利要求11所述的非瞬时性机器可读介质,其中,基于所述EDA操作的操作优先级来动态地重新分配所述特定计算资源的指令包括这样的指令:当该指令由所述处理器执行时使得所述系统:
确定由所述第二计算引擎执行的所述EDA操作所操作的电路层;以及
响应于确定所述电路层是金属1层或金属2层,将所述特定计算资源重新分配给所述第二计算引擎。
15.根据权利要求11所述的非瞬时性机器可读介质,其中,基于针对所述第一计算引擎的空闲指示符来动态地重新分配所述特定计算资源的指令包括这样的指令:当该指令由所述处理器执行时使得所述系统:
识别所述第一计算引擎正在执行的EDA处理过程已达到执行尾部;以及
将所述特定计算资源识别为在所述EDA处理过程的所述执行尾部期间所述第一计算引擎未使用的空闲资源。
CN201880099098.7A 2018-10-22 2018-10-22 用于电子设计自动化操作的计算资源的动态分配 Pending CN112997156A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/056877 WO2020086053A1 (en) 2018-10-22 2018-10-22 Dynamic allocation of computing resources for electronic design automation operations

Publications (1)

Publication Number Publication Date
CN112997156A true CN112997156A (zh) 2021-06-18

Family

ID=64267937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880099098.7A Pending CN112997156A (zh) 2018-10-22 2018-10-22 用于电子设计自动化操作的计算资源的动态分配

Country Status (4)

Country Link
US (1) US11954419B2 (zh)
EP (1) EP3853726A1 (zh)
CN (1) CN112997156A (zh)
WO (1) WO2020086053A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11972193B1 (en) * 2020-10-01 2024-04-30 Synopsys, Inc. Automatic elastic CPU for physical verification
US11182530B1 (en) 2020-11-03 2021-11-23 Dialog Semiconductor (Uk) Limited Automatic routing system workflow
EP4011665A1 (en) * 2020-12-10 2022-06-15 Inalfa Roof Systems Group B.V. Control unit and method for operating an open roof assembly
EP4083801A1 (en) * 2021-04-28 2022-11-02 Tata Consultancy Services Limited Method and system for managing electronic design automation on cloud

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1955931A (zh) * 2005-09-30 2007-05-02 科威尔公司 在多核架构中进行调度
CN101288049A (zh) * 2005-05-04 2008-10-15 Arm有限公司 数据处理装置中的数据引擎的使用
US20140310722A1 (en) * 2013-04-16 2014-10-16 Proplus Electronics Co., Ltd. Dynamic Load Balancing in Circuit Simulation
US20150089511A1 (en) * 2013-09-26 2015-03-26 Synopsys, Inc. Adaptive parallelization for multi-scale simulation
CN105718318A (zh) * 2016-01-27 2016-06-29 上海戴西实业有限公司 一种基于辅助工程设计软件的集合式调度优化方法
CN108293011A (zh) * 2015-11-05 2018-07-17 惠普发展公司,有限责任合伙企业 系统例程和原始数据

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625638B1 (en) * 1998-04-30 2003-09-23 International Business Machines Corporation Management of a logical partition that supports different types of processors
US6937969B1 (en) * 1999-06-10 2005-08-30 Interuniversitair Microelektronica Centrum (Imec) Method for determining signals in mixed signal systems
US7051188B1 (en) * 1999-09-28 2006-05-23 International Business Machines Corporation Dynamically redistributing shareable resources of a computing environment to manage the workload of that environment
US6865591B1 (en) * 2000-06-30 2005-03-08 Intel Corporation Apparatus and method for building distributed fault-tolerant/high-availability computed applications
US7236847B2 (en) * 2002-01-16 2007-06-26 Kla-Tencor Technologies Corp. Systems and methods for closed loop defect reduction
US7437727B2 (en) * 2002-03-21 2008-10-14 Network Appliance, Inc. Method and apparatus for runtime resource deadlock avoidance in a raid system
US8645540B2 (en) * 2004-07-29 2014-02-04 International Business Machines Corporation Avoiding unnecessary provisioning/deprovisioning of resources in a utility services environment
US7996644B2 (en) * 2004-12-29 2011-08-09 Intel Corporation Fair sharing of a cache in a multi-core/multi-threaded processor by dynamically partitioning of the cache
US8365177B2 (en) * 2009-01-20 2013-01-29 Oracle International Corporation Dynamically monitoring and rebalancing resource allocation of monitored processes based on execution rates of measuring processes at multiple priority levels
US8869160B2 (en) * 2009-12-24 2014-10-21 International Business Machines Corporation Goal oriented performance management of workload utilizing accelerators
US8548790B2 (en) * 2011-01-07 2013-10-01 International Business Machines Corporation Rapidly determining fragmentation in computing environments
US20120284501A1 (en) * 2011-05-06 2012-11-08 Xcelemor, Inc. Computing system with hardware reconfiguration mechanism and method of operation thereof
US8495548B2 (en) * 2011-09-29 2013-07-23 International Business Machines Corporation Multi-patterning lithography aware cell placement in integrated circuit design
US20130214408A1 (en) * 2012-02-21 2013-08-22 Broadcom Corporation Interposer Having Conductive Posts
WO2014074251A1 (en) * 2012-11-06 2014-05-15 Coherent Logix, Incorporated Multiprocessor programming toolkit for design reuse
US20140195673A1 (en) * 2013-01-10 2014-07-10 Hewlett-Packard Development Company, L.P. DYNAMICALLY BALANCING EXECUTION RESOURCES TO MEET A BUDGET AND A QoS of PROJECTS
US9330424B2 (en) * 2013-06-28 2016-05-03 Vmware, Inc. Power management analysis and modeling for distributed computer systems
US9602423B2 (en) * 2013-06-28 2017-03-21 Pepperdata, Inc. Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system
KR20160046331A (ko) * 2013-08-19 2016-04-28 상하이 신하오 (브레이브칩스) 마이크로 일렉트로닉스 코. 엘티디. 범용 유닛을 기반으로 하는 고성능 프로세스 시스템 및 방법
US9703708B2 (en) * 2013-09-27 2017-07-11 Intel Corporation System and method for thread scheduling on reconfigurable processor cores
US9405572B2 (en) * 2014-04-07 2016-08-02 International Business Machines Corporation Optimized resource allocation and management in a virtualized computing environment
CN105205191B (zh) * 2014-06-12 2018-10-12 济南概伦电子科技有限公司 多速率并行电路仿真
US20160210174A1 (en) * 2015-01-15 2016-07-21 Microsoft Corporation Hybrid Scheduler and Power Manager
CN106033371B (zh) * 2015-03-13 2019-06-21 杭州海康威视数字技术股份有限公司 一种视频分析任务的调度方法及系统
US10581755B2 (en) * 2015-04-03 2020-03-03 Nicira, Inc. Provisioning network services in a software defined data center
US9563564B2 (en) * 2015-04-07 2017-02-07 Intel Corporation Cache allocation with code and data prioritization
WO2016183028A2 (en) * 2015-05-10 2016-11-17 Apl Software Inc. Methods and architecture for enhanced computer performance
US9600617B1 (en) * 2015-09-01 2017-03-21 International Business Machines Corporation Automated timing analysis
US10168762B2 (en) * 2015-09-17 2019-01-01 Advanced Micro Devices, Inc. Power management for heterogeneous computing systems
US9886328B2 (en) * 2016-03-11 2018-02-06 Intel Corporation Flexible binding of tasks to target resources
US10810053B2 (en) * 2016-06-24 2020-10-20 Schneider Electric Systems Usa, Inc. Methods, systems and apparatus to dynamically facilitate boundaryless, high availability M..N working configuration management with supplemental resource
US10152240B2 (en) * 2016-10-31 2018-12-11 Chicago Mercantile Exchange Inc. Resource allocation based on transaction processor classification
TWI676133B (zh) * 2016-11-11 2019-11-01 美商賽諾西斯公司 用於仿真之以波形為基礎之重建
DE102016222375A1 (de) * 2016-11-15 2018-05-17 Robert Bosch Gmbh Vorrichtung und Verfahren zum Bearbeiten von Aufträgen
US10652080B2 (en) * 2016-11-21 2020-05-12 Everbridge, Inc. Systems and methods for providing a notification system architecture
US10527928B2 (en) * 2016-12-20 2020-01-07 Taiwan Semiconductor Manufacturing Co., Ltd. Optical proximity correction methodology using pattern classification for target placement
US11238334B2 (en) * 2017-04-04 2022-02-01 Hailo Technologies Ltd. System and method of input alignment for efficient vector operations in an artificial neural network
US10956222B2 (en) * 2017-05-04 2021-03-23 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a scheduler and workload manager with dynamic workload termination based on cost-benefit analysis
US10613972B2 (en) * 2017-12-29 2020-04-07 Intel Corporation Dynamic configuration of caches in a multi-context supported graphics processor
US10492023B1 (en) * 2018-03-28 2019-11-26 Michael Gurin Dynamic resource location coordination control system
US11354164B1 (en) * 2018-04-20 2022-06-07 Automation Anywhere, Inc. Robotic process automation system with quality of service based automation
US11061740B2 (en) * 2018-08-13 2021-07-13 International Business Machines Corporation Computer system workload manager
US10977083B2 (en) * 2018-08-30 2021-04-13 Intuit Inc. Cost optimized dynamic resource allocation in a cloud infrastructure
US10884778B1 (en) * 2018-09-28 2021-01-05 Amazon Technologies, Inc. Adjusting dynamically scalable instance hosting based on compute resource usage
US10741451B2 (en) * 2018-10-03 2020-08-11 Globalfoundries Inc. FinFET having insulating layers between gate and source/drain contacts
US11461145B2 (en) * 2019-01-28 2022-10-04 EMC IP Holding Company LLC Building neural networks for resource allocation for iterative workloads using reinforcement learning

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101288049A (zh) * 2005-05-04 2008-10-15 Arm有限公司 数据处理装置中的数据引擎的使用
CN1955931A (zh) * 2005-09-30 2007-05-02 科威尔公司 在多核架构中进行调度
US20140310722A1 (en) * 2013-04-16 2014-10-16 Proplus Electronics Co., Ltd. Dynamic Load Balancing in Circuit Simulation
US20150089511A1 (en) * 2013-09-26 2015-03-26 Synopsys, Inc. Adaptive parallelization for multi-scale simulation
CN108293011A (zh) * 2015-11-05 2018-07-17 惠普发展公司,有限责任合伙企业 系统例程和原始数据
CN105718318A (zh) * 2016-01-27 2016-06-29 上海戴西实业有限公司 一种基于辅助工程设计软件的集合式调度优化方法

Also Published As

Publication number Publication date
EP3853726A1 (en) 2021-07-28
WO2020086053A1 (en) 2020-04-30
US11954419B2 (en) 2024-04-09
US20210374319A1 (en) 2021-12-02

Similar Documents

Publication Publication Date Title
US11954419B2 (en) Dynamic allocation of computing resources for electronic design automation operations
CN111177984B (zh) 电子设计自动化中异构计算单元的资源利用
US11656908B2 (en) Allocation of memory resources to SIMD workgroups
US20130247061A1 (en) Method and apparatus for the scheduling of computing tasks
US20180246765A1 (en) System and method for scheduling jobs in distributed datacenters
CN114327861B (zh) 执行eda任务的方法、装置、系统和存储介质
CN111522640A (zh) 计算图的并行执行方法和设备
JP2016042284A (ja) 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム
CN110300959B (zh) 用于动态运行时任务管理的方法、系统、设备、装置和介质
US20130061214A1 (en) Programmable intelligent storage architecture based on application and business requirements
US20170083375A1 (en) Thread performance optimization
EP4040295A1 (en) Memory bandwidth allocation for multi-tenant fpga cloud infrastructures
US10503557B2 (en) Method of processing OpenCL kernel and computing device therefor
CN116010093A (zh) 数据处理方法、装置、计算机设备和可读存储介质
GB2572248A (en) Resource allocation
CN113608854A (zh) 用于版图验证的任务调度方法、装置、服务器和存储介质
CN111475998B (zh) 延迟获取远程资源的电子设计自动化(eda)过程的混合执行
JP7461433B2 (ja) リソース再設定可能な深層ニューラルネットワーク加速器、システムおよび方法
KR20230054259A (ko) 자원 재설정 가능한 심층신경망 가속기, 시스템 및 방법
CN117441161A (zh) Numa架构的软件优化方法和设备
CN117827423A (zh) Gpu共享方法、装置、电子设备及存储介质
CN116483562A (zh) 一种云平台gpu资源管理方法、装置、服务器及存储介质
CN114816759A (zh) 线程池运行方法、装置、电子设备及存储介质
CN118733246A (zh) 任务依赖关系
Shetti Optimization and scheduling of applications in a heterogeneous CPU-GPU environment

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