欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

仿真引擎的性能測試方法及存儲介質(zhì)與流程

文檔序號:12864047閱讀:703來源:國知局
仿真引擎的性能測試方法及存儲介質(zhì)與流程

本發(fā)明涉及一種仿真計算領(lǐng)域,更具體地說,涉及并行離散事件(pdes,paralleldiscreteeventsimulation)仿真引擎的性能測試方法及存儲介質(zhì)。



背景技術(shù):

基于數(shù)字計算機的離散事件仿真廣泛應(yīng)用于軍事、裝備、社會等領(lǐng)域,如何提高仿真運行效率是業(yè)界所廣泛關(guān)注的技術(shù)問題,隨著計算機軟硬件技術(shù)的不斷發(fā)展,軟硬件并行能力的不斷提升,要求離散事件仿真的并行化以提高效率,但如何衡量仿真引擎的效率,從而比較不同實現(xiàn)方式的優(yōu)劣,指導(dǎo)技術(shù)發(fā)展方向,是本領(lǐng)域迫切的需求,但一直未得到有效解決,其原因主要在于:

1、性能的模型無關(guān)性:通常仿真的性能包括了引擎的性能和模型運算的性能,測量引擎的性能必須以某種方式的仿真運行為手段,因此必須排除模型性能的影響,即必須要設(shè)計足夠簡單,在不同引擎上都能實現(xiàn)且能夠支持引擎性能測量的通用模型;

2、性能指標(biāo)的客觀性:不同的仿真引擎采用了不同的實現(xiàn)方法,包括在并行化上也有不同的實現(xiàn)手段,比較其性能就要剔除由于引擎設(shè)計不同而造成的個性化指標(biāo),而是篩選和定義所有引擎都必須具備的指標(biāo),并且能夠代表引擎設(shè)計的基礎(chǔ)性能;

3、性能指標(biāo)的可實施性:與硬件和標(biāo)準(zhǔn)軟件的benchmark不同,由于不同引擎的軟件設(shè)計使得不可能有統(tǒng)一的測試工具,甚至統(tǒng)一的一套源代碼也非常困難,因此測試方法必須具有在不同引擎上的可實現(xiàn)性,甚至具有不可作弊和不可抵賴的特點。

在并行離散事件(pdes,paralleldiscreteeventsimulation)計算領(lǐng)域,研究者們針對并行性能的度量和測量方法做了很多努力,并行系統(tǒng)的加速比定義為:對于一個給定的應(yīng)用,并行算法或并行程序的執(zhí)行速度相對于串行算法或串行程序的執(zhí)行速度加快了多少倍。引申到離散事件仿真中,并行和串行的離散事件仿真的加速比可以類似定義,而對于引擎,則應(yīng)消除算法和模型復(fù)雜度的差異。

并行加速比存在三種定律:amdahl定律,gustafson定律,sun和ni定律。amdahl定律應(yīng)用于實時性要求較高的科學(xué)計算,針對固定不變的計算負(fù)載,通過增加處理器和提高處理器速度進行加速,受限于問題的可分解并行程度,加速比隨處理器增加存在一個上限。gustafson針對計算時間固定但計算精度隨計算量正相關(guān)的情況,通過增加處理器在不變的時間內(nèi)加大計算量從而提高精度。sun和ni定律是上述兩者的綜合。

通用測試模型phold是廣泛使用的仿真引擎測試模型,是對對稱負(fù)載的基準(zhǔn)測試模型,該模型假設(shè)具有n個并行執(zhí)行,平均分配到m個處理器上,在仿真初始化時,每個lp(邏輯并行過程)有r個初始事件,按均勻分布從n個lp中隨機選擇一個發(fā)送目標(biāo),在仿真過程中,每收到一個事件,就再產(chǎn)生k個新的事件并向隨機選擇的目標(biāo)發(fā)送,考察系統(tǒng)整體時間推進的情況。

從phold模型設(shè)計發(fā)現(xiàn),該模型完全針對并行仿真,無法在并行和串行之間兼容和切換;其次測試內(nèi)容考慮了處理器之間通信的開銷,以及由于通信延遲導(dǎo)致的時間沖突從而發(fā)生無效執(zhí)行和回退的開銷等因素,因此是一種綜合的性能測試,針對保守時間同步的引擎沒有無效執(zhí)行和回退,而需要考核在事件調(diào)度時的時間協(xié)調(diào)。

綜合國內(nèi)外研究現(xiàn)狀,對于并行離散事件仿真引擎的性能定量指標(biāo)分析及測量方法還存在很大的不足,尤其是針對引擎自身的基礎(chǔ)性能指標(biāo)方面,缺乏客觀科學(xué)的標(biāo)準(zhǔn)和方法。

因此,如何對并行離散時間仿真引擎進行性能測試,以更好的反應(yīng)系統(tǒng)的運行效率,并進一步的,利用該測試指標(biāo)對仿真引擎進行優(yōu)化,成為現(xiàn)有技術(shù)亟需解決的技術(shù)問題。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的在于提出一種仿真引擎的性能測試方法及存儲介質(zhì),以同步事件調(diào)度效率、隨機事件調(diào)度效率、事件隊列管理效率、時間推進效率為指標(biāo),實現(xiàn)針對性能的核心要素——事件為主而設(shè)計的指標(biāo),并進行測試,充分體現(xiàn)引擎的基礎(chǔ)能力,以及在并行化實現(xiàn)方式上效率的高低。

為達此目的,本發(fā)明采用以下技術(shù)方案:

一種仿真引擎的性能測試方法,用于并行離散事件的仿真,包括如下步驟:

步驟s110:建立并生成仿真模型,并使用管理應(yīng)用所需的信息配置所述仿真模型;

步驟s120:使用同步事件調(diào)度性能、隨機事件調(diào)度性能、事件隊列管理性能、和時間推進效率中的一個或多個作為指標(biāo)對仿真模型進行測試,

所述同步時間調(diào)度性能指的是:單位時間調(diào)度的仿真時間相同事件的數(shù)量,

所述隨機事件調(diào)度性能是:單位時間調(diào)度的仿真時間隨機分布事件的數(shù)量,

所述事件隊列管理性能指的是:單位時間向事件隊列中插入仿真時間隨機分布的事件數(shù)量,

所述時間推進效率指的是:調(diào)度指定數(shù)量個隨機事件隊列所需的時間,其中事件隊列中第一事件處理方法為插入仿真時間隨機的第二事件,所插入的仿真時間隨機的第二事件處理方法為空;

步驟s130:分別根據(jù)所選定的性能指標(biāo),準(zhǔn)備仿真事件隊列,設(shè)定事件的數(shù)量、事件的仿真時間和/或自身實體時間;

步驟s140:根據(jù)所選定的性能指標(biāo),啟動仿真并開始測試,直至處理完成或者計時完成。

可選的,當(dāng)使用同步事件調(diào)度性能作為指標(biāo)對仿真引擎進行測試時,

步驟s130和步驟s140具體為:

事件隊列中準(zhǔn)備好開始和結(jié)束兩個事件,仿真時間分別為0和t,t>0,開始事件的處理為向事件隊列中插入同一仿真時間t的n個事件,事件處理為空,0<t<t,結(jié)束事件的處理為結(jié)束仿真;

啟動仿真,仿真引擎調(diào)度開始事件,向隊列中插入事件,完成后開始計時,由仿真引擎調(diào)度事件隊列中的事件;

調(diào)度完所有事件,最后一個事件為結(jié)束事件,停止計時,計算調(diào)度性能。

可選的,當(dāng)使用隨機事件調(diào)度性能作為指標(biāo)對仿真引擎進行測試時,

步驟s130和步驟s140具體為:

事件隊列中準(zhǔn)備好開始和結(jié)束兩個事件,仿真時間分別為0和t,t>0,開始事件的處理為向事件隊列中插入仿真時間t隨機分布的n個事件,0<t<t,事件處理為空,結(jié)束事件的處理為結(jié)束仿真;

啟動仿真,仿真引擎調(diào)度開始事件,向隊列中插入隨機事件,完成后開始計時,由仿真引擎調(diào)度事件隊列中的事件;

調(diào)度完所有事件,最后一個事件為結(jié)束事件,停止計時,計算調(diào)度性能。

可選的,當(dāng)使用事件隊列管理性能作為指標(biāo)對仿真引擎進行測試時,

步驟s130和步驟s140具體為:

事件隊列中準(zhǔn)備好開始和結(jié)束兩個事件,仿真時間分別為0和t,t>0,開始事件的處理為向事件隊列中插入仿真時間t隨機分布的n個事件,t>t,事件處理為空,結(jié)束事件的處理為結(jié)束仿真;

啟動仿真開始計時,仿真引擎調(diào)度開始事件,向隊列中插入隨機事件,要求插入事件的時間按照時間順序從小到大排序;

然后調(diào)度結(jié)束事件,停止計時,計算插入的事件的數(shù)量,計算隊列管理性能。

可選的,當(dāng)時間推進效率性能作為指標(biāo)對仿真引擎進行測試時,

步驟s130和步驟s140具體為:

事件隊列中準(zhǔn)備好開始和結(jié)束兩個事件,仿真時間分別為0和t,t>0,開始事件的處理為向事件隊列中插入仿真時間t隨機分布的n個第一事件,0<t<t,結(jié)束事件的處理為結(jié)束仿真;

第一事件的處理為向事件隊列中插入1個第二事件,t第一事件<t第二事件<t,第二事件的處理為空;

啟動仿真開始計時,執(zhí)行開始,第一事件向事件隊列中插入第二事件并開始調(diào)度;

然后調(diào)度結(jié)束事件,完成后停止計時,計算調(diào)度所有事件的數(shù)量,計算時間推進效率。

可選的,該方法還包括步驟s150:根據(jù)仿真測試的結(jié)果對仿真引擎進行優(yōu)化。

可選的,在步驟s130中,在進行測試準(zhǔn)備多個事件時,使得事件數(shù)量保證每次處理所需時間在具有軟件測試通常公認(rèn)的足夠時間以上;

并且,為保證計時的有效性,根據(jù)實際情況可調(diào)整事件數(shù)量,對于步驟130和步驟140,可以多次測試取平均值。

可選的,對于某個測試指標(biāo),步驟s130和步驟s140執(zhí)行多遍,以獲取平均結(jié)果。

可選的,測試中應(yīng)該有多個仿真實體,用于產(chǎn)生和處理事件,實體數(shù)量應(yīng)保證潛在的并行化需求。

一種存儲介質(zhì),用于存儲計算機可執(zhí)行指令,

其中所述計算機可執(zhí)行指令在被處理器執(zhí)行時執(zhí)行權(quán)利要求1-8中的任意一項所述的方法。

本發(fā)明不僅提供了針對引擎自身的基礎(chǔ)性能評價指標(biāo),還具有如下優(yōu)點:

1、可以在并行與串行之間兼容和切換;

2、參與性能測試的模型邏輯復(fù)雜度極低(幾乎為零),排除仿真模型性能對于引擎性能測試的影響;

3、測試指標(biāo)主要針對仿真引擎重要衡量性能即事件調(diào)度的時間協(xié)調(diào),能代表引擎的基礎(chǔ)性能,具備客觀性;

4、指標(biāo)的測試方法可在不同仿真引擎上實現(xiàn),具備可實施性。

附圖說明

圖1是根據(jù)本發(fā)明具體實施例的仿真引擎的性能測試方法的流程圖;

圖2是根據(jù)本發(fā)明對于同步事件調(diào)度效率進行測試的具體步驟;

圖3是根據(jù)本發(fā)明對于隨機事件調(diào)度效率進行測試的具體步驟;

圖4是根據(jù)本發(fā)明對于事件隊列管理效率進行測試的具體步驟;

圖5是根據(jù)本發(fā)明對于時間推進效率進行測試的具體步驟;

圖6是根據(jù)本發(fā)明具體實施例的時間推進效率測試結(jié)果;

圖7是根據(jù)本發(fā)明具體實施例的時間推進效率的另一個測試結(jié)果。

具體實施方式

下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。

這些過程、流程、邏輯塊、功能等,一般被認(rèn)為是達到理想或者預(yù)期的結(jié)果的步驟或指示的自洽序列。步驟一般包括物理量的物理操縱。通常情況下,盡管不一定是,這些數(shù)量常采取電、磁、光學(xué)或量子信號等形式,它們能夠被儲存,轉(zhuǎn)讓,合并,比較,并以其他方式被計算機或數(shù)據(jù)處理系統(tǒng)所控制。事實證明,有時候為了方便起見,鑒于共享的原因,把這些信號稱作為位、波、波形、流、值、元素、符號、字母、術(shù)語、數(shù)字等類似的名稱,在計算機程序或軟件中稱之為代碼(可能是目標(biāo)代碼,源代碼或二進制代碼)。

在本發(fā)明中,對于術(shù)語定義如下:

事件:或仿真事件,是指仿真中需要處理或完成的一些功能,事件具有與之對應(yīng)的仿真時間,兩個不同仿真時間的事件的處理對應(yīng)著仿真時間的推進,考慮到仿真的因果律要求,事件必須按時間的先后順序進行處理,即調(diào)度。

事件隊列:對事件的管理方式,通常將多個事件按照仿真時間先后順序在隊列中進行管理,新產(chǎn)生的事件按照仿真時間插入到隊列中,仿真引擎按照時間大小順序調(diào)度(執(zhí)行)事件所對應(yīng)的功能,同時對應(yīng)著仿真時間的推進。

仿真時間:或邏輯時間,在仿真中使用的一種時間描述方式,僅具有數(shù)值意義,一般從0開始遞增,可通過數(shù)值大小比較先后順序。

物理時間:或自然時間、墻鐘時間,是指通常自然連續(xù)流逝的時間,是本方法所述性能的主要體現(xiàn),在后續(xù)文字中,常用時間代指物理時間。

被仿真對象:即仿真實體,在實際的仿真中一般是事件主要的產(chǎn)生者和處理者。

為了克服上述問題,本發(fā)明設(shè)計了以同步事件調(diào)度效率、隨機事件調(diào)度效率、事件隊列管理效率、時間推進效率為指標(biāo)的測量步驟及方法,其針對以性能的核心要素——事件為主而設(shè)計的各項指標(biāo),可以充分體現(xiàn)引擎的基礎(chǔ)能力,以及在并行化計算方式上效率的高低。

本發(fā)明根據(jù)并行離散時間仿真引擎設(shè)立了四個主要指標(biāo),圍著事件為中心,考慮調(diào)度、管理和時間推進,所述的調(diào)度是指引擎按照事件的仿真時間順序調(diào)用事件處理方法,根據(jù)事件的仿真時間的不同又可分為同步事件調(diào)度和隨機事件調(diào)度。

同步事件調(diào)度是指事件的仿真時間相同,因此引擎在調(diào)用時無需推進仿真時間,也不存在仿真時間協(xié)調(diào),該指標(biāo)單純反映了引擎的調(diào)用效率;隨機事件調(diào)度是指事件的仿真時間隨機分布,因此引擎在調(diào)用時需要推進仿真時間,當(dāng)并行化時需要在多個并行之間協(xié)調(diào)仿真時間,該指標(biāo)反映了引擎的事件調(diào)用和時間協(xié)調(diào)的效率。

其中同步事件調(diào)度性能指的是對于特定數(shù)量個仿真時間相同的事件,仿真引擎完成調(diào)度的時間,可以定義:單位時間調(diào)度的仿真時間相同事件的數(shù)量,單位為(個/秒)。

隨機事件調(diào)度性能是指對于特定數(shù)量個仿真時間隨機分布的事件,仿真引擎完成調(diào)度的時間,可以定義:單位時間調(diào)度的時間隨機分布事件的數(shù)量,單位為(個/秒)。

所述的管理是指向事件隊列中插入事件的效率,由于插入的事件需要按照仿真時間進行排序,并且插入事件是仿真中高頻發(fā)生的行為,因此也是性能的重要影響因素,體現(xiàn)了事件隊列的數(shù)據(jù)結(jié)構(gòu)設(shè)計和管理方法。

其中事件隊列管理性能指的是:向已有特定數(shù)量個隨機事件的隊列中插入n個(n>=1)事件所需的時間,可以定義為:單位時間向事件隊列中插入仿真時間隨機分布的事件數(shù)量,單位為(個/秒)。

所述的仿真時間推進是指隨著調(diào)度事件的仿真時間變化,代表的仿真時間遞增情況,是綜合事件調(diào)度、管理的綜合性指標(biāo)。該指標(biāo)可以使用仿真時間推進效率進行衡量。

其中,時間推進效率指的是:對于已有特定數(shù)量個隨機事件,且運行過程中插入n個(n>=1)事件,引擎處理完所有事件所需的時間,可以定義為:向調(diào)度指定數(shù)量個隨機事件(事件1)隊列所需的時間,其中事件隊列(事件1)處理方法為插入仿真時間隨機的事件(事件2),事件2處理方法為空,單位為(個/秒)。

參見圖1,示出了根據(jù)本發(fā)明具體實施例的仿真引擎的性能測試方法,包括如下步驟:

步驟s110:建立并生成仿真模型,并使用管理應(yīng)用所需的信息配置所述仿真模型;

步驟s120:使用同步事件調(diào)度性能、隨機事件調(diào)度性能、事件隊列管理性能、和時間推進效率中的一個或多個作為指標(biāo)對仿真引擎進行測試,

所述同步時間調(diào)度性能指的是對于特定數(shù)量個仿真時間相同的事件,仿真引擎完成調(diào)度的時間,可以定義:單位時間調(diào)度的仿真時間相同的事件的數(shù)量,

所述隨機事件調(diào)度性能是指對于特定數(shù)量個仿真時間隨機分布的事件,仿真引擎完成調(diào)度的時間,可以定義:單位時間調(diào)度的仿真時間隨機分布的事件的數(shù)量,

所述事件隊列管理性能指的是:向已有特定數(shù)量個隨機事件的隊列中插入n個(n>=1)事件所需的時間,可以定義為:單位時間向事件隊列中插入仿真時間隨機分布的事件的數(shù)量,

所述時間推進效率指的是:對于已有特定數(shù)量個隨機事件,且運行過程中插入n個(n>=1)事件,引擎處理完所有事件所需的時間,可以定義為:調(diào)度指定數(shù)量個隨機事件(事件1)隊列所需的時間,其中事件隊列(事件1)處理方法為插入仿真時間隨機的事件(事件2),事件2處理方法為空,定義為空是為了避免采用事件1時會繼續(xù)產(chǎn)生新的事件,從而使總調(diào)度事件數(shù)量具有不確定性的情況,單位為(個/秒)。

步驟s130:分別根據(jù)所選定的性能指標(biāo),準(zhǔn)備仿真推演事件隊列,設(shè)定事件的數(shù)量、事件的仿真推進時間和自身實體時間。

步驟s140:根據(jù)所選定的性能指標(biāo),啟動仿真并開始測試,直至處理完成或者計時完成;

因此,在本發(fā)明中,在步驟s120中選定指標(biāo),分別循環(huán)運行步驟s130和步驟s140,對多個性能指標(biāo)進行測試,從而以事件為中心,客觀的衡量仿真模型的性能。

進一步的,還可以包括步驟s150:根據(jù)仿真測試的結(jié)果對仿真引擎進行優(yōu)化。

因此,能夠利用該測試方法的結(jié)果根據(jù)所需要的指標(biāo),對仿真引擎進行優(yōu)化。

進一步的,針對每個性能指標(biāo)仿真事件隊列的準(zhǔn)備,以及仿真測試的步驟可以有不同的具體步驟,每個指標(biāo)的解釋以及具體的實現(xiàn)步驟如下。

1.同步事件調(diào)度性能測試方法

同步事件調(diào)度性能:對于特定數(shù)量個仿真時間相同的事件,仿真引擎完成調(diào)度的時間。

針對典型的仿真場景,考慮n個被仿真對象,設(shè)計在0時刻初始化事件,針對本測試指標(biāo),仿真實體不再提交事件,初始化事件一次性提交n個同步事件,然后考察完成引擎調(diào)度所有事件的時間。

n>1,考慮在并行化的情況下,可能按照被仿真對象劃分并行任務(wù),因此1個以上的被仿真對象具有針對并行和串行執(zhí)行仿真引擎測量的通用性。

注意事項:實體執(zhí)行的仿真事件處理邏輯復(fù)雜度均為零。

參見圖2,示出了對于同步事件調(diào)度效率進行測試的具體步驟,即對應(yīng)步驟s130和s140:

事件隊列中準(zhǔn)備好開始和結(jié)束兩個事件,仿真時間分別為0和t,t>0,開始事件的處理為向事件隊列中插入同一仿真時間t的n個事件,事件處理為空,0<t<t,結(jié)束事件的處理為結(jié)束仿真;

啟動仿真,仿真引擎調(diào)度開始事件,向隊列中插入事件,完成后開始計時,由仿真引擎調(diào)度事件隊列中的事件;

調(diào)度完所有事件,最后一個事件為結(jié)束事件,停止計時,計算調(diào)度性能。為保證計時的有效性,根據(jù)實際情況可調(diào)整事件數(shù)量n;在實施時可多次測試獲取平均值;下同。

注意事項:由于可能的并行化手段,實體數(shù)量等因素要滿足并行化的前提條件。

2.隨機事件調(diào)度性能測試方法

隨機事件調(diào)度性能:對于特定數(shù)量個仿真時間隨機分布的事件,仿真引擎完成調(diào)度的時間。

針對典型的仿真場景,考慮n個被仿真對象,設(shè)計安排0時刻初始化事件,針對本測試指標(biāo),仿真實體不再提交事件,初始化事件一次性提交針對n個仿真實體的n個隨機事件,考察仿真引擎完成所有事件調(diào)度的時間。

注意事項:實體執(zhí)行的仿真事件處理邏輯復(fù)雜度均為零。

參見圖3,示出了對于隨機事件調(diào)度效率進行測試的具體步驟,即對應(yīng)步驟s130和s140:

事件隊列中準(zhǔn)備好開始和結(jié)束兩個事件,仿真時間分別為0和t,t>0,開始事件的處理為向事件隊列中插入仿真時間t隨機分布的n個事件,0<t<t,事件處理為空,結(jié)束事件的處理為結(jié)束仿真;

啟動仿真,仿真引擎調(diào)度開始事件,向隊列中插入隨機事件,完成后開始計時,由仿真引擎調(diào)度事件隊列中的事件;

調(diào)度完所有事件,最后一個事件為結(jié)束事件,停止計時,計算調(diào)度性能。

注意事項:由于隨機事件時間的差異性,仿真引擎必須保證從小到大按照時間順序調(diào)度事件;由于可能的并行化手段,實體數(shù)量等因素要滿足并行化的前提條件;相對于同步事件調(diào)度,隨機事件調(diào)度會更慢。

3.事件隊列管理性能測試方法

事件隊列管理性能:指向已有特定數(shù)量個隨機事件的隊列中插入n個(n>=1)事件所需的時間。

針對典型仿真場景,考慮n個被仿真對象,設(shè)計安排0時刻初始化事件,t時刻結(jié)束事件,初始化事件向事件隊列中插入仿真時間t(t>t,且隨機分布)的n個事件(事件處理為空),考察仿真引擎執(zhí)行初始化事件(即插入隨機事件)的性能(插入n個事件與執(zhí)行時間的關(guān)系)。

參見圖4,示出了對于事件隊列管理效率進行測試的具體步驟,即對應(yīng)步驟s130和s140:

事件隊列中準(zhǔn)備好開始和結(jié)束兩個事件,仿真時間分別為0和t,t>0,開始事件的處理為向事件隊列中插入仿真時間t隨機分布的n個事件,t>t,事件處理為空,結(jié)束事件的處理為結(jié)束仿真;

啟動仿真開始計時,仿真引擎調(diào)度開始事件,向隊列中插入隨機事件,要求插入事件的時間按照時間順序從小到大排序;

然后調(diào)度結(jié)束事件,由于所插入的事件,其時間都大于結(jié)束事件的時間,因此不被調(diào)度,停止計時,計算插入的事件的數(shù)量,計算隊列管理性能。

4時間推進效率性能測試方法

時間推進效率指對于已有特定數(shù)量個隨機事件,且運行過程中插入n個(n>=1)事件,引擎處理完所有事件所需的時間。時間推進效率是仿真引擎的核心指標(biāo)之一,直接反映仿真運行速度。

針對典型的仿真場景,考慮n個被仿真對象,設(shè)計安排0時刻初始化事件和t時刻的結(jié)束事件,初始化事件用于給被仿真對象產(chǎn)生一定數(shù)量的隨機事件(事件1,滿足0<t事件1<t),該隨機事件(事件1)的執(zhí)行會產(chǎn)生新的事件(事件2,滿足t事件1<t事件2<t),事件2的處理為空。

注意事項:實體執(zhí)行的仿真事件處理邏輯復(fù)雜度為零;

參見圖5,示出了對于時間推進效率進行測試的具體步驟,即對應(yīng)步驟s130和s140:

事件隊列中準(zhǔn)備好開始和結(jié)束兩個事件,仿真時間分別為0和t,t>0,開始事件的處理為向事件隊列中插入仿真時間t隨機分布的n個第一事件,0<t<t,結(jié)束事件的處理為結(jié)束仿真;

第一事件的處理為向事件隊列中插入1個第二事件,t第一事件<t第二事件<t,第二事件的處理為空;

啟動仿真開始計時,執(zhí)行開始,第一事件向事件隊列中插入第二事件并開始調(diào)度;

然后調(diào)度結(jié)束事件,完成后停止計時,計算調(diào)度所有事件的數(shù)量,計算時間推進效率。

因此,本發(fā)明所涉及的測量指標(biāo)以及測量方法屏蔽了模型算法復(fù)雜度的影響,能夠充分體現(xiàn)并行化對于仿真引擎效率的影響,為客觀評價并行離散事件仿真引擎性能,對比不同實現(xiàn)方法的效果提供了量化依據(jù)。

以時間推進效率指標(biāo)為例,下面為具體實施過程。

1.測試內(nèi)容:時間推進效率(時間推進效率是仿真引擎的核心指標(biāo)之一,直接影響仿真運行速度。在事件隊列已經(jīng)安排好的情況下,時間推進等同于事件調(diào)度效率??紤]到產(chǎn)生事件的行為,時間推進效率將等于兩者的綜合。

2.在測試過程中可能發(fā)生的變化參數(shù):1)執(zhí)行事件總數(shù);2)被仿真對象個數(shù);3)所影響的被仿真對象個數(shù);4)事件產(chǎn)生的時間;5)參與運行的線程數(shù)量;

3.被仿真對象執(zhí)行的仿真事件均為空事件;

4.測試機器配置:處理器:inter(r)xeon(r)cpue5-2620v2@2.10ghz2.10ghz(2處理器,24核);內(nèi)存:32.0gb;操作系統(tǒng):windows2008r264位;硬盤:固態(tài)硬盤500gb

參見圖6,和圖7分別是涉及時間推進效率的測試結(jié)果的示意圖。

目前傳統(tǒng)的引擎測試模型對于并行離散事件仿真引擎的性能定量指標(biāo)分析及測量方法還存在很大不足,尤其是針對引擎自身的基礎(chǔ)性能指標(biāo)方面,缺乏客觀科學(xué)的標(biāo)準(zhǔn)與方法。

本發(fā)明提出的四個測試指標(biāo)不但解決了以上問題,且相對于傳統(tǒng)的測試方法具備以下優(yōu)勢:

1、可以在并行與串行之間兼容和切換;

2、參與性能測試的模型邏輯復(fù)雜度極低(幾乎為零),排除仿真模型性能對于引擎性能測試的影響;

3、測試指標(biāo)主要針對仿真引擎重要衡量性能即事件調(diào)度的時間協(xié)調(diào),能代表引擎的基礎(chǔ)性能,具備客觀性;

4、指標(biāo)的測試方法可在不同仿真引擎上實現(xiàn),具備可實施性。

本發(fā)明進一步公開了一種存儲介質(zhì),用于存儲計算機可執(zhí)行指令,

所述計算機可執(zhí)行指令在被處理器執(zhí)行時執(zhí)行上述的方法。

如本領(lǐng)域技術(shù)人員將意識到的,本發(fā)明的各個方面可以被實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的各個方面可以采取如下形式:完全硬件實施方式、完全軟件實施方式(包括固件、常駐軟件、微代碼等)或者在本文中通常可以都稱為“電路”、“模塊”或“系統(tǒng)”的將軟件方面與硬件方面相結(jié)合的實施方式。此外,本發(fā)明的方面可以采取如下形式:在一個或多個計算機可讀介質(zhì)中實現(xiàn)的計算機程序產(chǎn)品,計算機可讀介質(zhì)具有在其上實現(xiàn)的計算機可讀程序代碼。

可以利用一個或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)可以是如(但不限于)電子的、磁的、光學(xué)的、電磁的、紅外的或半導(dǎo)體系統(tǒng)、設(shè)備或裝置,或者前述的任意適當(dāng)?shù)慕M合。計算機可讀存儲介質(zhì)的更具體的示例(非窮盡列舉)將包括以下各項:具有一根或多根電線的電氣連接、便攜式計算機軟盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦除可編程只讀存儲器(eprom或閃速存儲器)、光纖、便攜式光盤只讀存儲器(cd-rom)、光存儲裝置、磁存儲裝置或前述的任意適當(dāng)?shù)慕M合。在本文件的上下文中,計算機可讀存儲介質(zhì)可以為能夠包含或存儲由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用的程序或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用的程序的任意有形介質(zhì)。

計算機可讀信號介質(zhì)可以包括傳播的數(shù)據(jù)信號,所述傳播的數(shù)據(jù)信號具有在其中如在基帶中或作為載波的一部分實現(xiàn)的計算機可讀程序代碼。這樣的傳播的信號可以采用多種形式中的任何形式,包括但不限于:電磁的、光學(xué)的或其任何適當(dāng)?shù)慕M合。計算機可讀信號介質(zhì)可以是以下任意計算機可讀介質(zhì):不是計算機可讀存儲介質(zhì),并且可以對由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用的或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用的程序進行通信、傳播或傳輸。

可以使用包括但不限于無線、有線、光纖電纜、rf等或前述的任意適當(dāng)組合的任意合適的介質(zhì)來傳送實現(xiàn)在計算機可讀介質(zhì)上的程序代碼。

用于執(zhí)行針對本發(fā)明各方面的操作的計算機程序代碼可以以一種或多種編程語言的任意組合來編寫,所述編程語言包括:面向?qū)ο蟮木幊陶Z言如java、smalltalk、c++等;以及常規(guī)過程編程語言如“c”編程語言或類似的編程語言。程序代碼可以作為獨立軟件包完全地在用戶計算機上、部分地在用戶計算機上執(zhí)行;部分地在用戶計算機上且部分地在遠程計算機上執(zhí)行;或者完全地在遠程計算機或服務(wù)器上執(zhí)行。在后一種情況下,可以將遠程計算機通過包括局域網(wǎng)(lan)或廣域網(wǎng)(wan)的任意類型的網(wǎng)絡(luò)連接至用戶計算機,或者可以與外部計算機進行連接(例如通過使用因特網(wǎng)服務(wù)供應(yīng)商的因特網(wǎng))。

還可以將這些計算機程序指令存儲在可以指導(dǎo)計算機、其它可編程數(shù)據(jù)處理設(shè)備或其它裝置以特定方式運行的計算機可讀介質(zhì)中,使得在計算機可讀介質(zhì)中存儲的指令產(chǎn)生包括實現(xiàn)在流程圖和/或框圖塊或塊中指定的功能/動作的指令的制品。

計算機程序指令還可以被加載至計算機、其它可編程數(shù)據(jù)處理設(shè)備或其它裝置上,以使在計算機、其它可編程設(shè)備或其它裝置上執(zhí)行一系列可操作步驟來產(chǎn)生計算機實現(xiàn)的過程,使得在計算機或其它可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖和/或框圖塊或塊中指定的功能/動作的過程。

以上所述僅為本發(fā)明的優(yōu)選實施例,并不用于限制本發(fā)明,對于本領(lǐng)域技術(shù)人員而言,本發(fā)明可以有各種改動和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
米易县| 巴青县| 宁国市| 长白| 炉霍县| 上蔡县| 本溪市| 永昌县| 四会市| 丰都县| 丹巴县| 夏邑县| 驻马店市| 二连浩特市| 永登县| 普定县| 平度市| 东乌珠穆沁旗| 遵义县| 乐清市| 安泽县| 内江市| 曲阜市| 和政县| 衢州市| 广南县| 富锦市| 渑池县| 宁陕县| 炉霍县| 绥宁县| 沾化县| 明水县| 黄平县| 合山市| 商都县| 左云县| 利川市| 浠水县| 贵阳市| 丹棱县|