CN109416642A - 计算机模拟服务器上的电子硬件设计的性能评估技术 - Google Patents
计算机模拟服务器上的电子硬件设计的性能评估技术 Download PDFInfo
- Publication number
- CN109416642A CN109416642A CN201680085135.XA CN201680085135A CN109416642A CN 109416642 A CN109416642 A CN 109416642A CN 201680085135 A CN201680085135 A CN 201680085135A CN 109416642 A CN109416642 A CN 109416642A
- Authority
- CN
- China
- Prior art keywords
- thread
- worker thread
- synchronous point
- computer simulation
- worker
- 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/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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种计算机模拟服务器上的电子硬件设计的性能评估方法(100),其中所述计算机模拟服务器包括多个处理核,所述方法包括:在多个工作线程(111、112和113)中将电子硬件设计的计算机模拟(110)进行分区(101)以在所述计算机模拟服务器的多个处理核上并行执行;提供(102)用于控制所述多个工作线程(111、112和113)的进度的调度元件(114);以及在所述多个处理核上运行(103)所述调度元件(114)和所述多个工作线程(111、112和113)以评估所述计算机模拟服务器上的所述电子硬件设计的性能,其中所述多个工作线程(111、112和113)的执行与所述调度元件(114)的执行相互锁定(121和122)。
Description
技术领域
本发明涉及计算机模拟服务器上电子硬件设计的性能评估技术,尤其涉及一种硬件微架构性能模拟器的并行调度的方法和系统。
背景技术
架构时序模拟,也称为性能模拟,用于在早期探索硬件(hardware,简称HW)架构的性能并对该性能进行优化。模拟模型每年都在变大,但模拟服务器CPU(centralprocessing unit,简称CPU)速度并没有变快。这就是模拟速度差距,模拟运行时间在逐年变慢。或者说,在模拟服务器中有更多可用的核和线程。这又为性能模拟器在多个线程间进行高效并行模拟提出了挑战。线程之间频繁的数据传输要求数据传输须同步。同步具有运行时间开销。运行时间开销是由几个因素引起的,如内存障碍和唤醒睡眠线程。
如上所述,同步具有运行时间开销。模拟模型越大,每个模拟周期中线程之间的数据传输越多。数据传输越多,则同步越多。同步越多会导致浪费在同步上的模拟时间越多。
发明内容
本发明的目标是提供用于性能模拟的改进技术。
该目标是通过独立权利要求的特征来实现的。根据从属权利要求、说明书以及附图,进一步的实现方式显而易见。
本发明的基本思想是不通过同步传输数据来解决问题,而是将模拟运行时间分成工作阶段和传输阶段,在两阶段间的阶段转换上进行同步。该解决方案添加了将模拟模型的执行移到下一个阶段的同步点。同步的总数与工作线程的数量成正比。其次,该方法可用于大型模拟模型。同步开销比R可用下述公式描述:R=Ts/(Ts+Tm),其中Ts是同步开销时间,Tm是模型计算时间,R是同步开销比。因此,计算时间Tm越大,则同步开销越小,从而并行缩放更好。下文中描述的方法、设备和系统可以在多核处理器上执行。处理器是读取和执行程序指令的组件,这些指令告诉处理器要做什么,例如从存储器读取数据或将数据发送到输出总线。一种常见类型的处理器是中央处理器(Central Processing Unit,简称CPU)。多核处理器通常定义为附有两个或更多的独立处理器(称为核)的集成电路。计算行业出现了多核处理器,作为通过并行而非原始时钟速度实现更高性能的一种方法。在过去的几十年中,计算机行业开发出了越来越快的处理器,但由于晶体管尺寸、功率要求和散热的限制,这种追求正接近尾声。由于单线程的核正达到一种稳定的时钟频率,所以芯片制造商已转向多核处理器以通过并行性来提高性能。
下文中描述的方法、设备和系统可以基于线程和线程级并行实现。线程级并行涉及到同时执行委托给CPU的各个任务线程。线程级并行通过包括硬件特定、线程实现特定到应用程序特定等各种因素大幅地影响多线程应用程序性能。每个线程维护自己的内存栈和指令,这样可以将该线程认为是一个独立的任务,即使实际上所述线程在程序或操作系统中可能并不是独立的。线程级并行由具有多线程设计的程序和操作系统使用。从概念上讲,能直观的明白为什么线程级并行会提高性能。如果线程真正独立,那么在处理器上的可用核之间扩展一组线程可将已消逝的执行时间缩短到任何线程的最长执行时间,而单线程版本则需要所有线程的额外执行时间。理想情况下,工作会在线程中平均分配,且分配和调度线程的开销最小。
根据第一方面,本发明涉及一种计算机模拟服务器上电子硬件设计的性能评估方法。所述计算机模拟服务器包括多个处理核。所述方法包括如下步骤:在多个工作线程中将所述电子硬件设计的计算机模拟进行分区以在所述计算机模拟服务器中的多个处理核上并行执行;提供用于控制所述多个工作线程的进度的调度元件;以及在所述多个处理核上运行所述调度元件和所述多个工作线程以评估所述计算机模拟服务器上的所述电子硬件设计的性能,其中所述多个工作线程的执行与所述调度元件的执行相互锁定,以确保同步执行。
这提供了以下优点:通过可以锁定彼此的工作线程和调度元件可以高效和安全地同步计算机模拟的执行。一方面使得同步开销最小化,从而加快了模拟速度;另一方面,因为多个线程不会损害数据完整性,所述保证了安全性。在本申请中,安全性理解为保证消费者在生产者完成数据生产后可以消费数据。
所述调度元件控制线程的进度。所述操作系统控制分配工作线程到处理核。
根据所述第一方面,在所述方法的第一种可能的实现方式中,所述调度元件包括与所述多个工作线程不同的调度器线程。
根据所述第一方面的第一种实现方式,在所述方法的第二种可能的实现方式中,所述多个工作线程和所述调度器线程互锁彼此的执行,使得工作线程的执行锁定调度器线程的执行,调度器线程的执行锁定工作线程的执行。
这提供了以下优点:调度器线程和工作线程可以实现用于同步的某种握手过程,这是一种非常有效且安全的过程。安全意味着可以保证在生产者完成生产数据后,消费者可以消费数据。根据所述第一方面的第一或第二种实现方式中的任一种,在所述方法的第三种可能的实现方式中,所述计算机模拟服务器的处理周期分成用于在工作线程内执行计算的工作阶段和用于执行工作线程间数据传输的传输阶段。
这提供了以下优点:模拟运行时间可以分成工作阶段和传输阶段且同步可以在阶段转换上进行。此解决方案添加了将模拟模型的执行移到下一个阶段的同步点。同步的总数可与工作线程的数量成正比。其次,该解决方案可用于大型模拟模型。这意味着可以保证以下问题:(1)只有在所有线程完成工作后,传输才启动;(2)在所有线程完成传输后,工作开始。
根据所述第一方面的第三种实现方式,在所述方法的第四种可能的实现方式中,所述方法包括:将所述计算机模拟的一个或多个分区分配给相应的工作线程;相应的工作线程连续处理所所分配的分区。
这提供了以下优点:根据电子硬件设计的大小和计算机模拟服务器的架构,所述将计算机模拟分区到工作线程可以灵活地处理。因此,计算机模拟的执行在速度和内存要求方面可以得到改进。
根据所述第一方面的第三或第四种实现方式中的任一种,在所述方法的第五种可能的实现方式中,所述方法包括:将用于所述计算机模拟的分区之间通信的一个或多个通信信道分配给相应的工作线程;相应的工作线程连续处理所分配的通信信道。
这提供了以下优点:可以根据电子硬件设计的性能评估的要求灵活地分配各个分区之间的数据通信,从而产生最佳性能。
根据所述第一方面的第三至第五种实现方式中的任一种,在所述方法的第六种可能的实现方式中,所述方法包括:所述调度线程通过设置用于锁定工作线程不转换到传输阶段的第一同步点以及通过设置用于锁定工作线程不转换到工作阶段的第二同步点同步工作线程。
这提供了以下优点:工作线程可以在传输阶段和工作阶段之间同步。这意味着,在传输阶段开始时工作线程在工作阶段处理的数据是可用的,在下一个工作阶段开始时工作线程在传输阶段传输的数据是可用的。模拟速度通过多重线程得以实现。
根据所述第一方面的第六种实现方式,在所述方法的第七种可能的实现方式中,所述第二同步点在时间上晚于所述第一同步。
这提供了以下优点:在开始处理下一个数据之前,工作线程可以先将其已处理的数据传输到下一个工作线程。这样,在下次处理开始之前有足够的时间完成处理。
根据所述第一方面的第七种实现方式,在所述方法的第八种可能的实现方式中,所述方法包括:先设置所述第二同步点,再释放所述第一同步点。
这提供了如下优点:在所述释放所述第一同步点允许工作线程转换到传输阶段之前,所述设置所述第二同步点锁定了工作线程不转换到下一个工作阶段。如前所述,执行的安全性可以得到保证。
根据所述第一方面的第六至第八种实现方式中的任一种,在所述方法的第九种可能的实现方式中,所述方法包括:工作线程通过设置用于锁定调度线程不转换到第二阶段的第三同步点和通过设置用于锁定调度线程不转换到第一阶段的第四同步点同步所述调度线程。
这提供了以下优点:调度线程可以由第一阶段和第二阶段之间的工作线程进行同步。由于调度线程控制工作线程的进度,因此保证了调度线程在所有工作线程准备移动到下一个阶段之前不会进入下一个阶段。
根据所述第一方面的第九种实现方式,在所述方法的第十种可能的实现方式中,所述第四同步点在时间上晚于所述第三同步点。
这提供了以下优点:调度器线程可以由工作线程根据时间步长进行控制。这使得调度器线程与工作线程可以在阶段转换上而不是在每个传输的数据元件上进行同步。这大大减少了同步的数量。
根据所述第一方面的第十种实现方式,在所述方法的第十一种可能的实现方式中,所述方法包括:先设置所述第四同步点,再释放所述第三同步点。
这提供了以下优点:调度器线程可以在前一个进程的结果可用之前停止运行后一个进程。线程安全性进一步提高了。
根据所述第一方面的第六至第十一种实现方式中的任一种,在所述方法的第十二种可能的实现方式中,设置第一同步点、第二同步点、第三同步点和第四同步点包括设置线程之间的互斥锁、自旋锁、信号量、易失性变量、原子变量或任何其他软件同步技术。
这提供了以下优点:可以将通用实时操作系统中可用的元件应用于该同步技术,以提供有效的实现。支持了任何当前或未来的同步技术。
可选地,这可以通过释放一致性和/或熟悉多线程软件领域的人可知的线程之间同步的任何其他技术来执行。
根据第二方面,本发明涉及一种具有程序代码的计算机程序,当所述计算机程序在计算机模拟服务器上运行时,用于根据第一方面或第一方面的任何前述实现方式中的方法进行电子硬件设计的性能评估。
这提供了以下优点:本发明中的方法可以很容易地在计算机程序上实现且可在计算机模拟服务器上执行。
根据第三方面,本发明涉及一种包括用于电子硬件设计的性能评估的多个处理核的计算机模拟服务器,所述计算机模拟服务器包括:在所述多个处理核上并行运行的多个工作线程,其中所述多个工作线程用于在所述多个处理核上执行所述电子硬件设计的计算机模拟的相应分区;以及调度元件,用于控制所述多个工作线程的进度,其中所述多个工作线程的执行与所述调度元件的执行相互锁定。
这提供了以下优点:可通过可以锁定彼此的工作线程和调度元件高效地同步计算机模拟服务器上的执行。因此存在计算机模拟服务器上的计算机模拟执行中定义的阶段。其次,该解决方案可用于在计算机模拟服务器上实现大型模拟模型。
所述调度元件控制线程的进度。所述计算机模拟服务器的操作系统控制分配工作线程到处理核。
所提出的方法和所提出的模拟服务器通过对模型大小,即模拟服务器核的数量,和线程数量进行良好并行缩放来提高模拟速度。获得了具有基于时分的线程同步机制的高效并行缩放。
附图说明
本发明的更多实施例将结合以下附图进行描述,其中:
图1示出了一实现方式中的一种计算机模拟服务器上的电子硬件设计的性能评估方法100的示意图;
图2a示出了一实现方式中的工作阶段200a中的工作线程的同步的示意图;
图2b示出了一实现方式中的传输阶段200b中的工作线程的同步的示意图;
图3示出了一实现方式中通信信道303耦合的计算机模拟的两个示例性分区301和302的示意图300;
图4a示出了在传输阶段400a期间工作线程411和412和调度器线程414的同步的示意图;
图4b示出了在工作阶段400b期间工作线程411和412和调度器线程414的同步的示意图;
图5示出了通过同步点进行工作线程511和调度器线程514的同步的示意图;
图6示出了一实施方式中的示例性调度器算法600的示意图;
图7示出了一实施方式中的示例性工作线程算法700的示意图;
图8示出了一实施方式中的工作线程和调度器线程之间的示例性同步过程的序列图800;
图9示出了一实施方式中的电子硬件设计的性能评估的示例性计算机模拟服务器900的框图。
具体实施方式
以下结合附图进行详细描述,所述附图是描述的一部分,并通过图解说明的方式示出可以实施本发明的具体方面。可以理解的是,在不脱离本发明范围的情况下,可以利用其他方面,并可以做出结构上或逻辑上的改变。因此,以下详细的描述并不当作限定,本发明的范围由所附权利要求书界定。
应理解,与所描述的方法有关的注解还适用于执行该方法的对应设备或系统,反之亦然。例如,如果描述了特定方法步骤,则对应设备可以包括用于执行所描述的方法步骤的单元,即使此类单元没有在图中明确描述或图示。此外,应理解,本文所描述的各种示例性方面的特性可以相互组合,除非另外明确说明。
图1示出了一实现方式中的一种包括多个处理核的计算机模拟服务器上的电子硬件设计的性能评估方法100的示意图。
所述方法100包括:101、在多个工作线程111、112和113中将所述电子硬件设计的计算机模拟110进行分区以在所述计算机模拟服务器的所述多个处理核上并行执行。
所述方法100包括:102、提供用于控制所述多个工作线程111、112和113的进度的调度元件114。
所述方法100还包括:103、在所述多个处理核上运行所述调度元件114和所述多个工作线程111、112和113以评估所述计算机模拟服务器上的电子硬件设计的性能,其中所述多个工作线程111、112和113的执行与所述调度元件114的执行相互锁定,即121和122,以确保同步执行。
所述调度元件114可包括与所述多个工作线程111、112和113不同的调度器线程。所述多个工作线程111、112和113和所述调度器线程114可以互锁彼此的执行,使得工作线程111、112和113的执行锁定所述调度器线程114的执行,所述调度器线程114的执行锁定所述工作线程111、112和113的执行。
所述计算机模拟服务器的处理周期可以分成在所述工作线程111、112和113内执行计算的工作阶段和执行所述工作线程111、112和113之间数据传输的传输阶段。
该方法可以包括:将所述计算机模拟110的一个或多个分区p1、p2和p3分配给相应的工作线程111、112和113;相应的工作线程111、112和113连续处理所分配的分区p1、p2和p3。所述方法100可以进一步包括:将用于所述计算机模拟110的分区301和302之间通信的一个或多个通信信道303分配给相应的工作线程111、112和113;相应的工作线程111、112和113连续处理所分配的通信信道303。
所述方法100还可以包括:所述调度线程114,如下述结合图5所示的调度器线程511,通过设置用于锁定工作线程511不转换到传输阶段的第一同步点以及通过设置用于锁定工作线程511不转换到工作阶段的第二同步点同步工作线程111、112和113,如下述结合图5所示的工作线程511。其中所述第一同步点如下述结合图5所示的第一同步点521,所述第二同步点如下述结合图5所示的第二同步点522,所述传输阶段如下述结合图5所示的传输阶段502,所述工作阶段如下述结合图5所示的工作阶段501。所述第二同步点522在时间上可以晚于所述第一同步点521。所述方法100还可以包括:先设置所述第二同步点522,再释放所述第一同步点521。
所述方法100还可以包括:工作线程511通过设置用于锁定调度线程514不转换到第二阶段的第三同步点和通过设置用于锁定所述调度线程514不转换到第一阶段的第四同步点同步所述调度线程514。其中所述第二阶段如下述结合图5所示的第二阶段504,所述第三同步点如下述结合图5所示的第三同步点523,所述第一阶段如下述结合图5所示的第一阶段503,所述第四同步点如下述结合图5所示的第四同步点524。所述第四同步点524在时间上晚于所述第三同步点523。所述方法100可包括:先设置所述第四同步点524,再释放所述第三同步点523。设置所述第一同步点521、第二同步点522、第三同步点523和第四同步点524可包括设置线程之间的互斥锁、自旋锁、信号量、易失性变量、原子变量或任何其他软件同步技术。
图2a示出了一实施方式中的工作阶段200a中的工作线程的同步的示意图。图2b示出了一实施方式中的传输阶段200b中的工作线程的同步的示意图。有多个工作线程210、220和230,且每个工作线程都有一个工作组和一个传输组。工作线程210具有工作组A和传输组A;工作线程220具有工作组B和传输组B;工作线程230具有工作组C和传输组C。在工作阶段200a中,工作线程210、220和230被调度器元件在工作组A、B和C中锁定,即215、225和235,以处理数据。工作线程210处理输入in0 211,并生成输出out0 212和out1 213。工作线程220处理输入in1 221,并生成输出out2 222。工作线程230处理输入in2 231,并生成输出out3 232。
在传输阶段200b中,工作线程210、220和230被调度器元件在工作组A、B和C中锁定,即216、226和236,以将数据传输到下一个工作线程210、220和230。工作线程210将数据从其输出out0 212传输到工作线程220的输入in1 221,以及从其输出out1 213传输到工作线程230的输入in2 231。工作线程220将数据从其输出out2 222传输到下一个(未示出)工作线程的输入。工作线程230将数据从其输出out3 232传输到下一个(未示出)工作线程的输入。
通过并行化并发的工作线程210、220和230之间的任务使得模拟速度加快。模拟也面临在每个模拟周期同步模拟数据的约束。调度器(未示出)在至少一个单独的线程上运行,工作线程和调度器线程互锁彼此的进程。
工作线程模拟任务分成工作阶段200a和传输阶段200b,其中在工作阶段200a期间完成计算,在传输阶段200b期间完成数据传输。通过将一个或多个分区分配给工作线程,工作阶段200a中的计算在工作线程210、220和230之间并行。每个工作线程连续处理其分区。通过将一个或多个通信信道分配给工作线程,传输阶段200b中的数据传输在工作线程210、220和230之间并行。通信通道是一对连接接收器输入端口的驱动器输出端口。每个工作线程连续处理其信道。每个工作线程210、220和230由调度器使用2个同步元件(例如互斥锁、自旋锁和条件变量等)进行同步:一个同步元件锁定线程不转换到工作阶段200a,另外一个同步元件锁定线程不转换到传输阶段200b。每个工作线程210、220和230使用2个同步元件同步调度器:一个同步元件锁定调度器不转换到第一阶段,另外一个同步元件锁定调度器不转换到第二阶段,如下面结合图4所描述的。在上述每个同步方法中,在较早(近)同步元件解锁之前,锁定较晚(远)同步点。
图3示出了一实现方式中通信信道303耦合的计算机模拟的两个示例性分区301和302的示意图300。如以上结合图2所描述的,通过将一个或多个通信信道分配给工作线程,使传输阶段200b中的数据传输在工作线程210、220和230之间并行。通信信道303是一对连接接收器输入端口305的驱动器输出端口304。例如,分区i 301分配给工作线程210,分区j分配给工作线程220。然后,通信信道303对应于图2所示的工作线程210的输出端口out2212和工作线程220的输入端口in1 221间的信道。在传输阶段200b中,工作线程210和220被调度器元件锁定306,以经由通信信道303将数据从分区i 301传输到分区j 302。
图4a示出了在传输阶段400a期间工作线程411和412和调度器线程414的同步的示意图。在传输阶段400a中,锁定工作线程410和420以用于工作401,即,锁定以用于调度器元件414处理数据且解锁以用于数据传输402。调度器线程414将工作线程410和420中的第一同步点设置为0,可如图4a的图的上部所示,且将工作线程410和420中的第二同步点设置为1,可如图4a的图的下部所示。在传输阶段400a中,调度器线程414锁定在阶段0 403中并被解锁以由工作线程410和420传输到阶段1 404。工作线程410和420将调度器线程414中的第三同步点设置为1,可如图4a的图的上部所示,且将调度器线程414中的第二同步点设置为0,可如图4a的图的下部所示。
图4b示出了在工作阶段400b期间工作线程411和412和调度器线程414的同步的示意图。工作阶段400b中的情况与图4a中所示的传输阶段400a中的情况是互补的。
在工作阶段400b中,工作线程410和420解锁了以用于工作401,即,解锁以用于调度器元件414处理数据且锁定以用于数据传输402。调度器线程414将工作线程410和420中的第一同步点设置为1,可如图4b的图的上部所示,且将工作线程410和420中的第二同步点设置为0,可如图4b的图的下部所示。在工作阶段400b中,调度器线程414锁定在阶段1 404中并被解锁以由工作线程410和420传输到阶段0 403。工作线程410和420将调度器线程414中的第三同步点设置为0,可如图4b的图的上部所示,且将调度器线程414中的第二同步点设置为1,可如图4b的图的下部所示。
图4a和4b的例子在工作模拟器中已成功实现,且可以显著加速单线程的运行时间。
图5示出了通过同步点进行工作线程511和调度器线程514的同步的示意图。图5与图4相关,描述了不同工作线程、调度器线程、阶段和同步点的概况。
调度器线程514可以通过设置用于锁定工作线程511不转换到传输阶段502的第一同步点521且通过设置用于锁定工作线程511不转换到工作阶段501的第二同步点522来同步工作线程511。其中,所述工作线程511如上述结合图4所描述的工作线程411和412,所述调度器线程514如上述结合图4所描述的调度器线程414。所述第二同步点522在时间上可以晚于所述第一同步点521。可以在释放所述第一同步点521之前设置所述第二同步点522。
工作线程511可以通过设置用于锁定调度线程514不转换到第二阶段504的第三同步点523且通过设置用于锁定调度线程514不转换到第一阶段503的第四同步点524来同步调度器线程514。所述第四同步点524在时间上可以晚于所述第三同步点523。所述第四同步点524可以在释放所述第三同步点523之前设置。设置所述第一同步点521、所述第二同步点522、所述第三同步点523和所述第四同步点524可以通过设置线程之间的互斥锁、自旋锁、信号量、易失性变量、原子变量或任何其他软件同步技术来实现。
图6示出了一实施方式中的示例性调度器算法600的示意图,图7示出了一实施方式中的示例性工作线程算法700的示意图。
以下定义可以应用于图6和7中:“互斥锁”是有N>1个工作线程(线程)的所有同步方法的代表,例如,信号量、futex、自旋锁等。调度器正在单独的线程上运行。每个线程添加4个互斥锁。每个互斥锁对于两个线程,即调度器线程和工作线程来说是通用的。
在特定线程的特定互斥锁上,将应用以下操作:
o lock(mutexName,thread)
o unlock(mutexName,thread)
o wait(mutexName,thread)
在所有线程的特定互斥锁上,将应用以下操作:
o lockAll(mutexName):针对所有线程lock(mutexName,thread)
o unlockAll(mutexName):针对所有线程unlock(mutexName,thread)
o waitAll(mutexName):针对所有线程wait(mutexName,thread)
这两个(即调度器和工作者)线程具有以下角色:一个负责锁定和解锁,而另一个等待。
通过调度器算法600,可以实现如上结合图4a、图4b和图5所述的调度器线程414和514的功能。通过工作线程算法700,可以实现如上结合图4a、图4b和图5描述的工作线程411、412和511的功能。
图8示出了一实施方式中的工作线程811和812和调度器线程814之间的示例性同步过程的序列图800。
图8给出了一个“阶梯图”,演示了如上结合图6和图7所示的流程tick()和循环迭代task()。图8基于2个工作线程811和812进行描述。更多工作线程的描述是没有必要的。图8不包括初始化和终止,但图6和图7的上述代码中包括了初始化和终止。
在周期820开始时,工作线程811和812处于工作阶段801,调度器线程814处于阶段1 804。工作线程811和812都处理其输入数据以生成输出数据。调度器线程814监视工作线程811和812的进度,且如果数据处理完成,调度器线程814将工作线程811和812锁定在传输阶段802中,然后解锁工作阶段801。此外,工作线程811和812将调度器线程814锁定到阶段0803且将其从阶段1 804中解锁。
在周期820开始时,工作线程811和812处于传输阶段802,且调度器线程814处于阶段0 803。两个工作线程811和812都将其输出数据传输到下一个工作线程。调度器线程814监视工作线程811和812的进度,且如果数据传输完成,调度器线程814将工作线程811和812锁定在工作阶段801中,然后解锁传输阶段802。此外,工作线程811和812将调度器线程814锁定到阶段1 804并且将其从阶段0 803中解锁。
对于下一个循环820,重复与上述相同的过程。
图9示出了一实施方式中的电子硬件设计的性能评估的示例性计算机模拟服务器900的框图。所述计算机模拟服务器900包括用于电子硬件设计的性能评估的多个处理核910、920、930和940。每个核910、920、930和940分配有一个由所有处理核910、920、930和940共享的CPU存储器950。所有软件线程都属于可以访问该进程的整个存储空间的进程。总线接口960提供对所述CPU存储器950的外部访问。
如上面结合图1所述,多个工作线程111、112和113在处理核910、920和930上并行运行。所述工作线程111、112和113用于执行所述处理核910、920和930的以上结合图1所描述的电子硬件设计的计算机模拟110的相应分区p1、p2和p3。调度元件114在处理核940上运行。所述调度元件114控制所述工作线程111、112和113的进度。所述多个工作线程111、112和113的执行与所述调度元件114的执行相互锁定以确保同步执行,如上结合图1至8所述。
本发明还支持包括计算机可执行代码或计算机可执行指令的计算机程序产品,所述计算机可执行代码或计算机可执行指令在执行时使得至少一个计算机执行本文描述的执行和计算步骤,特别是上述结合图1所述的方法100和上述结合图2至图8描述的技术。这种计算机程序产品可包括存储程序代码的可读非临时存储介质,以供计算机使用。所述程序代码可以执行本文所述的步骤,特别是上述方法100。计算机程序可以包括程序代码,用于当在计算机上执行时执行如上结合图1所述的方法100。
尽管本发明的特定特征或方面可能已经仅结合几种实现形式中的一种进行公开,但此类特征或方面可以和其它实现形式中的一个或多个特征或方面相结合,只要对于任何给定或特定的应用是有需要或有利。而且,在一定程度上,术语“包括”、“有”、“具有”或这些词的其他变形在详细的说明书或权利要求书中使用,这类术语和所述术语“包含”是类似的,都是表示包括的含义。同样,术语“示例性地”,“例如”仅表示为示例,而不是最好或最佳的。可以使用术语“耦合”和“连接”及其派生词。应当理解,这些术语可以用于指示两个元件彼此协作或交互,而不管它们是直接物理接触还是电接触,或者它们彼此不直接接触。尽管本文中已说明和描述特定方面,但所属领域的技术人员应了解,多种替代和/或等效实现方式可在不脱离本发明的范围的情况下所示和描述的特定方面。该申请旨在覆盖本文论述的特定方面的任何修改或变更。
尽管以上权利要求书中的元件是利用对应的标签按照特定顺序列举的,除非对权利要求的阐述另有暗示用于实施部分或所有这些元件的特定顺序,否则这些元件不必限于以所述特定顺序来实施。
通过以上启示,对于本领域技术人员来说,许多替代、修改和变化是显而易见的。当然,所属领域的技术人员容易认识到除本文所述的应用之外,还存在本发明的众多其它应用。虽然已参考一个或多个特定实施例描述了本发明,但所属领域的技术人员将认识到在不偏离本发明的范围的前提下,仍可对本发明作出许多改变。因此,应理解,只要是在所附权利要求书及其等效物的范围内,可以用不同于本文具体描述的方式来实践本发明。
Claims (15)
1.一种计算机模拟服务器上的电子硬件设计的性能评估方法(100),其特征在于,所述计算机模拟服务器包括多个处理核,所述方法包括:
在多个工作线程(111、112和113)中将所述电子硬件设计的计算机模拟(110)进行分区(101)以在所述计算机模拟服务器的所述多个处理核上并行执行;
提供(102)用于控制所述多个工作线程(111、112和113)的进度的调度元件(114);
在所述多个处理核上运行(103)所述调度元件(114)和所述多个工作线程(111、112和113)以评估所述计算机模拟服务器上的所述电子硬件设计的性能,其中
所述多个工作线程(111、112和113)的执行与所述调度元件(114)的执行相互锁定(121和122)。
2.根据权利要求1所述的方法(100),其特征在于,
所述调度元件(114)包括与所述多个工作线程(111、112和113)不同的调度器线程。
3.根据权利要求2所述的方法(100),其特征在于,
所述多个工作线程(111、112和113)和所述调度器线程(114)彼此互锁执行,使得工作线程(111、112和113)的执行锁定所述调度器线程(114)的执行,所述调度器线程(114)的执行锁定所述工作线程(111、112和113)的执行。
4.根据权利要求2或3所述的方法(100),其特征在于,
所述计算机模拟服务器的处理周期分成在所述工作线程(111、112和113)内执行计算的工作阶段和执行所述工作线程(111、112和113)之间数据传输的传输阶段。
5.根据权利要求4所述的方法(100),其特征在于,包括:
将所述计算机模拟(110)的一个或多个分区(p1、p2和p3)分配给相应的工作线程(111、112和113);
相应的工作线程(111、112和113)连续处理所分配的分区(p1、p2和p3)。
6.根据权利要求4或5所述的方法(100),其特征在于,包括:
将用于所述计算机模拟(110)的分区(301和302)之间通信的一个或多个通信信道(303)分配给相应的工作线程(111、112和113);
相应的工作线程(111、112和113)连续处理所分配的通信信道(303)。
7.根据权利要求4至6任一项所述的方法(100),其特征在于,包括:
所述调度线程(514)通过设置用于锁定工作线程(511)不转换到传输阶段(502)的第一同步点(521)以及通过设置用于锁定工作线程(511)不转换到工作阶段(501)的第二同步点(522)同步工作线程(511)。
8.根据权利要求7所述的方法(100),其特征在于,
所述第二同步点(522)在时间上晚于所述第一同步点(521)。
9.根据权利要求8所述的方法(100),其特征在于,包括:
先设置所述第二同步点(522),再释放所述第一同步点(521)。
10.根据权利要求7至9任一项所述的方法(100),其特征在于,包括:
工作线程(511)通过设置用于锁定调度线程(514)不转换到第二阶段(504)的第三同步点(523)和通过设置用于锁定所述调度线程(514)不转换到第一阶段(503)的第四同步点(524)同步所述调度线程(514)。
11.根据权利要求10所述的方法(100),其特征在于,
所述第四同步点(524)在时间上晚于所述第三同步点(523)。
12.根据权利要求11所述的方法(100),其特征在于,包括:
先设置所述第四同步点(524),再释放所述第三同步点(523)。
13.根据权利要求7至12任一项所述的方法(100),其特征在于,
设置所述第一同步点(521)、第二同步点(522)、第三同步点(523)和第四同步点(524)包括设置线程之间的互斥锁、自旋锁、信号量、易失性变量、原子变量或任何其他软件同步技术。
14.一种具有程序代码(500和600)的计算机程序,其特征在于,当所述计算机程序在计算机模拟服务器(800)上运行时,用于根据权利要求1至13中任一项所述的方法(100)进行电子硬件设计的性能评估。
15.一种包括用于电子硬件设计的性能评估的多个处理核(910、920、930和940)的计算机模拟服务器(900),其特征在于,所述计算机模拟服务器(900)包括:
在所述多个处理核(910、920、930和940)上并行运行的多个工作线程(111、112和113),其中所述多个工作线程(111、112和113)用于执行在所述多个处理核(910、920、930和940)上的电子硬件设计的计算机模拟(110)的相应的分区(p1、p2和p3);
调度元件(114),用于控制所述多个工作线程(111、112和113)的进度,其中
所述多个工作线程(111、112和113)的执行与所述调度元件(114)的执行相互锁定。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2016/065664 WO2018006928A1 (en) | 2016-07-04 | 2016-07-04 | Techniques for performance evaluation of an electronic hardware design on a computer simulation server |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109416642A true CN109416642A (zh) | 2019-03-01 |
Family
ID=56296839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680085135.XA Pending CN109416642A (zh) | 2016-07-04 | 2016-07-04 | 计算机模拟服务器上的电子硬件设计的性能评估技术 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109416642A (zh) |
WO (1) | WO2018006928A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1490717A (zh) * | 2002-09-17 | 2004-04-21 | �Ҵ���˾ | 在多处理器宿主系统上进行多处理器仿真的方法和系统 |
US6766517B1 (en) * | 1999-10-14 | 2004-07-20 | Sun Microsystems, Inc. | System and method for facilitating thread-safe message passing communications among threads in respective processes |
CN101027643A (zh) * | 2002-12-20 | 2007-08-29 | 国际商业机器公司 | 在多线程消息流环境中管理消息流的方法、设备和程序 |
US20130298137A1 (en) * | 2011-01-07 | 2013-11-07 | Fujitsu Limited | Multi-task scheduling method and multi-core processor system |
US20150058859A1 (en) * | 2013-08-20 | 2015-02-26 | Synopsys, Inc. | Deferred Execution in a Multi-thread Safe System Level Modeling Simulation |
-
2016
- 2016-07-04 CN CN201680085135.XA patent/CN109416642A/zh active Pending
- 2016-07-04 WO PCT/EP2016/065664 patent/WO2018006928A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766517B1 (en) * | 1999-10-14 | 2004-07-20 | Sun Microsystems, Inc. | System and method for facilitating thread-safe message passing communications among threads in respective processes |
CN1490717A (zh) * | 2002-09-17 | 2004-04-21 | �Ҵ���˾ | 在多处理器宿主系统上进行多处理器仿真的方法和系统 |
CN101027643A (zh) * | 2002-12-20 | 2007-08-29 | 国际商业机器公司 | 在多线程消息流环境中管理消息流的方法、设备和程序 |
US20130298137A1 (en) * | 2011-01-07 | 2013-11-07 | Fujitsu Limited | Multi-task scheduling method and multi-core processor system |
US20150058859A1 (en) * | 2013-08-20 | 2015-02-26 | Synopsys, Inc. | Deferred Execution in a Multi-thread Safe System Level Modeling Simulation |
Non-Patent Citations (2)
Title |
---|
ANDREW OVER 等: "A Comparison of Two Approaches to Parallel Simulation of Multiprocessors", 《PERFORMANCE ANALYSIS OF SYSTEMS & SOFTWARE,2007.ISPASS 2007.IEEE INTERNATIONAL SYMPOSIUM ON,IEEE,PI》 * |
TOM BERGAN等: "CoreDet:A Compiler and Runtime System for Deterministic Multithreaded Execution", 《PROCEEDINGS OF THE FIFTEENTH EDITION OF PROGRAMMING LANGUAGES AND OPERATING SYSTEMS,ASPLOS’10,ACM PRESS, NEW YORK, NEW YORK, USA》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018006928A1 (en) | 2018-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tan et al. | Coupling task progress for mapreduce resource-aware scheduling | |
US9141732B2 (en) | Simulation execution method, program, and system | |
CN103544065B (zh) | 一种arinc653标准下的航电系统分区窗口调度方法 | |
CN107220107B (zh) | 一种多时钟多任务并行实时仿真系统及方法 | |
Yin et al. | Single-machine scheduling with controllable processing times and learning effect | |
US20120233621A1 (en) | Method, program, and parallel computer system for scheduling plurality of computation processes including all-to-all communications (a2a) among plurality of nodes (processors) constituting network | |
CN105631921B (zh) | 图像数据的处理方法及装置 | |
Semwal et al. | On ordering multi-robot task executions within a cyber physical system | |
Dorflinger et al. | Hardware and software task scheduling for ARM-FPGA platforms | |
Porto et al. | Performance evaluation of a parallel tabu search task scheduling algorithm | |
Zhao et al. | Timing-accurate general-purpose I/O for multi-and many-core systems: Scheduling and hardware support | |
CN109416642A (zh) | 计算机模拟服务器上的电子硬件设计的性能评估技术 | |
Yang et al. | On the dominance of minimum-parallelism multiprocessor supply | |
Bletsas et al. | Extended analysis with reduced pessimism for systems with limited parallelism | |
CN109961390A (zh) | 并行图像处理方法及系统 | |
CN115827258B (zh) | 分布式任务运行方法、主控服务器、仿真计算节点及系统 | |
Li et al. | Capacity augmentation bound of federated scheduling for parallel dag tasks | |
CN102299820A (zh) | 一种盟员节点装置及hla系统构架的实现方法 | |
Chen et al. | Capacity augmentation bounds for parallel dag tasks under g-edf and g-rm | |
US10198290B2 (en) | Method for composing and executing a real-time task sequence plan | |
Jin et al. | Research and implementation of high priority scheduling algorithm based on intelligent storage of power materials | |
CN109313581A (zh) | 用于多核处理器的同步操作的方法 | |
CN108369527A (zh) | 用于基于时间的任务调度的方法和设备 | |
Zarrouk et al. | Towards an embedded distributed implementations of PSO solutions for the flexible job shop problem | |
Triki et al. | Optimized distributed implementation of timed component-based systems |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190301 |