• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    集群掃盲篇:Linux高性能計算集群概述

    發布: 2007-7-04 12:06 | 作者: admin | 來源:  網友評論 | 查看: 56次 | 進入軟件測試論壇討論

    領測軟件測試網

    1、集群

    1.1 什么是集群

    簡單的說,集群(cluster)就是一組計算機,它們作為一個整體向用戶提供一組網絡資源。這些單個的計算機系統就是集群的節點(node)。一個理想的集群是,用戶從來不會意識到集群系統底層的節點,在他/她們看來,集群是一個系統,而非多個計算機系統。并且集群系統的管理員可以隨意增加和刪改集群系統的節點。

    1.2 為什么需要集群

    集群并不是一個全新的概念,其實早在七十年代計算機廠商和研究機構就開始了對集群系統的研究和開發。由于主要用于科學工程計算,所以這些系統并不為大家所熟知。直到Linux集群的出現,集群的概念才得以廣為傳播。

    對集群的研究起源于集群系統的良好的性能可擴展性(scalability)。提高CPU主頻和總線帶寬是最初提供計算機性能的主要手段。但是這一手段對系統性能的提供是有限的。接著人們通過增加CPU個數和內存容量來提高性能,于是出現了向量機,對稱多處理機(SMP)等。但是當CPU的個數超過某一閾值,象SMP這些多處理機系統的可擴展性就變的極差。主要瓶頸在于CPU訪問內存的帶寬并不能隨著CPU個數的增加而有效增長。與SMP相反,集群系統的性能隨著CPU個數的增加幾乎是線性變化的。圖1顯示了這中情況。

    集群系統的優點并不僅在于此。下面列舉了集群系統的主要優點:

    高可擴展性:如上所述。

    高可用性:集群中的一個節點失效,它的任務可以傳遞給其他節點?梢杂行Х乐箚吸c失效。

    高性能:負載平衡集群允許系統同時接入更多的用戶。

    高性價比:可以采用廉價的符合工業標準的硬件構造高性能的系統。

    1.2.1 集群系統的分類

    雖然 根據集群系統的不同特征可以有多種分類方法,但是一般我們把集群系統分為兩類:

    高可用(High Availability)集群,簡稱HA集群。這類集群致力于提供高度可靠的服務。

    高性能計算(High Perfermance Computing)集群,簡稱HPC集群。這類集群致力于提供單個計算機所不能提供的強大的計算能力。

    2、高可用集群

    2.1 什么是高可用性

    計算機系統的可用性(availability)是通過系統的可靠性(reliability)和可維護性(maintainability)來度量的。工程上通常用平均無故障時間(MTTF)來度量系統的可靠性,用平均維修時間(MTTR)來度量系統的可維護性。于是可用性被定義為:

    MTTF/(MTTF+MTTR)*100%

    業界根據可用性把計算機系統分為如下幾類:

    表1. 系統可用性分類

    可用比例(Percent Availability) 年停機時間(downtime/year) 可用性分類

    99.5 3.7天 常規系統(Conventional)

    99.9 8.8小時 可用系統(Available)

    99.99 52.6分鐘 高可用系統(Highly Available)

    99.999 5.3分鐘 Fault Resilient

    99.9999 32秒 Fault Tolerant

    對于關鍵業務,停機通常是災難性的。因為停機帶來的損失也是巨大的。下面的統計數字列舉了不同類型企業應用系統停機所帶來的損失。

    表 2. 停機給企業帶來的損失

    應用系統 每分鐘損失(美元)

    呼叫中心(Call Center) 27000

    企業資源計劃(ERP)系統13000

    供應鏈管理(SCM)系統 11000

    電子商務(eCommerce)系統 10000

    客戶服務(Customer Service Center)系統 27000

    隨著企業越來越依賴于信息技術,由于系統停機而帶來的損失也越拉越大。

    2.2 高可用集群

    高可用集群就是采用集群技術來實現計算機系統的高可用性。高可用集群通常有兩種工作方式:

    容錯系統:通常是主從服務器方式。從服務器檢測主服務器的狀態,當主服務工作正常時,從服務器并不提供服務。但是一旦主服務器失效,從服務器就開始代替主服務器向客戶提供服務。

    負載均衡系統:集群中所有的節點都處于活動狀態,它們分攤系統的工作負載。一般Web服務器集群、數據庫集群和應用服務器集群都屬于這種類型。

    關于高可用集群的討論很多,這里就不進行深入的闡述了。

    3、高性能計算集群

    3.1 什么是高性能計算集群

    簡單的說,高性能計算(High-Performance Computing)是計算機科學的一個分支,它致力于開發超級計算機,研究并行算法和開發相關軟件。高性能計算主要研究如下兩類問題:

    大規?茖W問題,象天氣預報、地形分析和生物制藥等;

    存儲和處理海量數據,象數據挖掘、圖象處理和基因測序;

    顧名思義,高性能集群就是采用集群技術來研究高性能計算。

    3.2 高性能計算分類

    高性能計算的分類方法很多。這里從并行任務間的關系角度來對高性能計算分類。

    3.2.1 高吞吐計算(High-throughput Computing)

    有一類高性能計算,可以把它分成若干可以并行的子任務,而且各個子任務彼此間沒有什么關聯。象在家搜尋外星人( SETI@HOME -- Search for Extraterrestrial Intelligence at Home )就是這一類型應用。這一項目是利用Inte.net上的閑置的計算資源來搜尋外星人。SETI項目的服務器將一組數據和數據模式發給Internet上參加SETI的計算節點,計算節點在給定的數據上用給定的模式進行搜索,然后將搜索的結果發給服務器。服務器負責將從各個計算節點返回的數據匯集成完整的數據。因為這種類型應用的一個共同特征是在海量數據上搜索某些模式,所以把這類計算稱為高吞吐計算。所謂的Internet計算都屬于這一類。按照Flynn的分類,高吞吐計算屬于SIMD(Single Instruction/Multiple Data)的范疇。

    3.2.2 分布計算(Distributed Computing)

    另一類計算剛好和高吞吐計算相反,它們雖然可以給分成若干并行的子任務,但是子任務間聯系很緊密,需要大量的數據交換。按照Flynn的分類,分布式的高性能計算屬于MIMD(Multiple Instruction/Multiple Data)的范疇。

    3.3 Linux高性能集群系統

    當論及Linux高性能集群時,許多人的第一反映就是Beowulf。起初,Beowulf只是一個著名的科學計算集群系統。以后的很多集群都采用Beowulf類似的架構,所以,實際上,現在Beowulf已經成為一類廣為接受的高性能集群的類型。盡管名稱各異,很多集群系統都是Beowulf集群的衍生物。當然也存在有別于Beowulf的集群系統,COW和Mosix就是另兩類著名的集群系統。

    3.3.1 Beowulf集群

    簡單的說,Beowulf是一種能夠將多臺計算機用于并行計算的體系結構。通常Beowulf系統由通過以太網或其他網絡連接的多個計算節點和管理節點構成。管理節點控制整個集群系統,同時為計算節點提供文件服務和對外的網絡連接。它使用的是常見的硬件設備,象普通PC、以太網卡和集線器。它很少使用特別定制的硬件和特殊的設備。Beowulf集群的軟件也是隨處可見的,象Linux、PVM和MPI。

    本文的以后幾部分將詳細介紹Beowulf集群系統的硬件、網絡、軟件和應用體系結構。

    3.3.2 Beowulf集群和COW集群

    象Beowulf一樣,COW(Cluster Of Workstation)也是由最常見的硬件設備和軟件系統搭建而成。通常也是由一個控制節點和多個計算節點構成。COW和Beowulf的主要區別在于:

    COW中的計算節點主要都是閑置的計算資源,如辦公室中的桌面工作站,它們就是普通的PC,采用普通的局域網進行連接。因為這些計算節點白天會作為工作站使用,所以主要的集群計算發生在晚上和周末等空閑時間。而Beowulf中的計算節點都是專職于并行計算,并且進行了性能優化。它們采用高速網(Myrinet或Giganet)上的消息傳遞(PVM或MPI)進行進程間通信(IPC)。

    因為COW中的計算節點主要的目的是桌面應用,所以它們都具有顯示器、鍵盤和鼠標等外設。而Beowulf的計算節點通常沒有這些外設,對這些計算節點的訪問通常是在管理節點上通過網絡或串口線實現的。

    因為連接COW中計算節點的通常是普通的局域網,所以COW上的高性能應用通常是象SETI@HOME 這樣的SIMD的高吞吐計算。而Beowulf無論從硬件、網絡和軟件上都對需要頻繁交換數據的MIMD應用做了特別的優化。

    3.3.3 Mosix集群

    實際上把Mosix集群放在高性能集群這一節是相當牽強的,但是和Beowulf等其他集群相比, Mosix集群確實是種非常特別的集群, 它致力于在Linux系統上實現集群系統的單一系統映象SSI(Single System Image)。Mosix集群將網絡上運行Linux的計算機連接成一個集群系統。系統自動均衡節點間的負載。因為Mosix是在Linux系統內核中實現的集群,所以用戶態的應用程序不需要任何修改就可以在Mosix集群上運行。通常用戶很少會注意到Linux和Mosix的差別。對于他來說,Mosix集群就是運行Linux的一臺PC。盡管現在存在著不少的問題,Mosix始終是引人注目的集群系統。

    參考資料

    Linux HPC Cluster Installation, IBM Redbooks, http://www.redbooks.ibm.com/

    IBM eServer xSeries Clustering Planning Guide, IBM Redbooks, http://www.redbooks.ibm.com/

    Linux Clustering with CSM & GPFS, IBM Redbooks, http://www.redbooks.ibm.com/

    Cluster Computing White Paper, Mark Baker, University of Portsmouth, UK

    Beowulf HOW-TO, http://www.beowulf-underground.org

    Beowulf Introduction and Overview, http://www.beowulf.org

    The Mosix Howto, http://www.mosix.org

    OSCAR: A packaged Cluster software stack for High Performance Computing, http://www.openclutergroup.org/

    Linux-HA Heartbeat System Design, http://www.linux-ha.org

    xCAT HOW-TO, http://www.x-CAT.org

    MPICH, http://www.mcs.anl.gov/mpi/mpich.

    PVM, http://www.epm.ornl.gov/pvm/pvm_home.html

    OpenPBS, http://www.openpbs.org/

    Maui, http://www.supercluster.org/

    Condor Manual, Condor Team, University of Wisconsin-Madison

    GFS, http://globalfilesystem.org/

    Intermezzo, http://inter-mezzo.org/

    Coda, http://www.coda.cs.cmu.edu/

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>