相關概念操作系統(tǒng)
操作系統(tǒng)是管理和控制計算機系統(tǒng)中軟硬件資源的系統(tǒng)軟件。操作系統(tǒng)的發(fā)展主要有兩條技術路線:
(1)單機操作系統(tǒng)。基于馮·諾依曼結(jié)構(gòu)、以單機為單位的資源管理和程序運行平臺。包括從最初的批處理系統(tǒng),到后來的多道程序系統(tǒng)、分時系統(tǒng)和有網(wǎng)絡功能的操作系統(tǒng)等。這類操作系統(tǒng)的典型代表有Windows,Linux,Symbian等。由于這類系統(tǒng)的資源管理以單機為單位,當應用需求增加時,其功能就會越來越復雜,系統(tǒng)程序就會越來越龐大,安全性降低。這導致用戶操作復雜、管理維護困難。
(2)網(wǎng)絡操作系統(tǒng)。這類操作系統(tǒng)以網(wǎng)絡作為資源管理和程序運行的平臺,大多是在單機操作系統(tǒng)基礎上加上協(xié)議和管理軟件構(gòu)成。典型代表有Windows7、Android、ChromeOS等。與單機操作系統(tǒng)相比,網(wǎng)絡操作系統(tǒng)具有前端功能輕載化、虛擬化、移動化和管理集中化等特點,方便了用戶的管理和維護、提高了易用性和安全性。
但是,無論是單機操作系統(tǒng),還是網(wǎng)絡操作系統(tǒng),它們都存在著系統(tǒng)過于復雜和龐大、不支持跨硬件和軟件平臺等問題。例如,支持桌面軟件的操作系統(tǒng)一般不支持移動軟件;支持Windows的應用軟件也不能在Linux上運行。1
透明計算透明計算是一種為用戶提供服務的計算。其目標是在系統(tǒng)為用戶提供服務時,讓用戶不用知道計算過程和實現(xiàn)細節(jié),只需關心系統(tǒng)能否提供所需服務和服務質(zhì)量。為了實現(xiàn)這一目標,透明計算通過網(wǎng)絡把運算和存儲分離,服務器存儲操作系統(tǒng)、應用程序以及用戶數(shù)據(jù)等軟件資源,終端接近裸機,只存儲最底層的BIOS和極少部分協(xié)議和管理程序。用戶服務需要的操作系統(tǒng)和應用程序則通過本文后續(xù)的分布式超級操作系統(tǒng)(MetaOS)從服務器中以分塊或以流的方式調(diào)度到終端上運行。由于操作系統(tǒng)、應用程序以及用戶數(shù)據(jù)都存儲在服務器上,終端是一個近乎裸機的運行平臺,因此,終端可以做到多樣、輕載、安全、易管理和維護。另外,網(wǎng)絡服務器可以存儲多種不同操作系統(tǒng)以及無數(shù)的應用程序,形成巨大的“云”,從而使用戶可以自由地從網(wǎng)上跨軟件和硬件平臺獲得所需服務。
透明計算的核心思想包括:(1)計算和存儲分離;(2)提供跨終端、跨操作系統(tǒng)平臺的操作和用戶可選擇的服務;(3)服務器和終端之間通過數(shù)據(jù)流和塊調(diào)度交換指令,云計算的超級操作系統(tǒng)對整個網(wǎng)絡資源進行一體化管理;(4)程序以流的方式被動態(tài)調(diào)度到指定的終端或服務器上執(zhí)行。1
云計算操作系統(tǒng)TransOS這是一種由谷歌等公司于2008年首先提出的網(wǎng)絡計算新模式。這種模式的主要特點在于通過網(wǎng)絡,把原來在單臺計算機中軟件的運算和存儲分開到用戶終端機和網(wǎng)絡服務器上完成。這種模式把主要軟件(含網(wǎng)統(tǒng)程序、應用程序和數(shù)據(jù))存儲在網(wǎng)絡上,而用戶的終端機只負責和用戶的交互以及獲取服務,為用戶提供服務的運算既可在網(wǎng)絡上的某臺計算服務器上完成,也可云計算正成為計算機研究和應用的熱點。
概念單機操作系統(tǒng)只能管理單機的有限資源?,F(xiàn)有的網(wǎng)絡操作系統(tǒng)還只是在單機的基礎上加上對網(wǎng)絡的支持,因此它們不能為用戶提供需要的主動服務。在云計算環(huán)境下,需要一種能夠管理網(wǎng)絡軟硬件資源,并為用戶提供服務的超級操作系統(tǒng)。為此,基于透明計算,設計了一種層次化、分布式內(nèi)核的云計算操作系統(tǒng)TransOS。與單機和現(xiàn)有的網(wǎng)絡操作系統(tǒng)相比,TransOS能夠統(tǒng)一管理由各種異構(gòu)終端、服務器、網(wǎng)絡、以及傳統(tǒng)操作系統(tǒng)等組成的網(wǎng)絡化資源,并能主動為用戶提供按需服務。1
特點TransOS具有如下幾個特點:
(1)將傳統(tǒng)操作系統(tǒng)也作為一種資源進行管理TransOS管理的資源分為三類:第一類是指由終端(群)、服務器(群)和互聯(lián)網(wǎng)絡組成的硬件平臺資源;第二類是指在上述硬件實體資源基礎上,通過設備驅(qū)動和虛擬化,形成可供TransOS管理的虛擬化資源;第三類是軟件/數(shù)據(jù)資源,包括傳統(tǒng)操作系統(tǒng)、應用程序和數(shù)據(jù)等。因此,與傳統(tǒng)操作系統(tǒng)只管理和調(diào)度應用程序和數(shù)據(jù)不同,在TransOS中,傳統(tǒng)操作系統(tǒng),如Linux,Windows等本身也是一個被管理和調(diào)度的對象。在用戶進行選擇后,相應的傳統(tǒng)操作系統(tǒng)會被TransOS調(diào)度到用戶終端上執(zhí)行,完成用戶所要求的計算任務。TransOS的任務就是統(tǒng)一管理和調(diào)度上述的三類資源,形成一個基于透明計算的云計算超級操作系統(tǒng)。
(2)分布式內(nèi)核,動態(tài)調(diào)度運行
TransOS的內(nèi)核分布在用戶終端和服務器上。如圖所示,TransOS內(nèi)核的很小一部分,駐留在終端BIOS上,其它內(nèi)核部分則駐留在服務器上。需要注意的是,圖中只畫出了一(終端)對一(服務器)的情形。在實際中,會存在多對多的情形。當終端啟動后,駐留在BIOS中的TransOS內(nèi)核部分負責獲得終端控制權,并與服務器聯(lián)系,獲得系統(tǒng)運行所需要的更多內(nèi)核代碼,并動態(tài)以塊流的方式加載到終端側(cè)執(zhí)行[10]。塊流的含義是指每次只按需從網(wǎng)絡服務器上獲取一小部分代碼或者數(shù)據(jù)塊到終端上進行計算,如此循環(huán)反復,形成從網(wǎng)絡服務器到終端的流。需要說明的是,TransOS上面支持的實例操作系統(tǒng)、應用程序以及數(shù)據(jù)等也都是以塊流的方式被動態(tài)調(diào)度到終端側(cè)執(zhí)行。
(3)運行在BIOS之上,實例操作系統(tǒng)之下
如圖所示,TransOS通過EFI(ExtensibleFirmwareInterface)等標準接口實現(xiàn)對不同終端硬件架構(gòu),如x86、ARM、MIPS等的支持。TransOS在由BIOS負責啟動運行后,會與服務器聯(lián)系,將網(wǎng)絡服務器能夠支持的實例操作系統(tǒng)顯示給終端用戶進行選擇。在用戶選擇后,再由它從服務器上以塊流方式調(diào)度用戶所選擇的實例操作系統(tǒng)到終端上執(zhí)行。
(4)分布式網(wǎng)絡化資源的統(tǒng)一管理和調(diào)度
如圖所示,TransOS管理的是一個跨網(wǎng)絡、跨終端和服務器平臺的自治網(wǎng)絡系統(tǒng)。為了能夠統(tǒng)一管理分布在不同地方的網(wǎng)絡軟硬件資源,TransOS將其功能按照運行的地點,分為TransOS客戶端和TransOS服務器端。TransOS客戶端和服務器端通過協(xié)議通信,共同維護和管理分布在不同地點的網(wǎng)絡軟硬件資源,包括終端硬件、服務器硬件、網(wǎng)絡、實例操作系統(tǒng)、應用程序及數(shù)據(jù)等,并按照用戶需求,統(tǒng)一調(diào)度相關資源,以供用戶使用。一般而言,TransOS客戶端運行在用戶終端設備上,而TransOS服務器端則運行在網(wǎng)絡服務器上。1
科學計算操作科學計算,指的是在計算機發(fā)明后利用計算機進行的科學領域的數(shù)值計算??茖W計算問題大體上包括如下三個涵義:
問題本身以及問題的解答都能夠使用數(shù)學語言予以精確描述;
如果要使用通常的數(shù)學方法來給出我們所需要的數(shù)值答案,會很麻煩或者根本無法給出;
問題以一定的科學與技術知識作為背景。
特點與應用科學計算領域主要包括氣象預報、地質(zhì)勘探、天體研究、基因研究、生命科學等,如果將工程設計也歸類到廣義的科學計算中,那么核武器模擬、航空航天設計、汽車設計、材料設計、藥物篩選等都應屬于科學計算應用。此類計算的特點在于大數(shù)據(jù)量的浮點運算,數(shù)值的變化范圍廣,屬于典型的CPU密集型應用,其中部分同時屬于I/0密集型??茖W計算應用對計算平臺的性能要求可以說是業(yè)界最高的,高速度、高精度、大容量存儲和高自動化性能缺一不可。由以上特點決定,較大規(guī)模的科學計算往往需要在超級計算機上進行。
目前在曙光4000A超級計算機上運行的典型科學計算程序有用于氣象預報的MM5和用于生物蛋白質(zhì)計算的mpiBLAST等。另外,常用來對計算機系統(tǒng)進行科學計算性能評價的Linpack Benchmark和NAS Parallel Benchmark(NPB)等測試程序也屬于此類應用。2
提升性能途徑大規(guī)模科學計算由于涉及到海量的數(shù)據(jù),即便是在高性能的超級計算機上進行,完成一次完熬計算任務的時間往往也是要以周甚至月做單位。所以提高科學計算的性能一直是計算機學科的一個主要研究方向。提高科學計算性能可以從硬件和軟件兩方面實現(xiàn)。
從硬件角度提升科學計算性能的手段主要有:
1)提高單個處理器性能和內(nèi)存帶寬,降低內(nèi)存訪問延遲:
2)擴展并行規(guī)模,即增加處理器的數(shù)量和內(nèi)存的容量;
3)提高并行通信硬件的帶寬,縮小通信延遲。
對以CPU占用為主而幾乎不需要各子進程間進行的計算密集型科學計算任務來說, 1)和2)有良好的效果。而當計算任務的顆粒度較細,各子進程問需要經(jīng)常性的同步時,對系統(tǒng)整體性能影響最大的是通信子系統(tǒng)的效能,故31是最為有效的辦法。但是無論如何,硬件更新?lián)Q代的速度相對人們不斷發(fā)展的科學計算要求,都是難以滿足需要的,同時高昂的費用也不允許人們頻繁的對硬件進行升級。并且,根據(jù)Amdahl定律,并行計算的整體效率隨著并行節(jié)點數(shù)的增加而下降。所以,根據(jù)所用硬件和具體應用的特點,有針對性的對計算中使用的系統(tǒng)軟件和應用軟件進行優(yōu)化,使硬件能夠盡可能充分的發(fā)揮出效能,是至關重要的。
通過軟件上的優(yōu)化以提升計算性能的手段主要有:
1)重新編排應用軟件自身,優(yōu)化資源使用效率,降低串行執(zhí)行部分在全部代碼中所占的比例;
2)針對操作系統(tǒng)的資源管理算法進行優(yōu)化,使管理策略更適合應用程序;
3)根據(jù)硬件的特點,針對操作系統(tǒng)和底層驅(qū)動程序進行優(yōu)化,使軟件能夠充分利用硬件資源,盡量完全發(fā)揮出硬件的性能。
4)其中,從操作系統(tǒng)角度進行的優(yōu)化具有適應面廣、針對性強、入手點多和對應用程序透明等特點,廣泛為研究人員所采用。2