CN1783121A - 用于执行设计自动化的方法和系统 - Google Patents
用于执行设计自动化的方法和系统 Download PDFInfo
- Publication number
- CN1783121A CN1783121A CNA2005100830747A CN200510083074A CN1783121A CN 1783121 A CN1783121 A CN 1783121A CN A2005100830747 A CNA2005100830747 A CN A2005100830747A CN 200510083074 A CN200510083074 A CN 200510083074A CN 1783121 A CN1783121 A CN 1783121A
- Authority
- CN
- China
- Prior art keywords
- design automation
- task
- described design
- command
- application program
- 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
Images
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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Abstract
通常,本发明提供用于设计自动化应用程序使用随需应变计算机网络,评估设计自动化任务的方法、装置和制造产品。在一个实施例中,在组成设计自动化任务后,请求实体将设计自动化任务连同用于测试的数据集一起传送给由随需应变计算机网络提供的收件箱服务器。设计自动化应用程序配置成处理设计自动化任务并防止它干扰和偷听正在随需应变环境中执行的其他任务,以及防止它干扰随需应变环境本身的操作。因此,设计自动化应用程序提供安全容器来评估设计自动化任务,消除向特定处理请求预先划分资源的需要。设计自动化应用程序消耗可用网格资源来完成处理任务。
Description
相关申请的交叉引用
本申请与2004年4月29日提交的共同拥有的、当前未决的名为“Computer Grid Access Management System”,序列号No.10/835,454的美国申请有关(代理人卷号No.ROC920030382US1),其全部内容在此通过参考引入本申请。
技术领域
本发明通常涉及联网计算机系统,并且更具体地说,涉及用于执行单个设计自动化任务,而不干扰正在相同计算机或计算机的网络上执行的其他类似的任务的系统和方法。
背景技术
随需应变环境(on demand enviroment)能描述为一个或多个分立计算机(discrete computer),其每一个拥有一个或多个处理单元(例如CPU),它们连接在一起以形成计算机网络。通过接收处理请求,并且然后当可用时,将最适当的资源应用于处理请求的管理软件,实现随需应变方面。另外,管理软件可以改变分配到运行过程的资源以便根据多个因素,增加和减少分配到运行过程的资源。管理软件产品的一个实施例是IBM的Load Leveler应用程序。管理软件知道当前正用来满足处理请求的资源和仍然可用的资源,以及进一步配置成检测何时将计算资源增加到随需应变环境或从随需应变环境移出计算资源。
随需应变环境(也称为计算网格)包括任意多个可能的不同种类的计算机系统。大型计算网格能管理巨大的计算能力。其已经变成有用于这种大型计算网格的用户从不相关的实体接收工作处理请求。例如,诸如高级合成、逻辑合成、静态定时分析、布局和物理合成等等的设计自动化任务,是随需应变、基于网格的解决方案的强有力的候选。通常,这些任务的特征在于其为要花费几小时甚至几天来完成的长的运行过程,以及其通常要求相当大量的计算资源。另外,因为任务要求限量的数据和执行逻辑,所以任务可以在合理的时间中,在网络上传送。因为约束方面是处理时间,所以可用于处理设计自动化任务的计算“马力”越多,就可以越快地完成作业。因此,最大化计算资源的使用是随需应变网格服务供应商的重要目标。
网格服务供应商可以基于先来先服务,或基于预订,处理设计自动化任务。然而,当允许来自不同实体的处理请求访问相同的计算网格时,就产生了问题。首先,在允许来自一个实体的处理请求监听正在由计算网格处理的其他任务的活动性或监听网格本身的情况下,产生安全性问题。其次,除这些安全性问题外,设计自动化任务可能非常复杂,以及如果不适当地配置,可能会不正确地操作,干扰其他过程或“碰撞”网格部分。
这一问题的一个通用的解决方案是预先向任务划分网格资源。当新任务到达网格(例如在网络上传送到“收件箱”(drop box)服务器)时,进行完成该任务所需资源的评估,以及可以将网格资源的子集划分给该新任务,为该任务提供其自己的封闭环境以在其中执行该任务。这样做使任务彼此分离,从而防止一个任务窃听另一个。另外,防止错误的任务由于“碰撞”或其他异常事件仅仅破坏分配给它的网格资源。
然而,该方法会剩余未使用的网格资源,即使它们可用时。例如,假定具有32个存储单元的网格可用于存储数据。如果一个过程划分了18个单元,但仅使用12个,那么要求16个单元的第二任务将必须等待直到第一过程完成为止,尽管总的来说,仅需要28个单元来同时完成这两个任务。同时,只要工作完成,划分给它的资源必须“擦洗”。例如,必须擦除硬驱动器,以及操作系统重新安装来确保一个任务不引入(或其本身包括)可以窃听后续活动性或损坏网格资源的“特洛伊木马”。然而,这样做花费时间并降低可用于其他任务的资源,本身导致其他任务花费更长的时间来完成,进一步降低计算网格的使用率。
另一方法是对网格供应商,也提供可以由计算网格执行的多个预定的任务。这样,当事方仅需要向网格供应商提供数据部分。然而,这一方法防止实体开发它们自己的设计自动化程序。因此,网格供应商不能提供特定实体所需的所有服务。另外,会防止一方采用必要的专用处理技术。
因此,仍然需要网格服务供应商最大化计算网格的可用性同时保护不相关处理任务的安全性。特别地,同时执行的设计自动化任务应当在不被其他方干扰的情况下执行,反过来,应当防止它访问或窃听其他方。另外,应当防止计算网格本身可能会由处理设计自动化任务引起的有意或无意的损害。
发明内容
本发明通常提供用于向多个实体提供网格计算服务的方法、系统和制造产品。本发明的一个实施例提供命令解释器,配置成执行网格环境中的设计自动化任务。命令解释器配置成为开发人员提供构成设计自动化任务同时防止这些任务参与不适当的活动性的灵活度。命令解释器使用动态、安全的容器,执行每个提交的设计自动化任务。这允许分配给特定请求的资源来(i)当过程执行时,需要资源时,(ii)当资源可用时,以及(iii)根据预定限度(例如所约定的最大资源量)改变。然而,同时,禁止提供给计算网格的设计自动化任务访问命令(或参与操作),该访问命令将允许一个过程偷听或干扰其他过程,或干扰网格本身。
本发明的一个实施例提供用于访问计算网格的方法。该方法通常包括提供设计自动化应用程序,其中,该设计自动化应用程序配置成处理设计自动化任务,其中,该设计自动化任务包括(i)将由该设计自动化应用程序评估的命令集;以及(ii)表示电子电路的数据集;该方法还包括为计算机系统的用户提供接口以便将该设计自动化任务传送到该计算网格。
本发明的另一实施例提供用于评估设计自动化任务的系统。该系统通常包括计算网格,其中,该计算网格包括连接在一起以形成资源网络的多个计算机资源;以及设计自动化应用程序,配置成使用该资源网络,处理该设计自动化任务,其中,该设计自动化任务包括(i)将由该设计自动化应用程序处理的命令集;以及(ii)表示电子电路的数据集,并且其中,该设计自动化任务配置成使用该资源网络,处理该处理请求。该系统通常进一步包括网格管理器,配置成(i)监视可用在该计算网格中的资源,(ii)分配来自该计算网格的资源以便处理该设计自动化任务,以及(iii)接收和存储将通过处理由请求实体提交的该设计自动化任务生成的结果。
本发明的另一实施例提供一种包含指令的计算机可读介质,当该指令被计算机系统执行时,执行操作。该操作通常包括定义设计自动化程序包,其中,该设计自动化应用程序配置成处理设计自动化任务,其中,该设计自动化程序包包括(i)将由该设计自动化应用程序处理的命令集;以及(ii)表示电子电路的数据集;该操作还包括为请求实体提供接口以便将该设计自动化程序包传送到该计算网格。操作通常可以进一步包括从该请求实体接收该设计自动化任务和处理该设计自动化任务的请求,调用该计算网格上的该设计自动化应用程序的实例,向该设计自动化应用程序的实例提供该设计自动化程序包,评估包括在该设计自动化程序包中的命令集;以及将评估结果的表示返回到该请求实体。
本发明的另一实施例提供一种包括存储在其上的信息的计算机可读介质。该信息通常包括配置成处理设计自动化任务的设计自动化应用程序,其中,该设计自动化任务包括(i)将由该设计自动化应用程序处理的命令集;以及(ii)表示电子电路的数据集。该信息通常可以进一步包括网格管理器,配置成(i)监视可用在该计算网格中的资源,(ii)分配可用在该计算网格上的资源来处理该设计自动化任务,以及(iii)接收和存储将通过处理由请求实体提交的该设计自动化任务生成的结果。
附图说明
根据实现和可以详细地理解本发明的上述特征、优点和目的的方式,通过参考在附图中所示的实施例,可以获得上述概述的本发明的更具体的描述。然而,注意附图仅示例说明本发明的典型实施例,因此,不打算视为限制其范围,因为本发明承认其他同样有效的实施例。
图1示例说明根据本发明的一个实施例,用于管理至自动化设计工具的随需应变访问的系统;
图2A示例说明根据本发明的一个实施例的客户计算系统。
图2B示例说明根据本发明的一个实施例的网格管理系统。
图2C示例说明根据本发明的一个实施例的多个网格元件。
图3A示例说明根据本发明的一个实施例的处理请求和设计自动化应用的视图。
图3B示例说明根据本发明的一个实施例的设计自动化应用的视图。
图4示例说明根据本发明的实施例,用于组成由网格系统执行的设计自动化任务的方法。
图5示例说明用于根据本发明的一个实施例处理设计自动化任务的方法。
图6示例说明用于根据本发明的一个实施例,网格系统处理设计自动化任务的方法。
具体实施方式
本发明通常属于对计算机化资源的随需应变访问。响应由处理请求产生的实际需要,而不是计划需要,可使计算机化资源可用。本发明的实施例提供计算环境,其中,可以同时执行多个处理请求,而不受其他任务干扰(或干扰其他任务)。处理请求仅消耗它们所需的容量和资源,当需要容量和资源时,并且在一个实施例中,相应地收费。因此,计算机化资源的成本基本上与实际使用的计算机化资源匹配。另外,因为资源不预先划分到特定的任务,所以增加了资源利用率,并且实际上降低了与在任务间手动划分资源有关的停机时间,如果未完全地消除的话。
下述描述参考本发明的实施例。然而,应理解到本发明不限于任一具体描述的实施例。相反,下述特征和元素的任一组合,不管是否与所述实施例有关,均有可能实现和实施本发明。此外,在各个实施例中,本发明提供优于现有技术的多个优点。尽管本发明的实施例可以实现优于其他可能的解决方案或优于现有技术的优点,但是特定优点是否由指定实施例实现不是本发明的限制。因此,下述方面、特征、实施例和优点仅是示例性的,以及除在权利要求中清楚引用外,不视为所附权利要求的要素或限制。同样地,对“本发明”的参考不应当构成在此公开的任一发明主题的概括,以及除在特定权利要求中清楚引用外,不应当视为所附权利要求的要素或限制。
本发明的一个实施例实现为用于与诸如图1所示的网络环境100的计算机系统一起使用的程序产品并如下所述。程序产品的程序定义实施例(包括在此所述的方法)的功能并且能包含在多个信号承载介质上。示例性的信号承载介质包括但不限于:(i)永久存储在不可写存储介质(例如计算机内的只读存储器设备,诸如可由CD-ROM驱动器可读取的CD-ROM盘)上的信息;(ii)存储在可写存储介质(例如软盘驱动器,或硬盘驱动器内的软盘)上的可变信息;以及(iii)通过通信介质,诸如通过计算机或电话网,包括无线通信,传送到计算机的信息。后一实施例具体包括从因特网和其他网络下载的信息。这一信号承载介质,当携带控制本发明的功能的计算机可读指令时,代表本发明的实施例。
通常,为实现本发明的实施例而执行的例程可以是操作系统的一部分或具体的应用程序、部件、程序、模块、对象或指令序列。本发明的计算机程序通常由多个指令组成,这些指令将由本地计算机(native computer)转换成机器可读格式,从而成为可执行指令。同时,程序由本地驻留在程序上或在存储器中或存储设备上找到的变量和数据结构组成。另外,下文所述的各个程序可以基于在本发明的具体实施例中所实现的应用程序来识别。然而,应意识到下文使用的任何特定的程序术语仅为了方便,因此,本发明不应当限于仅用在由该术语识别或暗示的任何特定的应用中。
如上所述,随需应变环境可以包括连接在一起以形成网络的可能不同种类的计算系统的集合。在一个实施例中,网格实体本身可以包括联网计算系统,诸如计算集群。例如Beowulf集群是用于将廉价的个人计算机系统连接在一起以便它们看起来象单个多处理器计算机系统的公知的系统设计。本发明的实施例管理均具有不同身份的多个计算机系统网络。在那一环境内,单个实体可以包括Beowulf集群。
由网格网络管理的独立的系统均分别可用于所分配的特定任务。通常,包括在随需应变环境中的计算系统可用于执行由网格管理器分配的任务。在一个实施例中,网格管理器可以包括IBM的LoadLeveler软件应用程序。
网格管理系统负责向处理任务分配网格可消耗资源。可消耗资源是可用在计算网格中的机器上的资产。它们称为“资源”,因为它们模拟可用在机器上的物品或服务(例如CPU、实存储器、虚拟存储器、软件许可证和盘空间,或具有较少粒度的整个系统)。它们视为“可消耗”,因为当特定运行任务的作业步骤正运行时,该步骤可能使用特定量的这些物品。只要步骤结束,资源变为可用于另一作业步骤或其他任务。
在一个实施例中,计算网格可以用来处理设计自动化任务,包括高级合成、逻辑合成、静态定时分析、布局、物理合成或布线。通常,希望提交用于处理的这些任务中的一个的实体汇编所需客户机数据和控制(总的来说,处理任务或请求)以及通常使用安全连接(例如SSL/TLS、S/MIMIE、HTTPS或用来在不安全的通信介质上,加密和传送数据的其他协议),将请求传送到计算网格。
只要计算网格接收到新提交的任务,就可以从收件箱服务器检索到它,以及规划它通过安全设计自动化应用程序在网格上的执行。如下面进一步所述,随任务提交的客户机数据和控制可以用作安全设计自动化应用程序的输入。使用网格资源,应用程序以防止客户控制执行恶意代码或收集未授权信息的方式执行用户提交的控制。客户机控制定义数据上的操作、计算等等。可以在应用级提供网格安全性,并因此,网格不需要在并发分立任务中划分可消耗资源。只要处理结束,结果就可存储在收件箱服务器或经安全连接,可以返回到请求实体。
图1示例说明包括配置成从多个实体(例如客户系统1051-N)接收处理请求的基于网格的计算机系统(在此也称为“网格系统”)115的随需应变环境100。在一个实施例中,可使网格计算系统可用于执行设计自动化任务。客户系统1051-N的每一个配置成使用公知和普遍可用的协议(例如TCP/IP),与网格系统115通信。例如,外部客户系统1052和105N使用外部网络110,与网格系统通信。在一个实施例中,外部网络110可以包括因特网。可选择地,客户系统(例如客户系统1051)可以驻留在与网格系统115相同的网络上。
根据本发明的一个实施例,网格系统115示例说明包括在随需应变环境中的部件。到达和来自网格系统115的所有远程通信可以通过网关/防火墙120发生。如本领域的技术人员所理解到的,网关可以用来将呼入通信从外部网络路由到随需应变环境115中的目的地。如所示,使用可以用来监视网络通信量(例如数据包)和确定可以将哪些转发到网关/防火墙120后的计算机系统或过程,处理所有通信。
在一个实施例中,可以将HTTP服务器130配置成为客户系统1051-N提供基于Web的接口以便从网格系统115提交处理请求(以及检索结果)。因此,HTTP服务器130可以存储相对静态的HTML文献集以便显示到客户机105的接口以及在它们(例如使用GET和POST方法)和网格系统115间传送数据。应用程序服务器135可以允许客户机访问受服务器135管理的应用程序和数据库。应用程序服务器135处理客户机105的所有应用程序操作和连接。在一个实施例中,网格系统115可以包括配置成存储由客户机105提交的处理请求以及由处理请求生成的结果的收件箱服务器140以便由客户机105检索。在共同拥有的、名为“Computer Grid Access Management System”的未决申请(案卷号No.ROC920030283)中描述了访问管理技术和收件箱服务器的详细说明。
计算网格145包括多个网格元素150。网格元素150总的来说代表可用于分配给不同任务的计算资源。应注意到图1的网格元素的每一个不需要代表相同类型的资源或资源粒度。例如,一个网格元素可以代表计算机系统,而另一网格元素可以代表盘空间,以及另一网格元素可以代表作为单个实体的一组集群系统。即使在两个或多个网格元素代表同样的资源,例如盘空间或存储器的情况下,网格元素也可以代表不同量的资源,例如20GB、40GB等等。
网格系统115也可以包括网格管理器136。网格管理器136将由应用程序服务器135启动的处理请求调度到计算网格145,目前消耗和可用的网格资源(即网格元素150),并且还管理计算网格145的状态(例如,当增加或从计算网格移出计算机系统时)。如图1所示,计算网格145可以由任意多个网格元素150组成。每个网格元素150本身可以包括单独的计算机系统以及其相应的存储器、处理器、存储空间、操作系统和应用程序软件,或可以包括可用在集群配置中链接的计算机系统的系统中的资源元素。
尽管网格系统115的部分在图1中示为独立的元素,但是本领域的技术人员将意识到本发明的实施例可以实现许多不同配置的计算机系统和过程来提供随需应变环境/网格系统115。例如,HTTP服务器130和收件箱140可以包括在相同的物理计算机系统上运行的过程,而不改变如上功能性的描述。
图2A-C进一步示例说明如图1所示的示例性计算机系统。图2A根据本发明的一个实施例,示例说明客户机系统105。客户机系统105在网络110上,与依次管理网格元素150(如图2C所示)的资源的网格管理系统202(如图2B所示)通信。
客户计算机系统105包括允许客户计算机系统105与随需应变网格系统115通信的网络接口232。客户计算机系统105通常包括经总线230,连接到内存210和存储器245的中央处理单元(CPU)240。典型的存储设备包括IDE、SCSI或RAID管理的硬驱动器。尽管示为单个单元,它可以包括固定和可移动存储设备,诸如固定盘驱动器、软盘驱动器、磁带驱动器、可移动内存卡,或光学存储器的组合。另外,可以使用网络存储设备,诸如AFS、NFS或GSA。内存可以包括以芯片(例如SDRAM或DDR内存模块)形式出现的记忆体储存设备。
客户机系统105运行管理硬件部件间的交互作用的操作系统212(例如Linux分布、Microsoft Windows、IBM的AIX、FreeBSD等等),以及高级软件应用程序,诸如用来构成设计自动化程序包220的开发应用程序215。客户机系统105可以进一步包括I/O设备,诸如鼠标、键盘和监视器以及其他专用硬件。
在一个实施例中,用户可以使用所示的驻留在内存210中的开发应用程序215,组成设计自动化程序包220。设计自动化程序包220可以包括数据部分和命令集。例如,数据部分可以包括用于应用程序,诸如高级合成、逻辑合成、静态定时分析、布局、物理合成或布线等等的数据。这些数据可以包括描述特定电子或集成电路的网表信息。本领域的技术人员将理解到,网表是包括所有电路元件名/参考指示符并列出它们的输入输出信号名称的电子电路的描述。用于网表的示例性格式包括工业标准格式,包括EDIF(电子设计交互格式)、Verilog、DEF和PDEF。
设计自动化程序包220也可以包括命令集,通常表示为脚本。用户根据由网格提供者(即,设计自动化应用程序268)提供的特定电子商务提供,定义命令脚本。命令脚本允许客户机控制和管理应用程序268的活动性,在电子电路设计上分析或操作,如使用网表数据所示。例如,由这一机制传送的信息可以包括性能期望,诸如“周期时间”或期望电路执行的速度。同时,处理请求(或设计自动化任务)包括数据集合和测试、检查或者在数据上其他操作的命令集。可用于构成脚本的命令由服务供应商定义。在一个实施例中,可用于构成命令脚本的命令限定为与设计自动化任务有关的命令。
在组成设计自动化程序包220后,用户可以将它递送到网格系统115,以便处理。通过网格管理系统202接收程序包。图2B示例说明网格管理系统202的实施例。网格管理器136监视网格元素150的活动性和状态以及根据处理任务,管理与客户机系统105通信。在一个实施例中,网络接口265将网格管理系统202连接到包括网格元素150的局域网。这种网格通常不可以在随需应变环境和网格系统115外访问,除非通过在图1中所示的网关和防火墙接口。
使用网络接口265,使网格管理系统202连接到网络110。网格管理系统202包括连接CPU264、显示器260、存储器262、网络接口265和内存250的总线258。如图2B所示,内存250包含网格管理应用程序254和网格状态监视器256,以及操作系统。同时,网格管理应用程序254和网格状态监视器256维护网格系统115,将资源分配到处理请求,调度处理请求到网格以便执行,以及处理在处理期间产生的结果或任何异常。例如,新处理请求可以放在收件箱263中。管理应用程序254可以配置成定期地轮询收件箱263以便识别新提交的处理请求。只要提交了新请求(例如通过与HTTP服务器130通信以便将程序包220递送给收件箱263的客户机105),管理应用程序254就可以分配网格元素以便执行该请求。
图2C示例说明可用作计算网格145中的资源以便在网格管理系统202的指导下,执行计算任务的网格元素150的实施例。然而,应理解到计算网格145可以包含差不多配置成如图2C所示的一个的任意多个网格元素150。因此,图2C示例说明另外的网格元素1502-N。另外,由管理应用程序254分配给处理请求的资源可以超出由网格元素150所示的单个系统,并且网格元素150本身可以包括配置成视为单个实体的计算资源的集群,诸如Beowulf集群。因此,多个计算机系统(或网格元素150)可以分配到特定的处理请求。例如,资源可用性、资源需求、可并行性和契约约束均可以影响将何种资源分配给处理请求。
如图2C所示,示例性网格元素150由包括可操作地连接CPU276、网络接口278、存储器280和内存266的总线274的计算机系统组成。网格元素150正执行由客户机105提交的,并由网格管理应用程序254,分配到网络元素150的处理请求(例如设计自动化程序包220)。程序包可以存储在收件箱263中直到将其分配到网格系统115以便处理为止。只要网格元素150完成在程序包220中存储的设计自动化任务的处理,就可以将结果数据传送到收件箱263。网格状态监视器256可以配置成观察网格活动性以及说明所消耗的资源(例如费用计算)并且说明网格元素150的任何变化(例如计算网格145的任何故障部分)。
在一个实施例中,设计自动化应用程序268可以包括在网格元素150上运行的命令解释器过程,解释根据脚本语言组成的脚本。在特定的实施例中,使用Tcl语言,组成命令脚本,并且设计自动化应用程序可以包括Tcl命令解释器。如本领域的技术人员所理解的,Tcl是为设计自动化工具扩展而设计的解释计算机语言并且还控制其他一般计算机任务,诸如提供高度灵活性的文件操纵。尽管Tcl是用于设计自动化工具的流行脚本和控制语言,也可以使用Perl以及其他脚本语言。
可以扩展和限制提供给执行程序包220的Tcl命令解释器。具体地,在一个实施例中,可以通过增加用户可以包括在命令脚本中的顾客库、命令和例程,来扩展Tcl命令解释器。可以通过禁止一种脚本命令来限制命令解释器,该脚本命令将允许包括在一个处理请求中的命令脚本窃听或干扰其他命令脚本。在一个方面中,禁止使用某些脚本命令是有关全面的设计自动化应用程序会需要哪些命令来评估特定电路设计的一般断言。
另外,产生用于每个处理请求的改进的命令解释器创建允许网格系统115同时处理多个程序包220的保护的环境。改进的解释器充当安全容器来执行设计自动化应用程序268内的命令脚本。在该环境内,当网格资源为需要的并且可用时,子解释器消耗网格资源,以便完成处理请求。因此,正使用的网格资源可以在执行特定设计自动化任务的过程上改变。
图3A示例说明设计自动化程序包220和设计自动化应用程序268的视图。如上所述,设计自动化程序包220包括命令脚本310和设计自动化数据312。在一个实施例中,命令脚本310包括使用由子解释器315提供的命令和控制机制组成的Tcl脚本。设计自动化数据312可以包括描述将测试的电子电路的网表。在脚本评估期间,子解释器315评估如由脚本语言的语义定义的脚本并且执行包含在其中的命令。当这一过程发生时,设计自动化应用程序268可以记录结果数据316。如果命令脚本310:(1)包括未授权的命令,(ii)未正确编写或(iii)如果数据值超出可容许范围,错误处理例程318可以在完成特定处理请求前终止它,释放网格资源以便执行其他设计自动化任务。例如,如果命令脚本310试图访问还未向安全环境公开的命令,那么可以终止处理请求并且向网格提供者和请求的客户机报告异常事件。
图3B示例说明根据本发明的一个实施例的设计自动化应用程序268。制作设计自动化应用程序268以便不能使用来自客户机的命令脚本(例如脚本310)来执行恶意代码或收集未授权信息。如所示,设计自动化应用程序268包括主命令解释器314、库326和子解释器315。主命令解释器314包括可以由网格提供者用来组成包含整个设计自动化任务的脚本310(例如Tcl脚本)的整个命令集。例如,主命令解释器314可以包括用来写入或读取任意存储单元(例如内存268)或访问网络资源(例如网络接口278上)的I/O(输入/输出)命令322。不是提供对这些命令的直接访问,而是主命令解释器314可以提供别名命令(aliased command)集324,其提供一些(而不是全部)基本实际命令的功能性。
别名命令允许用户调用另外的、禁止的命令的“安全”版本。例如,别名命令可以允许命令脚本写入由命令脚本创建的文件以便存储结果数据,但禁止脚本写入系统文件。
另外,可以使用库326扩展主命令解释器314理解的命令集。如本领域的技术人员所理解到的,库是用来开发软件应用程序的子例程的集合。库不同于可执行程序之处在于它们不是独立的程序,相反,它们是为一些其他独立的程序提供服务的“助手”代码。
在一个实施例中,子解释器315可以包括可用于主命令解释器314的命令子集。如所示,子解释器315包括可用于单个客户机来组成命令脚本310的可见命令322。别名命令334提供特定命令的另外的版本以便用户仍然以可接受的方式,可以执行另外的禁止的命令。隐藏命令336是不可用于客户机包括在命令脚本310中的命令。例如,具有特定设计自动化应用程序268的子解释器可以禁止客户脚本调用任何系统或壳命令(shell commands),直接执行文件输入或输出,访问网络服务,以及执行设计自动化任务不必要的其他命令。同时,子解释器315可以配置成从网格管理器136请求资源,或请求命令解释器执行它不能直接执行的动作。
在有效的计算网格中,可以调用多个子解释器来处理由不同的、甚至竞争实体所提供的不同的设计自动化任务。每个子解释器可以访问,或能请求和获得资源来完成设计自动化任务,同时也禁止该设计自动化任务以不期望的行为参与。
使用如在此所述的设计自动化应用程序268的定义,用户可以构造命令脚本来在计算网格中处理设计自动化任务。在一个实施例中,网格提供者定义可用于感兴趣方的子解释器。该描述可以包括可用于组成命令脚本310的所有功能(例如命令输入和输出)。同时,构造设计自动化应用程序268来将包括命令脚本310和客户机数据312的程序包220用作处理的输入。使用由管理应用程序254动态分配给它的网格资源设计自动化应用268安全地执行。与其他无关,在网格系统上处理设计自动化应用程序268的每个调用。
图4示例说明根据本发明的一个实施例,用于扩展用于由网格系统执行的设计自动化任务的方法400。该方法400以步骤402开始,其中,客户机(例如使用图2所示的开发应用程序215)组成命令脚本以指定电子电路(例如用网表表示的)诸如定时性能规格的配置信息。用户根据可用在网格系统上的设计自动化应用程序的定义,组成命令脚本。在完成特定命令脚本310后,在步骤404,客户机与网格系统115建立连接。例如,使用基于Web的接口和通用web浏览器,客户系统105可以与网格管理器136交互作用。在一个实施例中,可以要求客户系统105向网格系统115证实自己。
在步骤406,在建立连接后,包括网表、命令脚本和任何其他客户数据的程序包被传送到网格管理器136。只要传送了程序包,客户机就等待来自网格系统115的结果。在一个实施例中,使用电子邮件将结果通知客户机系统。另外,客户机系统的用户可以与网格系统不定期地建立连接以便确定任何结果是否可用于从收件箱服务器检索。无论如何通知,如果结果数据未包括在结果通知中,在步骤408,客户机105从网格系统检索该结果数据。
图5示例说明根据本发明的一个实施例,用于处理一处理请求(例如设计自动化程序包220)的方法500。在用户组成设计自动化任务的结构(例如用户可以执行图4所示的操作)并将它提供给网格系统115后,方法500开始。因此,在步骤502,网格系统接收设计自动化程序包220(也称为“任务”)。在一个实施例中,可以使用网格系统115中的收件箱服务器140,存储设计自动化任务。在步骤504,管理应用程序254调度程序包220以便在计算网格145上执行。可以使用任何适当的调度标准。例如,一些程序包可以表示执行所需的某些最少资源量(或特定资源类型)。因此,仅当需求可用时,调度该程序包以便执行。
在步骤505,将程序包调度到网格系统115以便执行并且在步骤506处理它。在一个实施例中,这可以包括调用包括Tcl子解释器的设计自动化应用程序268和向子解释器提供包括有该程序包作为输入数据的命令脚本。子解释器执行包括在命令脚本中的每一命令。当设计自动化应用程序处理命令脚本310时,监视由设计自动化应用程序268使用的资源。例如,网格状态监视器256可以向执行的任务分配另外的资源。可选择地,或者除此之外,设计自动化应用程序268可以配置成请求(或者消耗,只要可用)另外的计算资源(例如网格元素150),同时处理命令脚本310。
在步骤508,在设计自动化应用已经完成处理命令脚本后(或可能在异常已经发生后),管理应用程序254将结果数据存储在返回队列(例如收件箱服务器140)中。可选择地,使用适当的通信信道,管理应用程序254可以将结果传送到客户机105。
图6示例说明(例如在图5所示的步骤506期间)在随需应变环境115中,用于设计自动化应用程序268处理设计自动化程序包220的方法600。在网格管理器136已经将设计自动化程序包220调度到网格系统115以便处理并且调用设计自动化应用程序268的实例来处理设计自动化程序包220后,方法以步骤610开始。在步骤610,可以评价包括在程序包220中的命令脚本310来校验它在句法上是完整的。在一个实施例中,如上所述使用根据用于设计自动化应用程序的定义组成的Tcl命令脚本,可以组成脚本。在步骤610,如果包括在任务中的命令脚本是不完整的(或不良形成),那么脚本的评价可以终止,而不进一步处理。
接着,在步骤620,开始包括在命令脚本中的命令的顺序评价。如本领域的技术人员所理解到的,命令脚本310(例如用Tcl编写的脚本)的顺序评价可以包括一系列分支、条件和循环命令,以及跳转到子例程和从子例程跳转。在一个实施例中,可以将网格状态监视器256配置成观察何种网格资源在任何指定时间,正在由处理任务消耗,并且根据需要,增加或移出特定处理任务的资源。可选择地,或除此之外,可以将设计自动化应用程序268配置成消耗可用于完成处理请求的另外的网格资源。
在步骤630,按照语言语义,选择下一命令以便执行。如果命令是用于由子解释器调用的授权命令,那么在步骤650执行该命令。如果不是,在步骤640,出现异常处理。例如,设计自动化应用程序268可以停止评估命令脚本310。可选择地,可以尝试恢复或继续,而不执行禁止的命令。当此发生时,在步骤660,可以存储由评估命令脚本310产生的任何数据。重复步骤630、650和660直到完成该脚本(或在步骤640,由于异常终止)为止。只要完成,就可以将结果返回到客户机105(例如用电子邮件消息)或存储在收件箱服务器140中,用于以后检索(步骤670)。
本发明的实施例允许网格服务提供者定义设计自动化应用程序来评估(执行)由不同客户机提供的命令脚本。在特定的实施例中,通过定义Tcl子解释器来禁止访问能用来组成网格系统的安全性的命令,构成设计自动化应用程序。这样做允许在网格系统中并发执行的设计自动化应用程序的不同调用,而不要求系统划分或资源擦洗。因此,最大化了网格系统的效率同时也增加了网格系统的整体安全性。
尽管上文针对本发明的实施例,但在不离开本发明的基本范围的情况下,可以导出本发明的其他和进一步的实施例,并且其范围由下述的权利要求确定。
Claims (34)
1.一种用于提供对计算网格的访问的方法,包括:
提供设计自动化应用程序,其中,所述设计自动化应用程序配置成处理设计自动化任务,其中,所述设计自动化任务包括(i)将由所述设计自动化应用程序评估的命令集;以及(ii)代表电子电路的数据集;以及
为计算机系统的用户提供接口以便将所述设计自动化任务传送到所述计算网格。
2.如权利要求1所述的方法,其中,所述计算网格包括连接在一起以便形成网络的计算机系统集,并且其中,所述计算机系统集受网格管理计算机管理。
3.如权利要求1所述的方法,其中,所述设计自动化任务包括高级合成、逻辑合成、静态定时分析、布局、物理合成和布线任务中的一个。
4.如权利要求1所述的方法,其中,所述设计自动化应用程序包括配置成评估包括在所述设计自动化任务中的命令集的命令解释器。
5.如权利要求4所述的方法,其中,所述命令解释器包括Tcl命令解释器。
6.如权利要求4所述的方法,其中,所述命令解释器具体配置成排除包括在所述命令集中、与处理所述设计自动化任务无关的任何命令的评估。
7.如权利要求6所述的方法,其中,所述命令解释器进一步包括配置成防止所述设计自动化任务调用任何系统或外壳命令、执行文件输入或输出、访问网络服务、以及防止调用处理所述设计自动化任务不必要的其他命令的Tcl子解释器。
8.如权利要求1所述的方法,其中,提供所述接口包括提供配置成允许用户在计算机网络上,将所述设计自动化任务传送到所述计算网格的基于web的接口。
9.如权利要求1所述的方法,进一步包括:
从请求实体接收所述设计自动化任务和处理所述设计自动化任务的请求;
调用所述计算网格上的所述设计自动化应用程序的实例;
向所述设计自动化应用程序的所述实例提供所述设计自动化任务;
评估包括在所述设计自动化任务中的命令集;以及
将所述评估的结果返回到所述请求实体。
10.如权利要求9所述的方法,其中,所述设计自动化任务包括高级合成、逻辑合成、静态定时分析、布局、物理合成和布线任务中的一个。
11.如权利要求9所述的方法,其中,所述设计自动化应用程序包括配置成评估包括在所述设计自动化任务中的命令的命令解释器。
12.如权利要求11所述的方法,其中,所述命令解释器包括Tcl命令解释器。
13.如权利要求11所述的方法,其中,所述命令解释器具体配置成排除包括在所述命令集中、与处理所述设计自动化任务无关的任何命令的评估。
14.如权利要求12所述的方法,其中,所述命令解释器进一步包括配置成防止所述设计自动化任务调用任何系统或外壳命令、执行文件输入或输出、访问网络服务、以及防止调用处理所述设计自动化任务不必要的其他命令的Tcl子解释器。
15.如权利要求9所述的方法,其中,所述计算网格包括连接在一起以便形成网络的计算机系统集,并且其中,所述计算机系统集受网格管理计算机管理。
16.如权利要求9所述的方法,其中,所述网格管理计算机配置成通过生成将发送到与所述请求实体有关的电子邮件地址的电子邮件消息,返回评估结果的表示。
17.如权利要求9所述的方法,进一步包括:
监视在所述设计自动化应用程序的实例评估包括在所述设计自动化任务中的命令集时,产生的由所述设计自动化应用程序的实例消耗的网格活动性和资源,并且计算为处理所述设计自动化任务、所述请求实体应付的费用。
18.一种用于评估设计自动化任务的系统,包括:
计算网格,包括连接在一起以形成资源网络的多个计算机资源;
应用程序,配置成使用所述资源网络,处理所述设计自动化任务,其中,所述设计自动化任务包括(i)将由所述设计自动化应用程序处理的命令集;以及(ii)代表电子电路的数据集,并且其中,所述设计自动化任务配置成使用所述资源网络来处理请求;以及
网格管理器,配置成(i)监视可用在所述计算网格中的资源,(ii)分配来自所述计算网格的资源以便处理所述设计自动化任务,以及(iii)接收和存储通过处理由请求实体提交的所述设计自动化任务生成的结果。
19.如权利要求18所述的系统,其中,所述设计自动化应用程序包括配置成评估包括在所述设计自动化任务中的所述命令集的命令解释器。
20.如权利要求19所述的系统,其中,所述命令解释器包括Tcl命令解释器。
21.如权利要求19所述的系统,其中,所述命令解释器具体配置成排除包括在所述命令集中、与处理所述设计自动化任务无关的任何命令的评估。
22.如权利要求21所述的系统,其中,所述命令解释器进一步包括配置成防止所述设计自动化任务调用任何系统系统或外壳命令、执行文件输入或输出、访问网络服务、以及防止调用处理所述设计自动化任务不必要的其他命令的Tcl子解释器。
23.如权利要求18所述的系统,其中,所述设计自动化应用程序进一步配置成消耗完成处理所述设计自动化任务所需的、可用在所述计算网格上的资源。
24.一种包含程序的计算机可读介质,当执行该程序时,进行一种操作,所述操作包括:
定义设计自动化程序包,其中,所述设计自动化应用程序配置成处理设计自动化任务,其中,所述设计自动化程序包包括(i)将由所述设计自动化应用程序处理的命令集;以及(ii)代表电子电路的数据集;以及
为请求实体提供接口以便将所述设计自动化程序包传送到计算网格;
从所述请求实体接收所述设计自动化任务和处理所述设计自动化任务的请求;
调用所述计算网格上的所述设计自动化应用程序的实例;
向所述设计自动化应用程序的实例提供所述设计自动化程序包;
评估包括在所述设计自动化程序包中的所述命令集;以及
将所述评估的结果返回到所述请求实体。
25.如权利要求24所述的计算机可读介质,其中,所述计算网格包括连接在一起以便形成网络的计算机系统集,并且其中,所述计算机系统集受网格管理计算机管理。
26.如权利要求24所述的计算机可读介质,其中,所述设计自动化应用程序包括配置成评估包括在所述设计自动化任务中的所述命令集的命令解释器。
27.如权利要求25所述的计算机可读介质,其中,所述命令解释器包括Tcl命令解释器。
28.如权利要求26所述的计算机可读介质,其中,所述命令解释器具体配置成排除包括在所述命令集中、与处理所述设计自动化任务无关的任何命令的评估。
29.如权利要求25所述的计算机可读介质,其中,所述命令解释器进一步包括配置成防止所述设计自动化任务调用任何系统系统或外壳命令、执行文件输入或输出、访问网络服务、以及防止调用处理所述设计自动化任务不必要的其他命令的Tcl子解释器。
30.一种包括存储在其上的信息的计算机可读介质,所述信息包括:
设计自动化应用程序,配置成处理设计自动化任务,其中,所述设计自动化任务包括(i)将由所述设计自动化应用程序处理的命令集;以及(ii)代表电子电路的数据集;以及
网格管理器,配置成(i)监视可用在所述计算网格中的资源,(ii)分配可用在所述计算网格上的资源来处理所述设计自动化任务,以及(iii)接收和存储通过处理由请求实体提交的所述设计自动化任务生成的结果。
31.如权利要求30所述的计算机可读介质,其中,所述设计自动化应用程序包括配置成评估包括在所述设计自动化任务中的命令的命令解释器。
32.如权利要求31所述的计算机可读介质,其中,所述命令解释器包括Tcl命令解释器。
33.如权利要求31所述的计算机可读介质,其中,所述命令解释器具体配置成排除包括在所述命令集中、与处理所述设计自动化任务无关的任何命令的评估。
34.如权利要求32所述的计算机可读介质,其中,所述命令解释器进一步包括配置成防止所述设计自动化任务调用任何系统或外壳命令、执行文件输入或输出、访问网络服务、以及防止调用处理所述设计自动化任务不必要的其他命令的Tcl子解释器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/000,438 US7568006B2 (en) | 2004-11-30 | 2004-11-30 | e-Business on-demand for design automation tools |
US11/000,438 | 2004-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1783121A true CN1783121A (zh) | 2006-06-07 |
CN1783121B CN1783121B (zh) | 2011-07-20 |
Family
ID=36568460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100830747A Expired - Fee Related CN1783121B (zh) | 2004-11-30 | 2005-07-08 | 用于执行设计自动化的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7568006B2 (zh) |
CN (1) | CN1783121B (zh) |
TW (1) | TWI346880B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050078822A1 (en) * | 2003-10-08 | 2005-04-14 | Eyal Shavit | Secure access and copy protection management system |
EP2339469A1 (en) * | 2004-03-13 | 2011-06-29 | Adaptive Computing Enterprises, Inc. | System and method for a self-optimizing reservation in time of compute resources |
US8032846B1 (en) | 2010-03-30 | 2011-10-04 | Synopsys, Inc. | Efficient provisioning of resources in public infrastructure for electronic design automation (EDA) tasks |
CN102591778B (zh) * | 2012-01-09 | 2015-04-29 | 福建师范大学 | 一种基于服务的可扩展程序竞赛评测系统 |
TWI466498B (zh) * | 2012-12-10 | 2014-12-21 | Chunghwa Telecom Co Ltd | A system and method for providing an autonomous load balancing host in a distributed environment |
US9619608B1 (en) * | 2015-08-27 | 2017-04-11 | Cadence Design Systems, Inc. | Concurrent design process |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519568B1 (en) * | 1999-06-15 | 2003-02-11 | Schlumberger Technology Corporation | System and method for electronic data delivery |
US6643683B1 (en) * | 2000-05-08 | 2003-11-04 | International Business Machines Corporation | Interactive client-server environment for performing collaborative timing analysis of circuit designs |
US7080120B2 (en) * | 2001-01-19 | 2006-07-18 | Digital Orchid, Inc. | System and method for collaborative processing of distributed applications |
US20030079121A1 (en) * | 2001-10-19 | 2003-04-24 | Applied Materials, Inc. | Secure end-to-end communication over a public network from a computer inside a first private network to a server at a second private network |
US7395536B2 (en) * | 2002-11-14 | 2008-07-01 | Sun Microsystems, Inc. | System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment |
US7383550B2 (en) * | 2002-12-23 | 2008-06-03 | International Business Machines Corporation | Topology aware grid services scheduler architecture |
US7848834B2 (en) * | 2003-03-28 | 2010-12-07 | Gm Global Technology Operations, Inc. | Computerized system for network-based management of engineering projects |
US7743391B2 (en) * | 2003-07-15 | 2010-06-22 | Lsi Corporation | Flexible architecture component (FAC) for efficient data integration and information interchange using web services |
US20050078822A1 (en) * | 2003-10-08 | 2005-04-14 | Eyal Shavit | Secure access and copy protection management system |
-
2004
- 2004-11-30 US US11/000,438 patent/US7568006B2/en not_active Expired - Fee Related
-
2005
- 2005-07-08 CN CN2005100830747A patent/CN1783121B/zh not_active Expired - Fee Related
- 2005-11-11 TW TW094139717A patent/TWI346880B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW200634544A (en) | 2006-10-01 |
CN1783121B (zh) | 2011-07-20 |
US7568006B2 (en) | 2009-07-28 |
TWI346880B (en) | 2011-08-11 |
US20060117064A1 (en) | 2006-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Barika et al. | Orchestrating big data analysis workflows in the cloud: research challenges, survey, and future directions | |
Ahmad et al. | Container scheduling techniques: A survey and assessment | |
Ghobaei-Arani et al. | LP-WSC: a linear programming approach for web service composition in geographically distributed cloud environments | |
US10108458B2 (en) | System and method for scheduling jobs in distributed datacenters | |
Amini Motlagh et al. | Task scheduling mechanisms in cloud computing: A systematic review | |
US20070024898A1 (en) | System and method for executing job step, and computer product | |
CN109614227A (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
Jafarnejad Ghomi et al. | Applying queue theory for modeling of cloud computing: A systematic review | |
Stavrinides et al. | Scheduling real‐time bag‐of‐tasks applications with approximate computations in SaaS clouds | |
CN1783121B (zh) | 用于执行设计自动化的方法和系统 | |
Georgiou et al. | Topology-aware job mapping | |
Lin et al. | Performance evaluation of job schedulers on Hadoop YARN | |
CN111352711A (zh) | 多计算引擎调度方法、装置、设备及存储介质 | |
Shen et al. | Performance modeling of big data applications in the cloud centers | |
Ding et al. | Kubernetes-oriented microservice placement with dynamic resource allocation | |
Elshater et al. | A study of data locality in YARN | |
Chung et al. | Performance tuning and scaling enterprise blockchain applications | |
Liu et al. | KubFBS: A fine‐grained and balance‐aware scheduling system for deep learning tasks based on kubernetes | |
US8863133B2 (en) | License management in a cluster environment | |
Ben Hafaiedh et al. | A model-based approach for formal verification and performance analysis of dynamic load-balancing protocols in cloud environment | |
Mishra et al. | H3CSA: A makespan aware task scheduling technique for cloud environments | |
Zohrati et al. | Flexible approach to schedule tasks in cloud‐computing environments | |
Zhang et al. | An effective heuristic for due-date-constrained bag-of-tasks scheduling problem for total cost minimization on hybrid clouds | |
Bratosin et al. | A reference model for grid architectures and its analysis | |
CN113283742A (zh) | 一种任务分配方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110720 Termination date: 20150708 |
|
EXPY | Termination of patent right or utility model |