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

大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法及其系統(tǒng)的制作方法

文檔序號:6552554閱讀:542來源:國知局
大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法及其系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法及其系統(tǒng),該方法是在主機(jī)上將不同階段的物理設(shè)計(jì)問題劃分成各個(gè)子問題,不同階段將應(yīng)用不同的劃分方法,然后主機(jī)通過網(wǎng)絡(luò)通信的方式將各個(gè)子問題發(fā)送到各個(gè)分布的服務(wù)機(jī)上計(jì)算,計(jì)算后的結(jié)果再發(fā)送到主機(jī)。主機(jī)和計(jì)算集群上均有一個(gè)伺服管理進(jìn)程,該程序是本分布式計(jì)算框架的一個(gè)重要組成部分,其將負(fù)責(zé)分布式計(jì)算資源的管理,包括資源分配和回收等。本發(fā)明能夠快速有效的處理超大規(guī)模的集成電路的物理設(shè)計(jì)問題,可以極大提高集成電路的物理設(shè)計(jì)效率,以實(shí)現(xiàn)比單一計(jì)算機(jī)上的多線程計(jì)算更加快速有效的大規(guī)模集成電路物理設(shè)計(jì)。
【專利說明】大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法及其系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于集成電路設(shè)計(jì)領(lǐng)域,尤其是屬于互連線線寬在65nm及以下的集成電路制造工藝下的集成電路設(shè)計(jì)優(yōu)化的技術(shù)范疇,具體涉及一種大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法及其系統(tǒng)。
【背景技術(shù)】
[0002]集成電路是由設(shè)計(jì)者借助于電子設(shè)計(jì)自動(dòng)化(EDA)工具設(shè)計(jì)出集成電路版圖,交付集成電路制造商,通過電路掩膜制備(Mask)以及對晶片(Wafer)進(jìn)行氧化、摻雜、光刻等一系列的制作工藝將電路掩膜轉(zhuǎn)移到晶片上,從而實(shí)現(xiàn)其電路功能。對于數(shù)字電路設(shè)計(jì)來說,版圖設(shè)計(jì)流程包括行為級綜合,邏輯綜合,物理設(shè)計(jì)和版圖優(yōu)化等步驟。其中,物理設(shè)計(jì)是最為耗時(shí),對芯片性能影響最大的步驟,它又分為布圖規(guī)劃,布局,時(shí)鐘樹綜合,布線等步驟。布線實(shí)現(xiàn)是物理設(shè)計(jì)中至關(guān)重要的一步,一般可以劃分為總體布線,通道布線和詳細(xì)布線三個(gè)部分,詳細(xì)布線過程中需要進(jìn)行布線和設(shè)計(jì)規(guī)則檢查,以上步驟重要且耗時(shí),占用了芯片物理設(shè)計(jì)的絕大部分的設(shè)計(jì)時(shí)間。
[0003]在芯片制造中,目前主流的紫外線光刻線寬度是65nm/45nm,并正在朝著28nm/22nm的節(jié)點(diǎn)發(fā)展。由于特征尺寸的減小,芯片上可容納晶體管數(shù)量相應(yīng)增加,電路設(shè)計(jì)的問題規(guī)模和復(fù)雜度也隨之不斷提高,這使得傳統(tǒng)的物理實(shí)現(xiàn)工具必須具備處理更大規(guī)模復(fù)雜問題的能力。另一方面,雖然主流的物理設(shè)計(jì)工具都提供了多線程并行計(jì)算來加速設(shè)計(jì),而當(dāng)設(shè)計(jì)規(guī)模急劇增大時(shí),突破單一計(jì)算機(jī)上多線程計(jì)算,應(yīng)用分布式的并行計(jì)算方式可以更大程度應(yīng)用網(wǎng)絡(luò)上的服務(wù)器協(xié)同計(jì)算以加速物理設(shè)計(jì),達(dá)到更高的設(shè)計(jì)加速度。
[0004]

【發(fā)明內(nèi)容】

[0005]針對上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法及其系統(tǒng)。該方法提出了一種分布式計(jì)算的框架,能夠?qū)⒉煌锢韺?shí)現(xiàn)階段的物理實(shí)現(xiàn)問題劃分成各自獨(dú)立的子問題,通過分布式并行計(jì)算的方式進(jìn)行求解,從而達(dá)到對原問題求解的加速。同時(shí),為實(shí)現(xiàn)分布式計(jì)算資源的管理,分配和回收,本發(fā)明還提供了一個(gè)計(jì)算資源管理的伺服程序。
[0006]本發(fā)明的另一個(gè)目的在于提供了一種大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算的系統(tǒng)。
[0007]為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:
一種大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算的系統(tǒng),包括文件讀取模塊、多線程并行模塊、總體布線模塊、通道布線模塊、詳細(xì)布線模塊、設(shè)計(jì)規(guī)則檢查模塊以及一個(gè)內(nèi)含的計(jì)算資源管理的伺服程序;所述計(jì)算資源管理的伺服程序主要分成主程序(Master)、客戶端(Slave)伺服程序、客戶端計(jì)算程序三個(gè)部分。
[0008]所述總體布線模塊、所述通道布線模塊、所述詳細(xì)布線模塊和所述設(shè)計(jì)規(guī)則檢查模塊各有有不同的任務(wù)劃分方法,所述的任務(wù)劃分方法包括按照區(qū)域劃分、按照物理實(shí)現(xiàn)單元行劃分和按照線網(wǎng)劃分。
[0009]該方法的工作過程主要可劃分為3個(gè)階段:
1)分析和劃分任務(wù)階段,主機(jī)進(jìn)程的任務(wù)劃分線程將一個(gè)總問題劃分為若干子問題,每個(gè)子問題即是一個(gè)子任務(wù),并將子問題存在一個(gè)任務(wù)緩沖池中;
2)分布式計(jì)算子任務(wù)階段,主機(jī)計(jì)算工作線程獲取子任務(wù),并發(fā)送子任務(wù)到客戶計(jì)算線程,接收客戶計(jì)算線程發(fā)回的計(jì)算結(jié)果,將計(jì)算結(jié)果寫入任務(wù)結(jié)果緩沖池;
3)任務(wù)結(jié)果合并階段,主機(jī)進(jìn)程的計(jì)算結(jié)果處理線程將任務(wù)結(jié)果緩沖池中的數(shù)據(jù)一一處理、合并、并同步到設(shè)計(jì)數(shù)據(jù)庫中。
[0010]以上3個(gè)階段均由不同線程實(shí)現(xiàn),同時(shí)開始執(zhí)行,即在劃分任務(wù)的同時(shí),便可以對已劃分的任務(wù)進(jìn)行計(jì)算,并同時(shí)可以處理已傳回結(jié)果緩沖池的數(shù)據(jù)??傊?,每個(gè)階段的布線問題和設(shè)計(jì)規(guī)則檢查均可以劃分為各個(gè)獨(dú)立的子任務(wù),這樣便可以進(jìn)行并行計(jì)算,一旦可以滿足并行計(jì)算要求,再應(yīng)用本發(fā)明所提出的應(yīng)用于大規(guī)模集成電路物理實(shí)現(xiàn)系統(tǒng)的分布式并行計(jì)算方法,可以達(dá)到更快的實(shí)現(xiàn)物理實(shí)現(xiàn)。
[0011]一種大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法,首先將不同階段的物理實(shí)現(xiàn)物理實(shí)現(xiàn)問題劃分成大量獨(dú)立的物理實(shí)現(xiàn)子問題,再將所有的子問題分別發(fā)送到分布式的服務(wù)器群上進(jìn)行求解以達(dá)到更快的設(shè)計(jì)加速;接著采用分布式的計(jì)算資源管理伺服程序進(jìn)行分布式計(jì)算資源分配、管理和回收,以達(dá)到分布式計(jì)算資源的優(yōu)化管理;最后采用子問題數(shù)據(jù)緩沖池和計(jì)算結(jié)果數(shù)據(jù)緩沖池,使得在求解物理實(shí)現(xiàn)子問題和同步計(jì)算結(jié)果的同時(shí),能最小化數(shù)據(jù)更新延遲。
[0012]進(jìn)一步的,所述的將不同階段的物理實(shí)現(xiàn)物理實(shí)現(xiàn)問題劃分成大量獨(dú)立的物理實(shí)現(xiàn)子問題,再將所有的子問題分別發(fā)送到分布式的服務(wù)器群上進(jìn)行求解以達(dá)到更快的設(shè)計(jì)加速的具體方法如下:
主機(jī)劃分任務(wù)線程將所執(zhí)行的任務(wù)劃分為大量可以獨(dú)立求解的子問題,并將子問題一一發(fā)送到子問題隊(duì)列池上,主機(jī)的N個(gè)發(fā)送子問題線程,將從子問題隊(duì)列池上一個(gè)接一個(gè)地獲取子任務(wù),并將其發(fā)送給分布式計(jì)算機(jī)群上對應(yīng)的計(jì)算線程,分布式計(jì)算線程獲取子任務(wù)、即進(jìn)行計(jì)算處理、然后將計(jì)算結(jié)果發(fā)送給主機(jī)上的相對應(yīng)的發(fā)送該子問題的線程線程,然后主機(jī)發(fā)送子問題線程繼續(xù)從子問題池中獲取下一個(gè)子任務(wù)并發(fā)送給相應(yīng)的分布式計(jì)算線程,如此循環(huán)直至所有子問題任務(wù)全部計(jì)算完畢;所述的分布式計(jì)算,將所有子問題求解的大量計(jì)算任務(wù)安排給了分布式服務(wù)器計(jì)算,主機(jī)本身可以節(jié)約時(shí)間去執(zhí)行任務(wù)劃分和數(shù)據(jù)結(jié)果同步,以此達(dá)到更快的加速設(shè)計(jì)。
[0013]進(jìn)一步的,所述的采用分布式的計(jì)算資源管理伺服程序進(jìn)行分布式計(jì)算資源分配、管理和回收,以達(dá)到分布式計(jì)算資源的優(yōu)化管理的具體方法如下:
每臺(tái)分布式服務(wù)器群上均運(yùn)行一個(gè)分布式計(jì)算資源管理伺服進(jìn)程,該進(jìn)程開發(fā)一個(gè)固定的通信端口,負(fù)責(zé)偵聽和接受所有來自各個(gè)主機(jī)的連接和任務(wù)請求,計(jì)算資源管理伺服進(jìn)程能執(zhí)行以下任務(wù)請求:請求分配計(jì)算資源并啟動(dòng)計(jì)算進(jìn)程、查詢計(jì)算資源、停止計(jì)算資源以及自動(dòng)回收僵尸計(jì)算資源。
[0014]進(jìn)一步的,所述的采用子問題數(shù)據(jù)緩沖池和計(jì)算結(jié)果數(shù)據(jù)緩沖池,使得在求解物理實(shí)現(xiàn)子問題和同步計(jì)算結(jié)果的同時(shí),能最小化數(shù)據(jù)更新延遲的具體方法如下: 主程序的劃分子任務(wù)線程、子任務(wù)發(fā)送和求解結(jié)果接收的若干子線程、以及結(jié)果同步和回寫設(shè)計(jì)數(shù)據(jù)庫線程是同時(shí)運(yùn)行的,這個(gè)是通過兩個(gè)緩沖池,子問題數(shù)據(jù)緩沖池和計(jì)算結(jié)果數(shù)據(jù)緩沖池實(shí)現(xiàn)的;三個(gè)線程并行運(yùn)行效率明顯優(yōu)于串行執(zhí)行的性能,這種實(shí)現(xiàn)方式最大程度上優(yōu)化了數(shù)據(jù)更新延遲。
[0015]進(jìn)一步的,實(shí)現(xiàn)所述分布式計(jì)算需要首先滿足如下條件a,b,并按照步驟c_h運(yùn)行:
a.主程序運(yùn)行的服務(wù)器和客戶端所在的服務(wù)器均在同一個(gè)局域網(wǎng)內(nèi),且采用相同的網(wǎng)絡(luò)共享文件服務(wù)配置,即物理實(shí)現(xiàn)程序所在的目錄映射的是網(wǎng)絡(luò)文件服務(wù)器上同一個(gè)目錄,且進(jìn)行物理實(shí)現(xiàn)設(shè)計(jì)所在的目錄也是映射在網(wǎng)絡(luò)文件服務(wù)器上相同的目錄;
b.所有的服務(wù)器上均運(yùn)行一個(gè)客戶端資源管理伺服程序,該伺服程序開發(fā)一個(gè)固定端口負(fù)責(zé)偵聽所有連接請求;然后該伺服程序進(jìn)入服務(wù)循環(huán):接收主程序的計(jì)算資源請求、分配計(jì)算資源、啟動(dòng)客戶端計(jì)算程序以及接受主程序的停止計(jì)算命令來停止客戶端計(jì)算程序并回收資源;
c.如果用戶需要查詢分布式服務(wù)器群中計(jì)算資源的使用情況,可以執(zhí)行查詢分布式計(jì)算資源查詢命令,該命令會(huì)遍歷分布式服務(wù)器群的IP地址,并一一連接相應(yīng)服務(wù)器上伺服程序開放的服務(wù)端口,并發(fā)送查詢命令給伺服程序,伺服程序立即統(tǒng)計(jì)計(jì)算資源使用信息并發(fā)送給主程序;
d.如果主程序需要進(jìn)行分布式計(jì)算,首先向分布式服務(wù)器群申請計(jì)算資源,遍歷服務(wù)器群的IP地址,并一一連接相應(yīng)服務(wù)器上伺服程序開放的服務(wù)端口,并發(fā)送資源申請命令給伺服程序,以及發(fā)送所請求的CPU數(shù)目和需求的內(nèi)存大小,伺服程序根據(jù)目前空閑的資源狀況給主程序分配資源,如果資源不符合條件則分配失敗,否則該服務(wù)端分配成功,同時(shí)伺服程序通過系統(tǒng)調(diào)用啟動(dòng)客戶端計(jì)算程序,客戶端程序開啟相應(yīng)的計(jì)算數(shù)據(jù)傳送的通信端口,以便和主程序相應(yīng)的任務(wù)線程通信;
e.主程序的任務(wù)劃分線程劃分任務(wù)為各個(gè)獨(dú)立的子任務(wù),并加入子任務(wù)池;各個(gè)任務(wù)線程從子任務(wù)池中取子任務(wù),然后將子任務(wù)通過計(jì)算數(shù)據(jù)傳送端口發(fā)送給計(jì)算服務(wù)程序的計(jì)算線程,計(jì)算線程完成計(jì)算后,將計(jì)算結(jié)果發(fā)送回主程序的任務(wù)線程,主程序的任務(wù)線程將結(jié)果加入結(jié)果隊(duì)列池;結(jié)果處理線程負(fù)責(zé)合并結(jié)果隊(duì)列池的結(jié)果并更新設(shè)計(jì)數(shù)據(jù)庫;循環(huán)下去直至所有子任務(wù)全部計(jì)算完成;
f.子任務(wù)線程等待主程序的新的命令和計(jì)算任務(wù);
g.當(dāng)主程序分布式計(jì)算完畢,需要執(zhí)行停止分布式計(jì)算的命令,該命令通知服務(wù)端的計(jì)算資源管理伺服程序回收計(jì)算資源;
h.為了保證程序的穩(wěn)定性,使得計(jì)算資源能有效回收,客戶端的計(jì)算資源管理伺服程序需要自動(dòng)回收部分計(jì)算資源,如若主程序或者客戶程序的缺陷導(dǎo)致主程序或客戶程序奔潰而導(dǎo)致連接丟失,抑或系統(tǒng)的不穩(wěn)定而導(dǎo)致系統(tǒng)奔潰或網(wǎng)絡(luò)問題造成的通信失敗均可能造成主程序和服務(wù)程序連接丟失,則客戶端的計(jì)算資源管理伺服程序根據(jù)監(jiān)聽連接兩端的活動(dòng)狀態(tài)了,如果連接超時(shí),便回收相應(yīng)的被占用的計(jì)算資源。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果:
本發(fā)明提出了一種分布式計(jì)算的框架,將不同物理實(shí)現(xiàn)階段的物理實(shí)現(xiàn)問題劃分成各自獨(dú)立的子問題,通過分布式并行計(jì)算的方式進(jìn)行求解,達(dá)到對原問題求解的加速,從而能夠快速有效的處理超大規(guī)模的集成電路通道布線問題;同時(shí),本發(fā)明還提供了一個(gè)計(jì)算資源管理的伺服程序,夠解決了分布式計(jì)算資源分配,查詢和回收等問題。
[0017]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實(shí)施,以下以本發(fā)明的較佳實(shí)施例并配合附圖對本專利進(jìn)行詳細(xì)說明。
【專利附圖】

【附圖說明】
[0018]圖1為本發(fā)明的分布式計(jì)算示意圖。
[0019]圖2為本發(fā)明的Slave端伺服管理程序啟動(dòng)示意圖。
[0020]圖3為本發(fā)明的Master申請分布式計(jì)算資源示意圖。
[0021]圖4為本發(fā)明的Master查詢分布式計(jì)算資源示意圖。
[0022]圖5為本發(fā)明的Master端停止分布式計(jì)算示意圖。
[0023]圖6為本發(fā)明的Master端運(yùn)行分布式計(jì)算示意圖。
[0024]圖7為本發(fā)明的Slave端伺服程序查詢資源示意圖。
[0025]圖8為本發(fā)明的Slave端伺服程序分配資源示意圖。
[0026]圖9為本發(fā)明的Slave端伺服管理程序自動(dòng)回收計(jì)算資源示意圖。
[0027]圖10為本發(fā)明的物理實(shí)現(xiàn)程序可實(shí)現(xiàn)分布式計(jì)算的模塊示意圖。
【具體實(shí)施方式】
[0028]下面結(jié)合附圖對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)介紹。
[0029]本實(shí)施設(shè)計(jì)了一種大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算的方法,將不同階段物理實(shí)現(xiàn)的整體問題劃分成一個(gè)個(gè)單元內(nèi)的物理實(shí)現(xiàn)子問題,再將這些子問題表述成一個(gè)個(gè)子任務(wù),放入子任務(wù)隊(duì)列池,子任務(wù)將由分布式計(jì)算服務(wù)端計(jì)算處理,并將計(jì)算處理結(jié)果發(fā)送回主進(jìn)程。參見圖1所示,主程序在不同的物理實(shí)現(xiàn)階段均可以進(jìn)行并行計(jì)算,當(dāng)開始并行計(jì)算時(shí),主程序的任務(wù)劃分線程按照不同的劃分方法將整體問題劃分為一個(gè)個(gè)獨(dú)立的子問題,并加入任務(wù)隊(duì)列池;主程序中的各個(gè)分布式計(jì)算線程從任務(wù)隊(duì)列池中一個(gè)一個(gè)地取子任務(wù),并將子問題發(fā)送給配對的服務(wù)端線程,服務(wù)端線程計(jì)算完畢后再將計(jì)算結(jié)果發(fā)回給主程序的相應(yīng)線程,主程序端的分布式計(jì)算線程將獲取的結(jié)果存入結(jié)果隊(duì)里池中;另一方面結(jié)果同步和回寫數(shù)據(jù)庫線程將結(jié)果隊(duì)列池中的結(jié)果一一寫入數(shù)據(jù)庫中。以上3個(gè)處理部分互相重合,也即任務(wù)劃分線程在劃分的同時(shí),工作線程已經(jīng)可以在任務(wù)隊(duì)列中獲取任務(wù)開始工作了,如果結(jié)果隊(duì)列池中有子任務(wù)的計(jì)算結(jié)果,則同步和回寫進(jìn)程可以同時(shí)同步物理實(shí)現(xiàn)的結(jié)果,這樣最大程度上提高了處理效率。
[0030]開啟分布式計(jì)算前,各個(gè)分布式計(jì)算的服務(wù)器需要開啟一個(gè)分布式資源管理的伺服程序,伺服資源程序的啟動(dòng)一般可以加入服務(wù)器的開機(jī)啟動(dòng)任務(wù)中。參見圖2所示,伺服資源管理程序啟動(dòng)時(shí),首先獲取當(dāng)前服務(wù)器上可用的CPU和內(nèi)存資源信息,并初始化任務(wù)列表,開放一個(gè)預(yù)設(shè)的特定的socket連接端口,并開始偵聽所有的連接到該端口的信息。一旦探測到該端口有連接請求,便和請求端建立連接,并開始接收Master發(fā)送的命令,根據(jù)接收的命令類型:請求分配資源、查詢資源、停止計(jì)算并回收資源、更新Master端的活動(dòng)信息,最后根據(jù)不同的請求類型,伺服程序執(zhí)行相應(yīng)的服務(wù)子程序。[0031]當(dāng)Master端需要進(jìn)行分布式計(jì)算時(shí),首先需要向分布式計(jì)算服務(wù)器群申請分布式計(jì)算資源。申請資源流程參見圖3所示。當(dāng)前Master獲取所有加入計(jì)算集群的服務(wù)器IP地址列表,遍歷所有的服務(wù)器IP,向該IP所對應(yīng)的特定通信端口發(fā)送連接請求,等待建立連接,連接成功后立即向該伺服端口發(fā)送資源請求命令,并發(fā)送CPU計(jì)算資源和所需要的內(nèi)存的需求信息,伺服程序根據(jù)當(dāng)前Slave所剩余的CPU和內(nèi)存信息,以及當(dāng)前Master的資源請求信息,如果內(nèi)存不夠,則不給當(dāng)前Master分配資源;如果內(nèi)存足夠,且可以CPU資源數(shù)目大于當(dāng)前Master請求的CPU資源數(shù)目,則伺服程序給當(dāng)前Master分配所需的CPU數(shù)目和內(nèi)存;如果內(nèi)存足夠,當(dāng)CPU數(shù)目不夠當(dāng)前Master的請求數(shù)目,則將剩余的CPU資源和所需的內(nèi)存分配給當(dāng)前Master。一旦分配資源成功后,伺服程序通過系統(tǒng)調(diào)用啟動(dòng)物理實(shí)現(xiàn)計(jì)算進(jìn)程,并根據(jù)分配的CPU數(shù)目從資源表中獲取相應(yīng)數(shù)目的空閑通信端口,并將端口列表發(fā)送給當(dāng)前Master,伺服程序同時(shí)更新資源任務(wù)列表。新的計(jì)算程序根據(jù)請求的伺服程序提供的CPU數(shù)目,以及空閑的端口列表,開放相應(yīng)數(shù)目和端口號的端口,新的計(jì)算進(jìn)程將分擔(dān)當(dāng)前Master的計(jì)算任務(wù)。最后當(dāng)前Master根據(jù)獲得的CPU和內(nèi)存,更新剩余所需CPU數(shù)目,如此循環(huán)直至所有的計(jì)算服務(wù)端軍遍歷完,或者直至CPU數(shù)目和內(nèi)存的請求符合要求。關(guān)于Slave端如何分配給Master端分配計(jì)算資源,詳細(xì)請參見圖8所示。
[0032]當(dāng)用戶需要了解整個(gè)服務(wù)器群中可以的分布式計(jì)算資源狀況時(shí),可以執(zhí)行查詢命令查詢相應(yīng)的信息,詳細(xì)流程參見圖4所示,Master進(jìn)入查詢分布式計(jì)算子程序,當(dāng)前Master獲取所有加入計(jì)算集群的服務(wù)器IP地址列表,遍歷所有的服務(wù)器IP,向該IP所對應(yīng)的特定通信端口發(fā)送連接請求,等待建立連接,連接成功后立即向該伺服端口發(fā)送資源查詢命令,伺服程序?qū)?dāng)前服務(wù)器上CPU和內(nèi)存使用的詳細(xì)信息發(fā)送給當(dāng)前查詢Master端。當(dāng)前Master端將所收到的查詢信息打印。Slave端的查詢自身分布式計(jì)算資源的狀況,詳細(xì)請參見圖7所示。
[0033]當(dāng)Master端完成計(jì)算,便可以執(zhí)行停止分布式計(jì)算命令來釋放所占用的CPU和內(nèi)存資源,詳細(xì)流程參見圖5所示,Master進(jìn)入停止分布式計(jì)算子程序,當(dāng)前Master獲取所占用的分布式資源列表,遍歷列表上的所有的服務(wù)器IP,向該IP所對應(yīng)的特定通信端口發(fā)送連接請求,等待建立連接,連接成功后立即向該伺服端口發(fā)送停止分布式計(jì)算命令,伺服程序立即通過系統(tǒng)調(diào)用停止相應(yīng)的進(jìn)程ID,然后回收相應(yīng)的CPU資源和內(nèi)存資源,釋放相應(yīng)的Socket端口列表。
[0034]當(dāng)Master端申請分布式計(jì)算資源后,各個(gè)分布式的計(jì)算進(jìn)程的各個(gè)分布式計(jì)算服務(wù)線程均處于等待狀態(tài),等待來自當(dāng)前Master的計(jì)算各類任務(wù)。當(dāng)Master需要分布式計(jì)算時(shí),首先在Master端開啟相應(yīng)的分布式計(jì)算資源的計(jì)算線程,每個(gè)線程都和分布式端的計(jì)算服務(wù)線程建立通信連接,連接成功后Master端線程向分布式端線程發(fā)送計(jì)算任務(wù)類型,可以支持的類型包括總體布線、通道布線、詳細(xì)布線和設(shè)計(jì)規(guī)則檢查等,Slave端線程根據(jù)不同的計(jì)算類型進(jìn)入不同的類型處理循環(huán)。Master端的任務(wù)劃分物理實(shí)現(xiàn)程一邊劃分子任務(wù)并將子任務(wù)加入子任務(wù)池,另一邊Master端的計(jì)算線程分別從子任務(wù)池中獲取子任務(wù),并發(fā)送給配對的Slave端的計(jì)算線程,Slave端的計(jì)算線程計(jì)算完即將計(jì)算結(jié)果發(fā)回給Master端,Master端的子線程將結(jié)果寫入到結(jié)果池中。同時(shí)Master端的結(jié)果同步處理線程將計(jì)算結(jié)果同步到設(shè)計(jì)數(shù)據(jù)庫中。如此循環(huán)下去直至所有的子任務(wù)求解完畢。
[0035]最后Slave端的線程回到等待計(jì)算的狀態(tài),等待來自該Master的新的計(jì)算命令。[0036]由于程序可以存在缺陷,Master端和Slave端的計(jì)算進(jìn)程可能奔潰,這樣可能使得連接丟失,且Slave端的伺服程序無法獲知這些信息,這樣最終導(dǎo)致資源無法回收而造成可用計(jì)算資源越來越少。為了克服這個(gè)弊端,我們在Slave端伺服管理程序上實(shí)現(xiàn)了一個(gè)自動(dòng)回收計(jì)算資源的功能。詳細(xì)參見圖9所示:伺服管理程序隨系統(tǒng)啟動(dòng)后立即啟動(dòng)一個(gè)資源自動(dòng)回收線程,該線程時(shí)一個(gè)無限循環(huán)。進(jìn)入循環(huán)后,先鎖住當(dāng)前已分配的資源列表,并遍歷該資源列表,根據(jù)Master上的主進(jìn)程和Slave上的計(jì)算進(jìn)程的心跳記錄來判斷Master上的主進(jìn)程或者Slave上的計(jì)算進(jìn)程是否超時(shí),如果超時(shí),則說明被監(jiān)控的進(jìn)程已經(jīng)不存在,則Slave端上相應(yīng)的計(jì)算資源將被伺服管理程序回收,如果是因?yàn)镸aster端的進(jìn)程不存在,則伺服進(jìn)程需要通過系統(tǒng)調(diào)用關(guān)閉Slave端上的計(jì)算進(jìn)程。
[0037]參見圖10所示,所述的應(yīng)用于大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算的實(shí)現(xiàn)方法可以應(yīng)用在物理實(shí)現(xiàn)階段的所有功能模塊上,包括總體布線模塊1、通道布線模塊
2、詳細(xì)布線模塊3和設(shè)計(jì)規(guī)則檢查模塊4。
[0038]以上對本發(fā)明實(shí)施例進(jìn)行了詳細(xì)介紹,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制,凡依本發(fā)明設(shè)計(jì)思想所做的任何改變都在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法,其特征在于,首先將不同階段的物理實(shí)現(xiàn)問題劃分成大量獨(dú)立的子問題,再將子問題發(fā)送到分布式的服務(wù)器群上進(jìn)行求解以達(dá)到更快的設(shè)計(jì)實(shí)現(xiàn);接著采用分布式的計(jì)算資源管理伺服程序進(jìn)行分布式計(jì)算資源分配、管理和回收,以達(dá)到分布式計(jì)算資源的優(yōu)化管理;最后采用子問題數(shù)據(jù)緩沖池和計(jì)算結(jié)果數(shù)據(jù)緩沖池,使得在求解子問題和同步計(jì)算結(jié)果的同時(shí),能最小化數(shù)據(jù)更新延遲。
2.根據(jù)權(quán)利要求1所述的大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法,其特征在于,所述的將不同階 段的物理實(shí)現(xiàn)問題劃分成大量獨(dú)立的子問題,再將所有的子問題分別發(fā)送到分布式的服務(wù)器群上進(jìn)行求解以達(dá)到更快的設(shè)計(jì)加速的具體方法如下: 主機(jī)劃分任務(wù)線程將所執(zhí)行的任務(wù)劃分為大量可以獨(dú)立求解的子問題,并將子問題一一發(fā)送到子問題隊(duì)列池上,主機(jī)的N個(gè)發(fā)送子問題線程,將從子問題隊(duì)列池上一個(gè)接一個(gè)地獲取子任務(wù),并將其發(fā)送給分布式計(jì)算機(jī)群上對應(yīng)的計(jì)算線程,分布式計(jì)算線程獲取子任務(wù)、即進(jìn)行計(jì)算處理、然后將計(jì)算結(jié)果發(fā)送給主機(jī)上的相對應(yīng)的發(fā)送該子問題的線程線程,然后主機(jī)發(fā)送子問題線程繼續(xù)從子問題池中獲取下一個(gè)子任務(wù)并發(fā)送給相應(yīng)的分布式計(jì)算線程,如此循環(huán)直至所有子問題任務(wù)全部計(jì)算完畢;所述的分布式計(jì)算,將所有子問題求解的大量計(jì)算任務(wù)安排給了分布式服務(wù)器計(jì)算,主機(jī)本身可以節(jié)約時(shí)間去執(zhí)行任務(wù)劃分和數(shù)據(jù)結(jié)果同步,以此達(dá)到更快的加速設(shè)計(jì)。
3.根據(jù)權(quán)利要求1所述的大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法,其特征在于,所述的采用分布式的計(jì)算資源管理伺服程序進(jìn)行分布式計(jì)算資源分配、管理和回收,以達(dá)到分布式計(jì)算資源的優(yōu)化管理的具體方法如下: 每臺(tái)分布式服務(wù)器群上均運(yùn)行一個(gè)分布式計(jì)算資源管理伺服進(jìn)程,該進(jìn)程開發(fā)一個(gè)固定的通信端口,負(fù)責(zé)偵聽和接受所有來自各個(gè)主機(jī)的連接和任務(wù)請求,計(jì)算資源管理伺服進(jìn)程能執(zhí)行以下任務(wù)請求:請求分配計(jì)算資源并啟動(dòng)計(jì)算進(jìn)程、查詢計(jì)算資源、停止計(jì)算資源以及自動(dòng)回收僵尸計(jì)算資源。
4.根據(jù)權(quán)利要求1所述的大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法,其特征在于,所述的采用子問題數(shù)據(jù)緩沖池和計(jì)算結(jié)果數(shù)據(jù)緩沖池,使得在求解物理實(shí)現(xiàn)子問題和同步計(jì)算結(jié)果的同時(shí),能最小化數(shù)據(jù)更新延遲的具體方法如下: 主程序的劃分子任務(wù)線程、子任務(wù)發(fā)送和求解結(jié)果接收的若干子線程、以及結(jié)果同步和回寫設(shè)計(jì)數(shù)據(jù)庫線程是同時(shí)運(yùn)行的,這個(gè)是通過兩個(gè)緩沖池,子問題數(shù)據(jù)緩沖池和計(jì)算結(jié)果數(shù)據(jù)緩沖池實(shí)現(xiàn)的;三個(gè)線程并行運(yùn)行效率明顯優(yōu)于串行執(zhí)行的性能,這種實(shí)現(xiàn)方式最大程度上優(yōu)化了數(shù)據(jù)更新延遲。
5.一種米用如權(quán)利要求1-4中任意一項(xiàng)所述的大規(guī)模集成電路物理實(shí)現(xiàn)的分布式并行計(jì)算方法的系統(tǒng),其特征在于:包括文件讀取模塊(5)、多線程并行模塊(6)、總體布線模塊(I)、通道布線模塊(2)、詳細(xì)布線模塊(3)、設(shè)計(jì)規(guī)則檢查模塊(4)以及一個(gè)內(nèi)含的計(jì)算資源管理的伺服程序,所述計(jì)算資源管理的伺服程序分成主程序、客戶端伺服程序、客戶端計(jì)算程序三個(gè)部分; 所述總體布線模塊(I)、所述通道布線模塊(2)、所述詳細(xì)布線模塊(3)和所述設(shè)計(jì)規(guī)則檢查模塊(4)各有不同的任務(wù)劃分方法,所述的任務(wù)劃分方法包括按照區(qū)域劃分、按照單元行劃分和按照線網(wǎng)劃分; 該系統(tǒng)的工作過程具體劃分為以下三個(gè)階段:1)分析和劃分任務(wù)階段,主機(jī)進(jìn)程的任務(wù)劃分線程將一個(gè)總問題劃分為若干子問題,每個(gè)子問題即是一個(gè)子任務(wù),并將子問題存在一個(gè)任務(wù)緩沖池中; 2)分布式計(jì)算子任務(wù)階段,主機(jī)計(jì)算工作線程獲取子任務(wù),并發(fā)送子任務(wù)到客戶計(jì)算線程,接收客戶計(jì)算線程發(fā)回的計(jì)算結(jié)果,將計(jì)算結(jié)果寫入任務(wù)結(jié)果緩沖池; 3)任務(wù)結(jié)果合并階段,主機(jī)進(jìn)程的計(jì)算結(jié)果處理線程將任務(wù)結(jié)果緩沖池中的數(shù)據(jù)一一處理、合并并且同步到設(shè)計(jì)數(shù)據(jù)庫中; 以上三個(gè)階段的布線問題和設(shè)計(jì)規(guī)則檢查均可以劃分為各個(gè)獨(dú)立的子任務(wù),每個(gè)階段均由不同線程實(shí)現(xiàn),同時(shí)開始執(zhí)行,即一 旦滿足分布式并行計(jì)算條件,在劃分任務(wù)的同時(shí),便可以對已劃分的任務(wù)進(jìn)行計(jì)算,并同時(shí)處理已傳回結(jié)果緩沖池的數(shù)據(jù); 實(shí)現(xiàn)所述分布式計(jì)算需要首先滿足如下條件a,b,并按照步驟c_h運(yùn)行: a.主程序運(yùn)行的服務(wù)器和客戶端所在的服務(wù)器均在同一個(gè)局域網(wǎng)內(nèi),且采用相同的網(wǎng)絡(luò)共享文件服務(wù)配置,即物理實(shí)現(xiàn)程序所在的目錄映射的是網(wǎng)絡(luò)文件服務(wù)器上同一個(gè)目錄,且進(jìn)行物理實(shí)現(xiàn)設(shè)計(jì)所在的目錄也是映射在網(wǎng)絡(luò)文件服務(wù)器上相同的目錄; b.所有的服務(wù)器上均運(yùn)行一個(gè)客戶端資源管理伺服程序,該伺服程序開發(fā)一個(gè)固定端口負(fù)責(zé)偵聽所有連接請求;然后該伺服程序進(jìn)入服務(wù)循環(huán):接收主程序的計(jì)算資源請求、分配計(jì)算資源、啟動(dòng)客戶端計(jì)算程序以及接受主程序的停止計(jì)算命令來停止客戶端計(jì)算程序并回收資源; c.如果用戶需要查詢分布式服務(wù)器群中計(jì)算資源的使用情況,可以執(zhí)行查詢分布式計(jì)算資源查詢命令,該命令會(huì)遍歷分布式服務(wù)器群的IP地址,并一一連接相應(yīng)服務(wù)器上伺服程序開放的服務(wù)端口,并發(fā)送查詢命令給伺服程序,伺服程序立即統(tǒng)計(jì)計(jì)算資源使用信息并發(fā)送給主程序; d.如果主程序需要進(jìn)行分布式計(jì)算,首先向分布式服務(wù)器群申請計(jì)算資源,遍歷服務(wù)器群的IP地址,并一一連接相應(yīng)服務(wù)器上伺服程序開放的服務(wù)端口,并發(fā)送資源申請命令給伺服程序,以及發(fā)送所請求的CPU數(shù)目和需求的內(nèi)存大小,伺服程序根據(jù)目前空閑的資源狀況給主程序分配資源,如果資源不符合條件則分配失敗,否則該服務(wù)端分配成功,同時(shí)伺服程序通過系統(tǒng)調(diào)用啟動(dòng)客戶端計(jì)算程序,客戶端程序開啟相應(yīng)的計(jì)算數(shù)據(jù)傳送的通信端口,以便和主程序相應(yīng)的任務(wù)線程通信; e.主程序的任務(wù)劃分線程劃分任務(wù)為各個(gè)獨(dú)立的子任務(wù),并加入子任務(wù)池;各個(gè)任務(wù)線程從子任務(wù)池中取子任務(wù),然后將子任務(wù)通過計(jì)算數(shù)據(jù)傳送端口發(fā)送給計(jì)算服務(wù)程序的計(jì)算線程,計(jì)算線程完成計(jì)算后,將計(jì)算結(jié)果發(fā)送回主程序的任務(wù)線程,主程序的任務(wù)線程將結(jié)果加入結(jié)果隊(duì)列池;結(jié)果處理線程負(fù)責(zé)合并結(jié)果隊(duì)列池的結(jié)果并更新設(shè)計(jì)數(shù)據(jù)庫;循環(huán)下去直至所有子任務(wù)全部計(jì)算完成; f.子任務(wù)線程等待主程序的新的命令和計(jì)算任務(wù); g.當(dāng)主程序分布式計(jì)算完畢,需要執(zhí)行停止分布式計(jì)算的命令,該命令通知服務(wù)端的計(jì)算資源管理伺服程序回收計(jì)算資源; h.為了保證程序的穩(wěn)定性,使得計(jì)算資源能有效回收,客戶端的計(jì)算資源管理伺服程序需要自動(dòng)回收部分計(jì)算資源,如若主程序或者客戶程序的缺陷導(dǎo)致主程序或客戶程序奔潰而導(dǎo)致連接丟失,抑或系統(tǒng)的不穩(wěn)定而導(dǎo)致系統(tǒng)奔潰或網(wǎng)絡(luò)問題造成的通信失敗均可能造成主程序和服務(wù)程序連接丟失,則客戶端的計(jì)算資源管理伺服程序根據(jù)監(jiān)聽連接兩端的活動(dòng)狀態(tài)了,如果連接超時(shí),便回 收相應(yīng)的被占用的計(jì)算資源。
【文檔編號】G06F9/46GK104035817SQ201410321672
【公開日】2014年9月10日 申請日期:2014年7月8日 優(yōu)先權(quán)日:2014年7月8日
【發(fā)明者】陳剛, 李小南 申請人:領(lǐng)佰思自動(dòng)化科技(上海)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
漯河市| 田林县| 金川县| 瑞安市| 巴南区| 平泉县| 阳山县| 峨边| 寻甸| 黑水县| 贵港市| 建瓯市| 渭源县| 巩留县| 靖州| 咸阳市| 石泉县| 浑源县| 金堂县| 大城县| 佛山市| 敦煌市| 馆陶县| 新泰市| 理塘县| 金堂县| 光山县| 临江市| 扎兰屯市| 盱眙县| 商河县| 繁昌县| 门源| 高雄市| 建湖县| 南郑县| 新平| 彭泽县| 抚远县| 桐乡市| 宜宾市|