陳玉潔,張 莉
(清華大學 微電子所,北京 100084)
EDA(電子設計自動化)設計環(huán)境是進行集成電路設計不可缺少的條件,其中包括計算機硬件、EDA軟件、集成電路設計資源(IP-intellectual property模塊)和工藝資源及網(wǎng)絡等。隨著芯片設計規(guī)模和設計復雜度的增大,對適應EDA應用特點的硬件環(huán)境提出了更高的要求。
過去EDA設計環(huán)境大多基于Unix平臺,因為從硬件角度來說,EDA工具往往需要容量大、穩(wěn)定性好的服務器,因此進行大規(guī)模芯片設計時,采用SUN、HP等品牌服務器、工作站的較多。隨著Linux技術(shù)的快速發(fā)展,EDA工具也從過去的Unix平臺轉(zhuǎn)向Linux平臺。相比Unix平臺,Linux平臺具有性價比高、應用程序支持性好、靈活性好的特點。
由于設計規(guī)模不斷擴大以及用戶數(shù)量的增加,服務器的數(shù)量一直處于上升的態(tài)勢,如果每臺服務器都需要設定相同的賬號,并且安裝同樣的應用軟件,會有大量重復性的賬號維護和軟件維護工作,并出現(xiàn)用戶數(shù)據(jù)分散等問題,不利于集中管理。為了集中管理用戶的認證信息以及用戶的數(shù)據(jù),采用了“NIS+NFS”的管理辦法,NIS提供身份驗證,NFS配合提供所需的磁盤空間?!癗IS+NFS”模式支持Unix和Linux平臺,將多臺服務器的用戶管理和數(shù)據(jù)管理工作集中在一臺服務器上,集中化的存儲更利于備份和冗余,維護便捷,降低了管理成本[1-2]。
隨著用戶規(guī)模和服務器數(shù)量的不斷增加,這種模式也產(chǎn)生了新的問題:首先,由于用戶登錄的目標服務器的不唯一性,導致各個服務器資源利用率不均衡,有的機器訪問繁忙,CPU、內(nèi)存等占用率接近滿負荷,而有的空閑,降低了使用效率;其次,對管理員來說,需要管理多臺單機服務器,重復性工作較多,管理不便。因此,如何有效發(fā)揮服務器的使用效率,避免多人使用1臺服務器出現(xiàn)“堵塞”,如何解決資源分配和合理調(diào)度是當前急需解決的問題。
高性能計算集群采用將計算任務分配到集群的不同節(jié)點的方式來提高計算能力,因而主要應用在科學計算領域。隨著集群技術(shù)的發(fā)展,高性能計算集群的軟硬件價格顯著下降,同時,并行計算軟件智能化程度的提高,使計算管理軟件也更易于操作。因此,計算機集群系統(tǒng)得到越來越廣泛的應用[3-4]。
高性能計算通常是自動調(diào)度批處理任務隊列,適合后臺運行多個并行任務,而EDA應用大多為交互式的,需要使用圖形界面,執(zhí)行任務模式為串行模式。因此,利用集群系統(tǒng)實現(xiàn)EDA應用的主要目的在于,能根據(jù)集群系統(tǒng)負載均衡的原則,有效地實現(xiàn)登錄節(jié)點資源的自動分配調(diào)度,同時保證單任務的交互式應用模式?;谶@樣目的,我們構(gòu)建了一個適合集成電路設計應用特點的小型EDA集群系統(tǒng)。
2.1.1 硬件環(huán)境
(1)管理節(jié)點(也作為存儲節(jié)點、登錄節(jié)點、IO節(jié)點)包括:1臺DELL R510服務器,2個Intel E5606 4核處理器(2.13GHz)和24GB內(nèi)存;
(2)計算節(jié)點包括:8臺DELL刀片服務器,每個刀片2個Intel 5645 6核處理器(2.4GHz)和48GB內(nèi)存;
(3)IO交換機包括:DELL PC6248千兆以太網(wǎng)交換機;
(4)管理網(wǎng)絡包括:1套GigaByte Ethernet;
(5)存儲包括:12塊2TB SAS(7200轉(zhuǎn))硬盤。
2.1.2 系統(tǒng)軟件
操作系統(tǒng)為 RedHat Enterprise 5.7,64bit;集群管理為Rocks 5.4;作業(yè)調(diào)度為SUN Grid Engine 6.2;集群工具為Intel Cluster Studio 2011XE;性能監(jiān)控為 Paramon V2.0.0、Paratune V2.0.0。
2.1.3 應用軟件
世界主流EDA廠商Cadence、Synopsys、Mentor的從頂層到底層的全套設計軟件包括:系統(tǒng)級設計、功能驗證、IC綜合及布局布線、模擬、混合信號及射頻IC設計、全定制IC設計、物理驗證和硬件仿真建模等[5-8]。
網(wǎng)絡拓撲結(jié)構(gòu)如圖1所示。

圖1 EDA集群系統(tǒng)網(wǎng)絡拓撲圖
管理節(jié)點在內(nèi)網(wǎng)的IP地址為192.168.1.251,8個計算節(jié)點配置內(nèi)網(wǎng)地址為192.168.1.1—192.168.1.8,主機名分別對應為c0101—c0108。管理節(jié)點也作為登錄節(jié)點,與校園網(wǎng)相連,并可通過防火墻讀取EDA軟件的license(許可證),計算節(jié)點則通過管理節(jié)點設置NAT地址轉(zhuǎn)換與外部通信。EDA工具軟件和用戶的數(shù)據(jù)都安裝在存儲系統(tǒng)的文件夾中,并在計算節(jié)點上共享相應的文件夾,實現(xiàn)數(shù)據(jù)的一致性和統(tǒng)一管理。
相比單機服務器而言,集群系統(tǒng)的使用比較方便,只需增加“qlogin”命令,由于計算節(jié)點是內(nèi)網(wǎng)的IP地址,而用戶要以圖形界面方式通過校園網(wǎng)訪問節(jié)點,就需要設置環(huán)境變量$DISPLAY,將圖形顯示在本地窗口。登錄節(jié)點只作為用戶登錄,不提供計算和交互式任務,系統(tǒng)根據(jù)資源分配和調(diào)度情況將任務自動分配到計算節(jié)點上進行。
以下是使用交互式圖形界面的登錄方式提交批處理的作業(yè)任務,使用SGE提交作業(yè),這里不作詳述。
3.1.1 用vnc登錄方法
(1)登錄管理結(jié)點console;
(2)在管理結(jié)點console的terminal執(zhí)行:
qlogin(系統(tǒng)將根據(jù)計算結(jié)點的負載情況,自動選擇一個計算結(jié)點,比如c0107);
export DISPLAY=192.168.1.251:*.0???(*號代表vnc的序列號);
(3)在管理結(jié)點console的terminal窗口執(zhí)行:xhost+;
(4)在計算結(jié)點的terminal執(zhí)行交互式作業(yè)。
3.1.2 用其他方式(比如broadcast)登錄步驟
(1)登錄管理結(jié)點console;
(2)在管理結(jié)點console的terminal執(zhí)行:
echo$DISPLAY
qlogin(系統(tǒng)將根據(jù)計算結(jié)點的負載情況,自動選擇一個計算結(jié)點,比如c0107);
export DISPLAY=* (將*號改成“echo$DISPLAY”得到的值);
(3)在管理結(jié)點console的terminal窗口執(zhí)行:
xhost+;
(4)在計算結(jié)點的terminal執(zhí)行交互式作業(yè)。
Rocks是一個十分方便的集群管理軟件,不但安裝和管理比較容易,還自帶了許多管理和應用軟件。以賬號管理為例,所有的賬號管理工作都僅在管理節(jié)點進行,如需增加用戶,只要在管理節(jié)點執(zhí)行下面的命令添加賬戶user1:
#useradd user1
#passwd user1
然后使用下面的命令同步到所有節(jié)點:
#rocks sync users。
另外,集群系統(tǒng)具有良好的可擴展性,現(xiàn)有設備可最多擴展至24個節(jié)點,利用Rocks可以方便地在系統(tǒng)中增加和刪除節(jié)點。
使用Ganglia軟件監(jiān)控集群系統(tǒng)性能,包括CPU、內(nèi)存、硬盤利用率、I/O負載、網(wǎng)絡流量情況等,通過曲線可以看到每個節(jié)點的工作狀態(tài),對合理調(diào)整、分配系統(tǒng)資源、提高系統(tǒng)性能起到重要作用。
在瀏覽器地址欄輸入http://管理節(jié)點IP/ganglia,即可進入Ganglia頁面,查看集群系統(tǒng)性能和每個節(jié)點的狀態(tài)(見圖2、圖3)。

圖2 系統(tǒng)性能監(jiān)控圖示

圖3 節(jié)點狀態(tài)圖示
使用集群之前,用戶登錄時對于服務器的選擇依賴于用戶的主觀判斷,用戶并不知道所選擇服務器的負載情況,從而可能造成某一服務器的超載,而其他服務器空閑,導致負載的不均衡。有的登錄軟件,如Exceed、xmanager,可以顯示服務器上已經(jīng)登錄的用戶數(shù)量,但用戶的數(shù)量不能反映系統(tǒng)的負載情況。有的EDA工具需要占用更多的硬件資源,有時用戶的一個大規(guī)模電路仿真任務就可能會導致內(nèi)存溢出,影響他人的使用。
利用EDA集群系統(tǒng)的資源自動調(diào)度和分配機制,用戶登錄哪個節(jié)點由系統(tǒng)根據(jù)負載情況進行分配,可有效地均衡系統(tǒng)負載,提高了CPU和內(nèi)存的使用效率[9-11],避免了資源的“擁塞”現(xiàn)象。同時,集群內(nèi)各個節(jié)點的訪問能力相同,因此具有共享信息的能力,用戶在某一節(jié)點修改了數(shù)據(jù),其他節(jié)點可接收到這一信息。足夠的存儲空間和良好的管理機制,保證了數(shù)據(jù)的一致性存儲。相對單機服務器而言,用戶使用集群系統(tǒng)只需增加一個“qlogin”命令,使用方便。對于管理員來說,安裝設置完畢后,所有管理工作只需在管理節(jié)點進行,使用“rocks”同步到其他節(jié)點,便于管理。
根據(jù)集成電路設計的特點,組建了一個可靠的EDA集群系統(tǒng)環(huán)境,對應用集群系統(tǒng)進行了集成電路設計的有益嘗試,為集成電路設計相關(guān)的科研項目提供了條件支撐,并為培養(yǎng)專業(yè)技術(shù)人才提供了實驗平臺。
(References)
[1] Burk R.UNIX技術(shù)大全:系統(tǒng)管理員卷[M].北京:機械工業(yè)出版社,1999.
[2] 閻映炳,劉雪潔.Linux系統(tǒng)與網(wǎng)絡管理教程[M].北京:電子工業(yè)出版社,2010.
[3] 柴亞輝,沈文楓,張倬,等.Cell BE高性能計算實驗平臺設計與實現(xiàn)[J].實驗室研究與探索,2011,30(5):68-71.
[4] 呂麗平,臧國輕.基于LVS服務器集群的研究[J].電腦知識與技術(shù),2010,6(21):5754-5756.
[5] 謝麗芳,何毅.基于AIX集群的GAUSSIAN 03并行計算系統(tǒng)的構(gòu)建[J].實驗技術(shù)與管理,2011,28(4):259-262.
[6] 馮元,趙健.基于Linux工作站機群的網(wǎng)格服務機群實現(xiàn)[J].西安工業(yè)學院學報,2005,25(1):48-51.
[7] 陳玉潔,高志強,胡苑.EDA平臺的構(gòu)建實現(xiàn)[J].實驗技術(shù)與管理,2010,27(6):102-104.
[8] 陳玉潔,胡苑,高志強.EDA平臺的開放共享實踐[J].實驗技術(shù)與管理,2011,28(11):355-356.
[9] 李俊青,周恩,符天.服務器集群及負載均衡的研究[J].電腦知識與技術(shù),2009,5(26):7391-7392.
[10] 王霜,修保新,肖衛(wèi)東.Web服務器集群的負載均衡算法研究[J].計算機工程與應用,2004(25):78-80.
[11] 陳華平,孫清揚.可擴展并行Web服務器集群的實現(xiàn)技術(shù)[J].網(wǎng)絡、通信與安全,2002(3):149-151.