在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 網(wǎng)格中比較CPU計算能力的一種方法

            網(wǎng)格中比較CPU計算能力的一種方法

            作者: 時間:2012-04-20 來源:網(wǎng)絡(luò) 收藏

            引 言

            本文引用地址:http://www.biyoush.com/article/171585.htm

            中,常常需要使用多臺機協(xié)同工作完成一臺超級機才能完成的計算任務,為實現(xiàn)上述目標,首先應通過信息服務獲得中各臺主機計算的指標,然后進行判斷選擇,決定由哪些主機參與計算。

            當前,已有的網(wǎng)格信息服務模塊、網(wǎng)格監(jiān)控模塊,如MDS2將系統(tǒng)平均負載作為反映狀態(tài)的動態(tài)指標提供給用戶;另外,通過系統(tǒng)命令或系統(tǒng)調(diào)用也可以獲得 使用率這個動態(tài)指標。系統(tǒng)平均負載是在特定時間間隔內(nèi)運行隊列中的平均進程數(shù),CPU使用率表示CPU使用程度的指標,能夠反映出CPU的工作狀態(tài),但由于網(wǎng)格中CPU型號性能的差異,因此,無法用它們直接網(wǎng)格中CPU的計算

            為直接網(wǎng)格中主機 CPU的計算,獲得具有可比性的反映CPU計算能力的指標,我們采用計算量動態(tài)選擇算法,在各臺主機上周期性地瞬間執(zhí)行計算量適中的Whestone 基準計算,通過PAPI接口編程對CPU所完成的浮點數(shù)計算進行精確計數(shù),用得到的每秒百萬浮點數(shù)MFLOPS作為主機CPU計算能力的指標,定義為 WMFLOPS。得到WMFLOPS后,通過Globus提供的監(jiān)控和發(fā)現(xiàn)服務(Monitoring and Discovery Service,MDS),將該指標作為資源信息進行發(fā)布,作為比較網(wǎng)格節(jié)點CPU計算能力的依據(jù),為用戶選擇計算節(jié)點提供參考。我們編寫了程序 WfpSensor用于上述的實現(xiàn)。WfpSensor作為傳感器工作于網(wǎng)格中的各個節(jié)點,周期性地對CPU進行計算測試,獲得WMFLOPS的返回值,同時,WfpSensor也是MDS服務中的本地信息提供者,定時將最新的WMFLOPS值傳遞給MDS系統(tǒng),供用戶查閱。

            計算測試子程序

            CPU 的計算能力主要體現(xiàn)在浮點數(shù)計算能力、定點數(shù)計算能力和矩陣計算能力等方面,其中某一類程序在CPU上運行的效果并不能全面地反映CPU的計算能力,所以許多國際基準組織開發(fā)了測試CPU計算能力的基準測試程序,在這類程序中進行的操作和運算可以相對全面客觀地考察CPU的計算能力。本文采用綜合型基準測試程序Whestone作為WfpSensor的計算測試子程序,Whestone程序中主要包括浮點運算、整數(shù)運算、涉及到數(shù)組下標索引、子程序調(diào)用、參數(shù)傳遞、條件轉(zhuǎn)移和三角/超越函數(shù)等,可以綜合考察CPU提供的計算能力。

            返回指標WM FLOPS

            WfpSensor 進程對CPU進行計算測試后,取出CPU在測試過程中的指標來反映CPU的計算能力。絕大多數(shù)網(wǎng)格計算都是科學計算,而浮點計算是科學計算程序中最主要的計算,所以選用每秒百萬浮點數(shù)MFLOPS作為反映CPU計算能力的指標。MFLOPS反映了CPU的浮點計算能力,并且MFLOPS是基于操作而非指令的,可以用它來比較兩種不同CPU的計算能力。由于是調(diào)用Whestone程序進行測試所得的結(jié)果,因此定義該指標為WMFLOPS。

            指標精確計數(shù)

            指標確定后,如何在WfpSensor中精確得到Whestone計算結(jié)束后的WMFLOPS值成為問題的關(guān)鍵。由美國田納西大學計算機學院創(chuàng)新計算實驗室開發(fā)的標準應用編程接口PAPI( portable application programming interface)能夠滿足上述要求。該軟件通過CPU上的硬件計數(shù)器,對CPU運行時產(chǎn)生的某些事件進行計數(shù),并建立了一個標準應用編程接口方便用戶讀出計數(shù)器的值,通過這些值就可以了解當前CPU的工作狀態(tài)。由于CPU生產(chǎn)廠商及型號的不同,CPU硬件計數(shù)器所計數(shù)的硬件事件會有所不同,為標準化指標的名稱,使同一工具可以計數(shù)相似的可比較事件,促進跨平臺調(diào)試程序的能力,PAPI開發(fā)者選擇了一套和調(diào)試應用程序相關(guān)的硬件事件稱為預定義事件,作為反映CPU當前工作狀態(tài)的指標。這些指標是跨平臺的通用事件,包括了大部分主流RISC類事件,并且盡可能把這些預定義事件映射到給定CPU的硬件計數(shù)器事件中。在本文中,使用了PAPI_FP_INS這個PAPI預定義事件,它表示進程執(zhí)行過程中完成的浮點數(shù)計算。PAPI提供了精確的計時器,精確到微秒,能夠準確地對進程的執(zhí)行時間進行計時,如果經(jīng)計數(shù),PAPI_FP_INS事件總數(shù)為n,計算執(zhí)行時間為t(單位:μs) ,那么WMFLOPS=n/t。

            計算量動態(tài)選擇

            采用計算測試CPU的計算能力,必須保證以下兩點:

            (1) 測試進程應盡可能不影響CPU的正常工作,當然由于測試進程的引入必將影響到CPU正常運行,應設(shè)法讓這種影響降到一個可以接受的程度,并且使計算給系統(tǒng)帶來的開銷盡可能小。

            (2) 測試進程要有一定的計算量,如果計算量過小,會使初始化、函數(shù)調(diào)用等操作消耗的時間在進程的執(zhí)行時間t中占有較大的比重,從而使WMFLOPS的值比真實值小,影響測試結(jié)果的精確性。

            為同時保證(1)需要較小的計算量和(2)需要較大的計算量,選擇合適的測試計算量十分重要,為此,提出采用計算量動態(tài)選擇的算法確定計算量。

            計算量的大小控制可以通過改變WfpSensor中調(diào)用Whestone程序的次數(shù)(NUM_LOOPS)實現(xiàn)。假定使計算執(zhí)行時間t(單位:s)在 0.5~1.5的計算量是合理值,計算量調(diào)節(jié)系數(shù)為xs。WfpSensor啟動時,NUM_LOOPS賦初值。調(diào)用Whestone計算結(jié)束后,如果:

            (1) 0.5≤t≤1.5,在合理區(qū)間內(nèi),NUM_LOOPS的值保持不變。

            (2) t>1.5,計算量偏大,下次測試應減小Whestone的調(diào)用次數(shù),則NUM_LOOPS=NUM_LOOPS/xs。xs為t四舍五入后的整數(shù)值。

            (3) t0.5,計算量偏小,下次測試應增加Whestone的調(diào)用次數(shù),則NUM_LOOPS=NUM_LOOPS3xs。xs為(1/t)四舍五入后的整數(shù)值。

            具體算法如下:

            start_usec=PAPI_get_real_usec();//通過PAPI函數(shù)獲得計算開始時的時刻

            do_wst(NUM_LOOPS);//Whestone寫成函數(shù),對它進行調(diào)用,NUM_LOOPS是調(diào)用次數(shù)

            end_usec=PAPI_get_real_usec();//通過PAPI函數(shù)獲得計算結(jié)束時的時刻

            t=(end_usec-start_usec);//獲得計算執(zhí)行的時間

            if(t>1.5)//根據(jù)本次計算執(zhí)行時間決定下次測試的調(diào)用次數(shù)

            {

            if((t-floor(t))>0.5)//取最靠近t的整數(shù)

            xs=floor(t)+1;

            else

            xs=floor(t)

            NUM_LOOPS=NUM_LOOPS/xs;//修改調(diào)用次數(shù)

            }

            else

            if(t0.5)

            {

            if((1/t-floor(1/t))>0.5)//取最靠近1/t的整數(shù)

            xs=floor(1/t)+1;

            else

            xs=floor(1/t);

            NUM_LOOPS =NUM_LOOPS3xs;//修改調(diào)用次數(shù)

            }


            上一頁 1 2 3 下一頁

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉