• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Microsoft HPC 的Magic 迭代計(jì)算軟件的并行化

      2020-08-31 01:39:54侯佳正張紹陽陳博遠(yuǎn)
      應(yīng)用科技 2020年3期
      關(guān)鍵詞:計(jì)算資源內(nèi)核進(jìn)程

      侯佳正,張紹陽,陳博遠(yuǎn)

      長安大學(xué) 信息工程學(xué)院,陜西 西安 710064

      Magic 作為一款著名的電磁模擬商業(yè)軟件,可以通過饋入?yún)?shù)[1]仿真計(jì)算輸出功率。為了確定最優(yōu)參數(shù),開發(fā)了Magic 迭代計(jì)算軟件進(jìn)行參數(shù)的優(yōu)化,但該軟件是一個單機(jī)版本的軟件系統(tǒng),由于解決相關(guān)領(lǐng)域問題所需的計(jì)算量大,使用該軟件完成每次迭代計(jì)算存在耗時長的問題。為了解決單機(jī)軟件耗時長的問題,目前常用的方法大約有以下幾種:張朝金等[2]對Bellhop 傳播模型算法進(jìn)行改進(jìn),利用多線程技術(shù),建立了穩(wěn)定可靠的并行模型算法,實(shí)現(xiàn)了聲場的快速預(yù)報(bào),提高了運(yùn)行效率。劉俊見等[3]采用OpenMP[4]并行化技術(shù),將可并行化的任務(wù)顯式的使用多線程的方法進(jìn)行并行計(jì)算,顯著提高了側(cè)向散射激光雷達(dá)數(shù)據(jù)處理的效率。但是由于該Magic 迭代計(jì)算軟件的任務(wù)要開啟多個Magic 進(jìn)程使其進(jìn)行計(jì)算,且Magic 軟件作為成熟的商業(yè)軟件無法對其自身進(jìn)行改造,故無法采用上述方法在線程級別進(jìn)行改造。

      隨著大數(shù)據(jù)的興起和發(fā)展,分布式計(jì)算技術(shù)實(shí)現(xiàn)了跨越式發(fā)展并被廣泛應(yīng)用??梢允褂肕apReduce[5?7], Spark[8?9]、Storm[10]并行計(jì)算框架對特定領(lǐng)域的問題進(jìn)行并行處理[11]。焦凱琳等[10]使用Hadoop 的HDFS 文件系統(tǒng)和分布式數(shù)據(jù)庫HBase 對海量的物流數(shù)據(jù)進(jìn)行分布式存儲和管理,使用MapReduce 和Storm 并行計(jì)算框架實(shí)現(xiàn)批數(shù)據(jù)處理的分析研判業(yè)務(wù)以及一些與數(shù)據(jù)實(shí)時處理相關(guān)的查詢跟蹤業(yè)務(wù)。李業(yè)田[12]使用分布式文件系統(tǒng)HDFS 實(shí)現(xiàn)海量數(shù)據(jù)的存儲,采用并行處理框架MapReduce 對海量的電信數(shù)據(jù)進(jìn)行并行處理。但是采用這種方法需要大量的軟硬件的支持,要針對具體業(yè)務(wù)搭建大數(shù)據(jù)平臺,成本較高;同時這種方法主要是對大批量的數(shù)據(jù)進(jìn)行處理,更多的適用于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí),并不能很好地實(shí)現(xiàn)特定軟件的并行化。

      本文提出了一種基于Microsoft HPC 并行計(jì)算框架的解決方案,可以利用現(xiàn)有的硬件環(huán)境,基于Windows 操作系統(tǒng)搭建一個并行計(jì)算平臺,實(shí)現(xiàn)多個Magic 程序在多臺計(jì)算機(jī)上并行計(jì)算,解決耗時長的問題。

      1 Magic 計(jì)算需求分析

      Magic 軟件是一款著名的電磁模擬軟件,可以通過饋入?yún)?shù)仿真計(jì)算輸出功率。為了確定最優(yōu)的參數(shù),實(shí)際工作中采用Magic 迭代計(jì)算軟件迭代計(jì)算進(jìn)行參數(shù)確定,具體流程如圖1 所示。

      圖1 Magic 迭代計(jì)算軟件流程

      該程序?yàn)橐粋€單機(jī)運(yùn)行程序,該程序依據(jù)用戶在用戶界面上設(shè)置的一系列參數(shù)生成指定數(shù)量的參數(shù)文件,然后啟動相同數(shù)量的Magic 進(jìn)程進(jìn)行計(jì)算。計(jì)算完成后,根據(jù)計(jì)算結(jié)果,通過遺傳算法對參數(shù)進(jìn)行優(yōu)化,生成下一代的參數(shù)文件,再進(jìn)行計(jì)算。通過迭代幾十代或上百代,直至優(yōu)化出最優(yōu)的參數(shù)。

      該Magic 迭代計(jì)算軟件迭代一次大約需要花費(fèi)50 min,迭代出最優(yōu)的參數(shù)大約需要花費(fèi)4~5 d的時間。

      經(jīng)研究發(fā)現(xiàn)制約運(yùn)行速度的是多個Magic 進(jìn)程在單臺計(jì)算機(jī)上進(jìn)行計(jì)算這一步驟,由于每代求解的是多個具有獨(dú)立的幾何邊界條件的相似模型,是一個易并行問題,故提出將Magic 軟件放在多臺計(jì)算機(jī)上進(jìn)行并行計(jì)算的構(gòu)想。通過技術(shù)論證,最終提出了采用Microsoft HPC 將Magic 迭代計(jì)算軟件進(jìn)行并行化的技術(shù)架構(gòu)。

      2 總體設(shè)計(jì)

      2.1 集群的架構(gòu)圖

      集群的架構(gòu)如圖2 所示。采用Microsoft 的HPC 平 臺,通 過 使 用Microsoft HPC Pack 把 處 于一個局域網(wǎng)內(nèi)的多臺計(jì)算機(jī)搭建成一個計(jì)算機(jī)集群:集群中頭節(jié)點(diǎn)裝有Windows server 操作系統(tǒng),主要對計(jì)算節(jié)點(diǎn)進(jìn)行監(jiān)控和Magic 進(jìn)程的分配和管理;計(jì)算節(jié)點(diǎn)利用Windows 操作系統(tǒng)(如Window 7)對頭節(jié)點(diǎn)分配的計(jì)算任務(wù)進(jìn)行計(jì)算,在每個計(jì)算節(jié)點(diǎn)上設(shè)置共享文件夾,可以將Magic運(yùn)行結(jié)果存儲到某一指定的共享文件夾中。

      圖2 集群的架構(gòu)

      2.2 系統(tǒng)工作流程

      改進(jìn)的Magic 迭代計(jì)算軟件首先連接到集群的頭結(jié)點(diǎn),然后指明任務(wù)(即Magic 程序)的絕對路徑、輸入文件的絕對路徑、結(jié)果輸出路徑、程序要占用的CPU 內(nèi)核數(shù)等信息,生成一代所需的任務(wù)數(shù),組成一個作業(yè)。將作業(yè)提交到頭結(jié)點(diǎn),頭結(jié)點(diǎn)按照分配策略在可用的計(jì)算節(jié)點(diǎn)啟動一定數(shù)量的Magic 進(jìn)程。計(jì)算節(jié)點(diǎn)在計(jì)算完成后,將計(jì)算結(jié)果存儲到指定的共享文件夾中。頭結(jié)點(diǎn)可以對計(jì)算節(jié)點(diǎn)上的每個Magic 進(jìn)程進(jìn)行監(jiān)控,可以獲得每個計(jì)算節(jié)點(diǎn)Magic 進(jìn)程完成的進(jìn)度、所花的時間等狀態(tài)信息,也可以終止掉異常的Magic 進(jìn)程。改進(jìn)的Magic 迭代計(jì)算軟件可以向集群的頭結(jié)點(diǎn)發(fā)送信息,可以獲得Magic 進(jìn)程的狀態(tài)信息和對Magic 進(jìn)程進(jìn)行控制和管理,流程如圖3 所示。

      圖3 改進(jìn)的Magic 迭代計(jì)算軟件工作流程

      3 改進(jìn)的Magic 迭進(jìn)計(jì)算軟件設(shè)計(jì)方案

      3.1 HPC 集群的搭建

      3.1.1 頭結(jié)點(diǎn)的部署與配置

      在已安裝服務(wù)器操作系統(tǒng)(如Windows server 2016)的計(jì)算機(jī)上添加域服務(wù),并將該計(jì)算機(jī)添加到域中。使用Microsoft HPC Pack,創(chuàng)建頭結(jié)點(diǎn)。

      使用HPC Pack 群集管理器配置網(wǎng)絡(luò)拓?fù)洌瑘D2 集群的架構(gòu)圖所展現(xiàn)的為其中的一種網(wǎng)絡(luò)拓?fù)潢P(guān)系。

      創(chuàng)建不同級別的節(jié)點(diǎn)組,即將可用的計(jì)算資源進(jìn)行分組,使每組擁有不同數(shù)量的計(jì)算資源。如可以使某組擁有集群中所有的計(jì)算資源,保證計(jì)算時的性能最好。本文只設(shè)置了一個組,該組中包含所有的計(jì)算節(jié)點(diǎn)。

      創(chuàng)建作業(yè)模板,在向集群提交作業(yè)時使用。在作業(yè)模板中可以設(shè)置作業(yè)放在哪個或哪幾個節(jié)點(diǎn)組上進(jìn)行計(jì)算,防止占用整個集群的計(jì)算資源,影響他人的使用。可以設(shè)置作業(yè)的最大運(yùn)行時間,設(shè)置提交作業(yè)的優(yōu)先級,也可以限定該作業(yè)模板的使用權(quán)限等。

      3.1.2 計(jì)算結(jié)點(diǎn)的部署與配置

      在Windows 計(jì)算節(jié)點(diǎn)上開啟HPC pack 安裝向?qū)В梢赃x擇創(chuàng)建工作站節(jié)點(diǎn)或選擇計(jì)算節(jié)點(diǎn)將計(jì)算節(jié)點(diǎn)加入現(xiàn)有HPC 群集。輸入頭節(jié)點(diǎn)名稱,完成安裝。通過HPC Cluster Manager 軟件在節(jié)點(diǎn)管理中為每個節(jié)點(diǎn)套入節(jié)點(diǎn)模板,并將剛加入到集群中的節(jié)點(diǎn)添加到某個計(jì)算組中,以增加該組中可用的計(jì)算資源的數(shù)目。因?yàn)樽鳂I(yè)模板會要求選擇相應(yīng)的節(jié)點(diǎn)組,在進(jìn)行并行計(jì)算時會使用該組的計(jì)算資源。

      注意事項(xiàng):1)配置IP 和DNS,IP 地址確保和主節(jié)點(diǎn)在同一個局域網(wǎng)內(nèi),DNS 服務(wù)器的地址設(shè)置為頭節(jié)點(diǎn)的IP 地址。2)設(shè)置計(jì)算機(jī)名及域名:設(shè)置易于和其他計(jì)算機(jī)區(qū)分的計(jì)算名便于在通過程序生成的日志文件查看每個計(jì)算節(jié)點(diǎn)上被分配了多少M(fèi)agic 進(jìn)程;設(shè)置域名:域名為配置頭節(jié)點(diǎn)時設(shè)置的根域名。

      3.2 數(shù)據(jù)的存儲

      要求每個計(jì)算節(jié)點(diǎn)的Magic 進(jìn)程在啟動計(jì)算時能讀取到參數(shù)文件,且當(dāng)各個計(jì)算節(jié)點(diǎn)計(jì)算完成后,能把計(jì)算結(jié)果匯總到一起,方便用戶查看。

      由于Windows 提供了在局域網(wǎng)中文件共享機(jī)制,故在每臺計(jì)算機(jī)上設(shè)置了一個共享文件夾,在提交作業(yè)之前,用戶可以通過Magic 迭代算法軟件的前臺界面設(shè)置共享文件夾的絕對路徑。這樣,在局域網(wǎng)中的每臺計(jì)算節(jié)點(diǎn)在計(jì)算時,就可以從共享文件夾中讀取所需的參數(shù)文件;計(jì)算完成后,就會將結(jié)果輸出到該共享文件夾下。

      3.3 改進(jìn)的Magic 迭代計(jì)算軟件的設(shè)計(jì)

      用戶只需在用戶界面上配置好所需的參數(shù),程序會自動進(jìn)行迭代并將作業(yè)提交到集群上進(jìn)行計(jì)算,實(shí)現(xiàn)集群對用戶的透明化,簡化用戶的操作,提升用戶體驗(yàn)。改進(jìn)的Magic 迭代計(jì)算軟件既可以放到計(jì)算節(jié)點(diǎn)上運(yùn)行,又可以放在頭節(jié)點(diǎn)上運(yùn)行。

      Magic 迭代計(jì)算軟件的改進(jìn)主要包含以下3 點(diǎn):

      1)用戶名密碼的設(shè)計(jì)

      在Magic 迭代計(jì)算軟件的前端設(shè)置登錄界面,將用戶名密碼和之前創(chuàng)建的作業(yè)模板綁定在一起,存放在數(shù)據(jù)庫中。不同的用戶登錄后,在提交作業(yè)時從數(shù)據(jù)庫中讀出相對應(yīng)的作業(yè)模板,進(jìn)而實(shí)現(xiàn)不同的用戶在提交作業(yè)進(jìn)行計(jì)算時使用不同的計(jì)算資源,達(dá)到資源合理利用的目的。在提交作業(yè)時,在作業(yè)名稱上加上用戶名,這樣管理員可以知道哪些用戶正在使用集群資源。

      2)計(jì)算任務(wù)的提交

      Microsoft HPC pack SDK 提 供 了 可 供 二 次 開發(fā)的API 接口[13],通過編程調(diào)用相應(yīng)的接口實(shí)現(xiàn)集群的連接和將每一代的Magic 程序放到集群上進(jìn)行計(jì)算的操作,從而實(shí)現(xiàn)將耗時耗資源的計(jì)算采用并行方式完成。

      通過調(diào)用API 相應(yīng)的函數(shù)可以設(shè)置作業(yè)使用的作業(yè)模板,Magic 進(jìn)程要使用的內(nèi)核數(shù),以到達(dá)合理利用集群中計(jì)算資源的目的。

      3)日志文件的編寫

      當(dāng)進(jìn)行集群計(jì)算時,編寫相應(yīng)的日志文件,用來統(tǒng)計(jì)一個作業(yè)提交到集群上的時間點(diǎn):每個Magic 進(jìn)程被分配到哪個計(jì)算節(jié)點(diǎn)上,計(jì)算每個Magic 所花的時間;每個計(jì)算節(jié)點(diǎn)被分配的任務(wù)數(shù),用于集群計(jì)算所花的時間;每個作業(yè)完成的時間點(diǎn)、所耗時長和檢查每個任務(wù)是否計(jì)算出了結(jié)果,一些錯誤提示等一系列的信息。通過統(tǒng)計(jì)以上信息,可以和單機(jī)運(yùn)行所花費(fèi)的時間進(jìn)行比較,判斷是否可以提升計(jì)算效率。可以清楚地判斷每個計(jì)算節(jié)點(diǎn)計(jì)算快慢,可以棄用計(jì)算較慢的計(jì)算節(jié)點(diǎn)。

      4 并行計(jì)算中的問題及解決方法

      在并行化過程中遇到了一些問題,下面對出現(xiàn)的問題進(jìn)行探討并給出相應(yīng)的解決辦法。

      1) Magic 進(jìn)程沒有進(jìn)行計(jì)算。

      本文使用工作站作為計(jì)算節(jié)點(diǎn),每個工作站有32 個CPU 內(nèi)核,在實(shí)驗(yàn)時使用2 臺相同的工作站充當(dāng)計(jì)算節(jié)點(diǎn),設(shè)置每個Magic 進(jìn)程使用的CPU 內(nèi)核數(shù)為1,當(dāng)給每臺工作站分配超過24 個Magic 進(jìn)程時,會出現(xiàn)部分Magic 進(jìn)程沒有進(jìn)行計(jì)算,卻顯示計(jì)算完成的情況。針對這種情況,本文采取了下面的措施:作業(yè)提交后,在獲取作業(yè)的完成進(jìn)度過程中,每當(dāng)進(jìn)度發(fā)生變化時,代表有Magic 進(jìn)程計(jì)算完成,此時獲取任務(wù)的列表,通過檢測已完成的任務(wù)是否生成完整的計(jì)算結(jié)果文件,來判斷Magic 進(jìn)程是否計(jì)算完成,如果沒有完整的結(jié)果文件,將該任務(wù)再次提交到集群上進(jìn)行計(jì)算。

      2)算例在計(jì)算完成后無法停止。

      在搭建的測試集群平臺上經(jīng)測試發(fā)現(xiàn),在計(jì)算節(jié)點(diǎn)上,部分Magic 進(jìn)程在計(jì)算完成后,所有的結(jié)果文件已經(jīng)生成,但是卻無法自己停止,在集群中顯示該Magic 進(jìn)程正在運(yùn)行,這樣導(dǎo)致某一次迭代無法完成,無法生成下一次迭代所需的參數(shù)文件,無法進(jìn)入下一次迭代,大大降低了運(yùn)算的效率。

      針對這種情況,因?yàn)樵谧鳂I(yè)模板中可以設(shè)置一個作業(yè)最大運(yùn)行時間,所以規(guī)定了一個作業(yè)最大運(yùn)行時間的值,到規(guī)定的時間,終止掉這一代。但是發(fā)現(xiàn)參數(shù)文件不同,每個Magic 進(jìn)程計(jì)算所需的時間不同,無法準(zhǔn)確得知每一代最大的運(yùn)行時間。如果最大運(yùn)行時間設(shè)置得過大,計(jì)算完成,Magic 進(jìn)程遲遲無法停掉,同樣也會增加每一代運(yùn)行的時間,降低計(jì)算效率;如果每代計(jì)算時間設(shè)置的過小,部分Magic 進(jìn)程還沒有計(jì)算出結(jié)果,就被強(qiáng)行終止掉了,會使下一代無法生成較好的參數(shù),甚至?xí)?dǎo)致最終無法生成最優(yōu)的參數(shù)。

      依據(jù)Magic 無法自動終止,就利用集群的頭結(jié)點(diǎn)強(qiáng)行停止掉的思想,在作業(yè)正在運(yùn)行時每過一段時間(如20 s),獲取Magic 進(jìn)程列表,檢測正在運(yùn)行的Magic 進(jìn)程,看所有的結(jié)果文件是否已經(jīng)存在,如果已存在,可將該Magic 進(jìn)程終止。這樣可以做到及時終止計(jì)算已完成但未自動結(jié)束的Magic 進(jìn)程。

      應(yīng)當(dāng)注意的是,由于在程序中反復(fù)通過調(diào)用API 函數(shù)獲取作業(yè)的任務(wù)列表,如果任務(wù)列表比較大,會占用較大的內(nèi)存,在使用完成后,沒有及時的釋放掉,會造成內(nèi)存泄漏的問題。所以在使用完任務(wù)列表后要及時的釋放掉,可以通過調(diào)用ISchedulerCollection::Clear 函數(shù)進(jìn)行釋放,以免造成程序出錯。

      3)為每個計(jì)算節(jié)點(diǎn)分配的最大任務(wù)數(shù)。

      經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),在搭建的集群平臺上,在把多個Magic 進(jìn)程分配到集群上時,當(dāng)一次迭代的Magic 進(jìn)程過多,超過了一臺計(jì)算節(jié)點(diǎn)可用的CPU內(nèi)核數(shù)時,集群頭節(jié)點(diǎn)會把任務(wù)循環(huán)分配到可以使用的計(jì)算節(jié)點(diǎn)上。如可用的計(jì)算節(jié)點(diǎn)有3 個,第1 個任務(wù)會分配到第1 臺計(jì)算節(jié)點(diǎn)上,第2 個任務(wù)會被分配到第2 個計(jì)算節(jié)點(diǎn)上,第3 個任務(wù)會被分配到第3 個計(jì)算節(jié)點(diǎn)上,第4 個任務(wù)又會被分配到第1 個計(jì)算節(jié)點(diǎn)上,依次循環(huán),有1 個計(jì)算節(jié)點(diǎn)上的內(nèi)核被分配完就不再給該計(jì)算節(jié)點(diǎn)再分配;當(dāng)一代中包括的Magic 較少時,集群會將所有的Magic 進(jìn)程分配到一個計(jì)算節(jié)點(diǎn)上。

      為每個計(jì)算節(jié)點(diǎn)分配的Magic 進(jìn)程數(shù)應(yīng)根據(jù)CPU 的利用率、每個計(jì)算節(jié)點(diǎn)上所有Magic 計(jì)算完成的時間和集群用戶數(shù)量這3 個指標(biāo)來確定。

      每臺工作站都是多核CPU,如果每個Magic進(jìn)程占用CPU 的1 個內(nèi)核,1 個計(jì)算節(jié)點(diǎn)被分配的Magic 進(jìn)程數(shù)為CPU 的內(nèi)核數(shù),計(jì)算節(jié)點(diǎn)的CPU 利用率會很高,甚至?xí)_(dá)到100%。有的計(jì)算節(jié)點(diǎn)不僅要滿足集群運(yùn)算的需求,還要滿足用戶正常的使用,如果CPU 的利用率過高,則無法滿足用戶對計(jì)算機(jī)的正常使用;CPU 的利用率過高,也會導(dǎo)致1 個計(jì)算節(jié)點(diǎn)上多個Magic 進(jìn)程之間相互影響,1 個計(jì)算節(jié)點(diǎn)上任務(wù)完成的時間增加。如果在多核工作站上分配的Magic 進(jìn)程過多,會存在許多顯示計(jì)算完成卻沒有進(jìn)行計(jì)算的Magic 進(jìn)程,雖然重復(fù)提交可以解決該問題,但是還是會略微增加迭代一次所需的時間。

      如果1 個計(jì)算節(jié)點(diǎn)被分配的Magic 進(jìn)程數(shù)少于CPU 的內(nèi)核數(shù),CPU 的利用率就會下降,1 個計(jì)算節(jié)點(diǎn)上分配的Magic 進(jìn)程相互之間影響較小,完成時間縮短,但是整個集群能并行運(yùn)算的算例總數(shù)量就會下降。假如集群中的計(jì)算節(jié)點(diǎn)的數(shù)量一定,不再增加,多個用戶同時使用集群,就可能會出現(xiàn)部分用戶提交的任務(wù)會處于排隊(duì)狀態(tài)。所以,要把這3 個因素綜合考慮,取得一個最優(yōu)值。

      綜合以上所有因素,本文經(jīng)實(shí)驗(yàn)發(fā)現(xiàn)當(dāng)1 臺計(jì)算機(jī)擁有的CPU 內(nèi)核數(shù)較多時,設(shè)置每臺計(jì)算節(jié)點(diǎn)最大可用于計(jì)算的內(nèi)核數(shù)為每臺計(jì)算節(jié)點(diǎn)擁有CPU 內(nèi)核數(shù)的 [ 2/3]為宜,規(guī)定每個Magic 進(jìn)程計(jì)算使用的內(nèi)核數(shù)為1 即可。

      值得注意的是,只有先在HPC Cluster Manage軟件中把每臺計(jì)算節(jié)點(diǎn)進(jìn)行脫機(jī)后,才能使用該軟件設(shè)置每個計(jì)算節(jié)點(diǎn)可以使用的最大內(nèi)核數(shù),且可用的最大內(nèi)核數(shù)只能設(shè)置為偶數(shù)。

      5 集群安全性論證

      由于在進(jìn)行Magic 進(jìn)行并行化時,要求集群具有容錯能力,即1 個計(jì)算節(jié)點(diǎn)宕機(jī)的情況。經(jīng)過實(shí)驗(yàn)論證發(fā)現(xiàn),當(dāng)某個計(jì)算節(jié)點(diǎn)在運(yùn)行Magic 進(jìn)程時出現(xiàn)了宕機(jī)的情況,該機(jī)上計(jì)算任務(wù)不會失敗,任務(wù)會被重新收回,狀態(tài)變成排隊(duì)狀態(tài),當(dāng)有可用的計(jì)算資源時,任務(wù)會被重新分配出去,完成計(jì)算;當(dāng)1 個計(jì)算節(jié)點(diǎn)發(fā)生故障時,集群將不會分配Magic 進(jìn)程給該計(jì)算節(jié)點(diǎn)。1 個計(jì)算節(jié)點(diǎn)出現(xiàn)故障,不會影響整個集群的正常使用。

      6 實(shí)驗(yàn)結(jié)果

      本文在Magic 迭代算法軟件的前端界面上設(shè)置好Magic 程序所需的參數(shù)信息,使用搭建好的2 臺相同的工作站集群充當(dāng)計(jì)算節(jié)點(diǎn),用于Magic 程序的運(yùn)行,每臺工作站擁有32 個CPU內(nèi)核,同時準(zhǔn)備1 臺相同的工作站進(jìn)行單機(jī)迭代優(yōu)化參數(shù)。

      經(jīng)過測算在工作站上單獨(dú)運(yùn)行一個Magic 進(jìn)程,計(jì)算完成平均花費(fèi)15 min。程序每次迭代會生成44 個Magic 進(jìn)程。由于我們設(shè)定的每臺計(jì)算節(jié)點(diǎn)可用的最大內(nèi)核為22 個,每個Magic 進(jìn)程占用1 個CPU 內(nèi)核,故每次迭代44 個Magic 進(jìn)程可以同時進(jìn)行計(jì)算,沒有排隊(duì)現(xiàn)象。對于單機(jī)的magic 進(jìn)程一般習(xí)慣設(shè)定同時開啟的Magic 進(jìn)程數(shù)為工作站的最大內(nèi)核數(shù),故一次開啟32 個進(jìn)程。集群和用于單機(jī)迭代優(yōu)化參數(shù)的工作站都沒有運(yùn)行其他程序。

      放在集群上進(jìn)行迭代,44 個Magic 進(jìn)程計(jì)算完成平均所花的時間為22 min。而在單機(jī)上完成44 個Magic 進(jìn)程計(jì)算平均花費(fèi)40 min。說明使用較單機(jī)多一倍的計(jì)算資源,計(jì)算速度大約提升了一倍,加速比約為2。通過實(shí)驗(yàn)數(shù)據(jù)比對發(fā)現(xiàn)該方法能提高計(jì)算效率,所以該方法是行之有效的。

      7 結(jié)論

      本文以單機(jī)Magic 迭代計(jì)算軟件為研究對象,針對每代開啟多個Magic 程序、運(yùn)行效率低下的問題,提出了一種基于Microsoft HPC 的并行化方法,提高了計(jì)算速度。

      1)本文采用了共享存儲的方法,使用共享文件夾實(shí)現(xiàn)多臺計(jì)算機(jī)計(jì)算開始前讀取所需參數(shù),計(jì)算完成后存儲計(jì)算結(jié)果的功能。

      2)本文提出基于Microsoft HPC 的方法實(shí)現(xiàn)Magic 迭代計(jì)算軟件的并行化,將每代的Magic 程序分配到多臺計(jì)算機(jī)的不同計(jì)算單元上進(jìn)行計(jì)算,既利用了閑置的計(jì)算資源,又提高了計(jì)算效率,且成本低。為解決同類問題提供了一種可行的思路和方法。

      在未來的工作中,可以深入的研究一下在并行計(jì)算過程中出現(xiàn)的個別Magic 進(jìn)程沒有進(jìn)行計(jì)算以及部分算例在計(jì)算完成后無法自行停止問題的真正原因。

      猜你喜歡
      計(jì)算資源內(nèi)核進(jìn)程
      萬物皆可IP的時代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      基于模糊規(guī)劃理論的云計(jì)算資源調(diào)度研究
      債券市場對外開放的進(jìn)程與展望
      中國外匯(2019年20期)2019-11-25 09:54:58
      改進(jìn)快速稀疏算法的云計(jì)算資源負(fù)載均衡
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      基于Wi-Fi與Web的云計(jì)算資源調(diào)度算法研究
      耦合分布式系統(tǒng)多任務(wù)動態(tài)調(diào)度算法
      社會進(jìn)程中的新聞學(xué)探尋
      定西市| 抚顺市| 舟曲县| 滕州市| 无极县| 广水市| 都江堰市| 江陵县| 穆棱市| 海丰县| 萝北县| 延川县| 汾西县| 黄山市| 巴林右旗| 澄江县| 曲松县| 滦南县| 铅山县| 黔西县| 庆阳市| 高陵县| 阿鲁科尔沁旗| 江永县| 长治县| 新民市| 清苑县| 迁安市| 阳山县| 荔浦县| 临潭县| 丁青县| 达拉特旗| 津南区| 丰城市| 西丰县| 永新县| 巨鹿县| 阜南县| 保山市| 南皮县|