国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

云計(jì)算中的并行計(jì)算技術(shù)分析

2011-06-27 03:00鄭文武李先緒黃執(zhí)勤
電信科學(xué) 2011年12期
關(guān)鍵詞:集群編程分布式

鄭文武,李先緒,黃執(zhí)勤

(中國(guó)電信股份有限公司廣東研究院 廣州510630)

1 引言

云計(jì)算是一個(gè)含義豐富的概念,包括了服務(wù)、市場(chǎng)、技術(shù)等諸多方面。通常提到的IaaS、PaaS和SaaS,嚴(yán)格地說(shuō)是基于服務(wù)的術(shù)語(yǔ),并不是對(duì)技術(shù)的描述。從技術(shù)上看,云計(jì)算是對(duì)主機(jī)、存儲(chǔ)、網(wǎng)絡(luò)資源分配、使用、管理的技術(shù)。其核心是對(duì)主機(jī)資源分配、使用、管理的技術(shù),主機(jī)資源也可稱為計(jì)算資源。云計(jì)算技術(shù)包括兩個(gè)似乎對(duì)立的技術(shù),這兩個(gè)技術(shù)都是用于對(duì)資源進(jìn)行分配、使用和管理。

一個(gè)技術(shù)是對(duì)資源進(jìn)行分割,將資源的分配、使用的粒度變細(xì),主機(jī)的虛擬化就是這樣的技術(shù)。通過(guò)引入虛擬主機(jī),將物理主機(jī)的能力進(jìn)行分割,使主機(jī)計(jì)算能力的分配、使用不是基于單臺(tái)物理主機(jī),而是基于細(xì)分的虛擬主機(jī)。簡(jiǎn)單地說(shuō),虛擬化技術(shù)就是對(duì)資源進(jìn)行拆分的技術(shù)。

另一個(gè)技術(shù)是利用多個(gè)物理主機(jī)的能力完成一個(gè)任務(wù)。分布式并行計(jì)算就是這樣的技術(shù)。分布式并行計(jì)算將任務(wù)分解為多個(gè)子任務(wù)分派給主機(jī)集群中的各個(gè)主機(jī),子任務(wù)在多個(gè)主機(jī)上協(xié)調(diào)并行運(yùn)行。簡(jiǎn)單地說(shuō),分布式并行計(jì)算技術(shù)就是對(duì)資源進(jìn)行聚合的技術(shù)。事實(shí)上,分布式并行計(jì)算才更加體現(xiàn)出云計(jì)算的本質(zhì)。云計(jì)算的名稱和分布式并行計(jì)算、網(wǎng)格計(jì)算是一脈相承的。不過(guò),分布式并行計(jì)算應(yīng)該只是并行計(jì)算的一種,從下文的分析可以看出,對(duì)于云計(jì)算除了分布式并行計(jì)算這個(gè)主要的并行模式外,還有其他的并行模式。本文不僅分析分布式并行計(jì)算,還分析了非分布式的并行計(jì)算。

2 并行計(jì)算的歷史

并行計(jì)算出現(xiàn)在20世紀(jì)60年代初期,這個(gè)時(shí)期晶體管以及磁芯存儲(chǔ)器開(kāi)始出現(xiàn),處理單元變得越來(lái)越小,存儲(chǔ)器也更加小巧和廉價(jià)。這些技術(shù)的發(fā)展結(jié)果導(dǎo)致并行計(jì)算機(jī)的出現(xiàn),這一時(shí)期的并行計(jì)算機(jī)大多是規(guī)模不大的共享存儲(chǔ)多處理器系統(tǒng),即所謂大型主機(jī)。IBM 360是這一時(shí)期的典型代表。

長(zhǎng)久以來(lái),并行計(jì)算在高性能計(jì)算領(lǐng)域發(fā)展得如火如荼,并行計(jì)算的體系結(jié)構(gòu)也在不斷地變化。并行計(jì)算所依賴的平臺(tái)稱為并行機(jī),并行機(jī)由多個(gè)節(jié)點(diǎn)組成,任務(wù)被分解到各個(gè)節(jié)點(diǎn),在各個(gè)節(jié)點(diǎn)并行運(yùn)行。早期的并行節(jié)點(diǎn),并不是互相完全獨(dú)立的主機(jī),更像1臺(tái)主機(jī)的各個(gè)模塊。到了20世紀(jì)90年代,隨著網(wǎng)絡(luò)設(shè)備的發(fā)展以及MPI/PVM等并行編程標(biāo)準(zhǔn)的發(fā)布,集群架構(gòu)的并行計(jì)算機(jī)開(kāi)始出現(xiàn)。此時(shí)的并行計(jì)算硬件平臺(tái)的節(jié)點(diǎn)就是彼此獨(dú)立的主機(jī)了。

現(xiàn)代的并行機(jī)體系結(jié)構(gòu)有對(duì)稱多處理共享存儲(chǔ)并行機(jī)(symmetric multiprocesser,SMP)、分布共享存儲(chǔ)(distributed shared memory,DSM)并行機(jī)、大規(guī)模并行機(jī)(massively parallel processor,MPP)、并行向量多處理機(jī)(parallel vector processor,PVP)。所有這些體系結(jié)構(gòu)的并行機(jī)都是高高在上位于“云”端的,但和云計(jì)算沒(méi)有直接的關(guān)系。所幸的是,另外一種體系結(jié)構(gòu)的并行機(jī)出現(xiàn)了,這就是工作站(PC)機(jī) 群 (cluster of workstation (beowulf PC-cluster),COW)。

PC機(jī)群的誕生背景是微處理器性能和網(wǎng)絡(luò)帶寬的飛速發(fā)展。PC機(jī)群的誕生中止了并行計(jì)算和并行機(jī)的貴族身份,讓并行飛入到“尋常百姓家”。PC機(jī)群的性能絕不容輕視,如早期128臺(tái)Pentium 3 800 MHz處理器的PC通過(guò)6個(gè)24端口100 Mbit/s的交換機(jī)互聯(lián),其浮點(diǎn)峰值性能達(dá)到1 000億,當(dāng)時(shí)的成本不過(guò)200萬(wàn)億元人民幣,性價(jià)比比當(dāng)時(shí)最好的大型主機(jī)并行機(jī)還要高30倍。

PC機(jī)群為云計(jì)算的誕生奠定了基礎(chǔ)。Google的云計(jì)算就是在PC機(jī)群的基礎(chǔ)上發(fā)展起來(lái)的。Google的機(jī)群由遍布全球的PC通過(guò)廣域網(wǎng)連接而成。

3 并行計(jì)算概述

并行計(jì)算的實(shí)現(xiàn)層次有兩個(gè)。

·單機(jī)(單個(gè)節(jié)點(diǎn))內(nèi)部的多個(gè)CPU、多個(gè)核并行計(jì)算,雖然單節(jié)點(diǎn)內(nèi)部的并行計(jì)算不是實(shí)施云計(jì)算的主流,但由于目前多CPU、多核已經(jīng)成為主機(jī)提高性能的一個(gè)非常重要的方面。

·集群內(nèi)部節(jié)點(diǎn)間的并行計(jì)算。對(duì)于云計(jì)算來(lái)說(shuō),更加強(qiáng)調(diào)的是集群節(jié)點(diǎn)間的并行。目前,集群中的節(jié)點(diǎn)一般是通過(guò)IP網(wǎng)絡(luò)連接,在帶寬足夠的前提下,各節(jié)點(diǎn)不受地域、空間限制。所以,云計(jì)算中的并行計(jì)算在很多時(shí)候被稱作分布式并行計(jì)算。不過(guò),多CPU、多核是主機(jī)的發(fā)展趨勢(shì),所以在一個(gè)集群內(nèi),一般2個(gè)級(jí)別的并行都要求存在,集群內(nèi)多節(jié)點(diǎn)之間并行,節(jié)點(diǎn)內(nèi)部多處理器、多核并行。節(jié)點(diǎn)間的并行計(jì)算,通常就等同于常說(shuō)的分布式并行計(jì)算。

和虛擬化成熟的產(chǎn)品不同,并行計(jì)算沒(méi)有成熟的產(chǎn)品,只有相對(duì)成熟的工具。并行計(jì)算的實(shí)現(xiàn),依賴于開(kāi)發(fā)者和用戶對(duì)業(yè)務(wù)的熟悉,對(duì)并行工具正確、熟練的使用。

并行應(yīng)用軟件從需求分析到設(shè)計(jì)再到部署,可以分為3個(gè)步驟。

(1)在需求分析階段,根據(jù)業(yè)務(wù)特點(diǎn),將任務(wù)盡可能地分為可以并行執(zhí)行的多個(gè)任務(wù)。這是實(shí)現(xiàn)并行計(jì)算最基礎(chǔ)的、往往也是最有效的階段。

(2)在設(shè)計(jì)、編碼階段,采用并行工具進(jìn)行程序設(shè)計(jì)。這個(gè)階段所應(yīng)用的并行技術(shù)是最核心的并行技術(shù),難度最大,技術(shù)也不成熟,而且目前大部分技術(shù)人員對(duì)這個(gè)階段所應(yīng)用的技術(shù)還沒(méi)有足夠程度的掌握。

(3)在應(yīng)用部署階段,采用并行部署架構(gòu)和工具部署應(yīng)用。這個(gè)階段就是通過(guò)部署,使應(yīng)用所占用的設(shè)備能夠?qū)崿F(xiàn)負(fù)載均衡。負(fù)載均衡本質(zhì)上也屬于并行計(jì)算。常用的方法為采用負(fù)載均衡設(shè)備,如F5交換機(jī)、ESB等。這個(gè)階段所涉及的技術(shù)比較成熟,已為業(yè)界廣泛采用。

第二階段的并行計(jì)算就是狹義的并行計(jì)算,本文主要分析這個(gè)階段的并行計(jì)算技術(shù)。這個(gè)階段的并行計(jì)算技術(shù),就是并行程序設(shè)計(jì)的技術(shù)。

4 并行計(jì)算編程模型分析

并行計(jì)算編程模型一直是并行計(jì)算研究領(lǐng)域中的重點(diǎn)內(nèi)容,它和并行計(jì)算機(jī)體系結(jié)構(gòu)緊密相關(guān)。共享存儲(chǔ)體系結(jié)構(gòu)下的并行編程模型主要是共享變量編程模型,它具有單地址空間、編程容易、可移植性差等特點(diǎn),其實(shí)現(xiàn)有OpenMP和POSIX等。分布式存儲(chǔ)體系結(jié)構(gòu)下的并行編程模型主要有消息傳遞編程模型和分布式共享編程模型兩種。消息傳遞編程模型的特點(diǎn)是多地址空間、編程困難、可移植性好,其實(shí)現(xiàn)有 MPI、PVM等;分布式共享編程模型是指有硬件或軟件的支持,在分布式體系結(jié)構(gòu)下實(shí)現(xiàn)的具有共享變量編程模型特點(diǎn)的編程模型。后者可以按照硬件或軟件的實(shí)現(xiàn)分為DSM和SVM,其實(shí)現(xiàn)有TreadMark和JiaJia等,目前研究熱點(diǎn)的分割全局地址空間(PGAS)模型的研究有UPC等代表,具有很強(qiáng)的發(fā)展?jié)摿Α?/p>

并行計(jì)算編程模型一般包括兩類:一類是在原有串行編程語(yǔ)言基礎(chǔ)上,引入并行控制機(jī)制,提供并行API、運(yùn)行庫(kù)或者并行編譯指令,這類模型包括OpenMP、MPI以及大家廣為熟悉的MapReduce;另一類則是并行編程語(yǔ)言,其語(yǔ)言本身就是基于并行算法的,相對(duì)影響比較大的主要有Erlang。

前面說(shuō)過(guò),并行計(jì)算的實(shí)現(xiàn)有兩個(gè)層次,一個(gè)是集群節(jié)點(diǎn)間的并行,另一個(gè)節(jié)點(diǎn)內(nèi)的并行。OpenMP一般用于實(shí)現(xiàn)節(jié)點(diǎn)內(nèi)并行,MPI一般用于實(shí)現(xiàn)節(jié)點(diǎn)間的并行;而Erlang既可以實(shí)現(xiàn)節(jié)點(diǎn)間的并行,也可以實(shí)現(xiàn)節(jié)點(diǎn)內(nèi)的并行。

對(duì)于大家已經(jīng)比較熟悉的MapReduce,本文就不再做分析。本文重點(diǎn)分析OpenMP、MPI和Erlang這3個(gè)并行計(jì)算編程技術(shù)。

4.1 OpenMP

目前從x86到小型機(jī),多核是CPU的主流,對(duì)于單線程(single thread)的程序,多核的處理器并沒(méi)有辦法提升它的處理效能;對(duì)于多線程(multi thread)的程序,就可以通過(guò)不同的核同時(shí)計(jì)算來(lái)達(dá)到提高性能的目的。當(dāng)然,多線程程序的執(zhí)行性能依賴于對(duì)任務(wù)的分解。多線程程序的編寫、維護(hù),比單線程的程序要復(fù)雜不少。一般而言,采用了多線程編程技術(shù),只要主機(jī)是多處理器、多核或者擁有同時(shí)執(zhí)行多個(gè)線程的能力,那么多線程程序的執(zhí)行性能還是遠(yuǎn)遠(yuǎn)高于單線程的。

傳統(tǒng)的多線程程序編寫一般有兩種方法:

·通過(guò)調(diào)用操作系統(tǒng)功能、開(kāi)發(fā)工具自己的多線程控制語(yǔ)句或控制函數(shù)來(lái)實(shí)現(xiàn);

·采用POSIX標(biāo)準(zhǔn)和方法,利用POSIX的線程控制庫(kù)函數(shù)來(lái)實(shí)現(xiàn)。

這些方法都是通過(guò)主thread去產(chǎn)生多個(gè) thread,由主要的 thread把工作拆開(kāi),分給各 thread去運(yùn)算,最后再由主thread回收、整合結(jié)果。使用這兩種方法存在以下問(wèn)題。

·程序的開(kāi)發(fā)復(fù)雜性較單線程程序增加很多。

·第一種方法的移植性還存在問(wèn)題。

·若要具有好的擴(kuò)展性,則更加復(fù)雜。多線程應(yīng)該不只是創(chuàng)建固定數(shù)量的線程,而應(yīng)該隨著CPU核數(shù)的增加而增加線程。如果用上述方法,雖然可以實(shí)現(xiàn)良好的擴(kuò)展性,但控制十分復(fù)雜。

·多線程對(duì)多核處理器的負(fù)載均衡調(diào)度需要開(kāi)發(fā)者自己實(shí)現(xiàn),十分復(fù)雜。

使用OpenMP則解決了上述問(wèn)題。

OpenMP是多線程的一種編程方法,它的并行粒度是線程級(jí)別的。它的適用范圍是單機(jī)內(nèi)的并行計(jì)算,可以很好地利用單機(jī)內(nèi)多CPU或者多核。OpenMP就是一套API和運(yùn)行庫(kù),可以簡(jiǎn)化單機(jī)內(nèi)的多線程開(kāi)發(fā),讓設(shè)計(jì)人員和開(kāi)發(fā)人員的主要精力集中到對(duì)任務(wù)的理解和拆分上,而具體的細(xì)節(jié)交給OpenMP去完成,用OpenMP的編程效率要遠(yuǎn)遠(yuǎn)高于使用一般函數(shù)庫(kù)或者操作系統(tǒng)自帶函數(shù)庫(kù)的多線程編程,也大大優(yōu)于POSIX標(biāo)準(zhǔn)和方法。OpenMP是作為共享存儲(chǔ)標(biāo)準(zhǔn)而問(wèn)世的。它是為在多處理機(jī)上編寫并行程序而設(shè)計(jì)的一個(gè)應(yīng)用編程接口,包括一套編譯指導(dǎo)語(yǔ)句和一個(gè)用來(lái)支持它的函數(shù)庫(kù)。

OpenMP能通過(guò)偽指令,很簡(jiǎn)單地將程序多線程化。最簡(jiǎn)單的情形,甚至可以只加一行指導(dǎo)編譯程序的編譯偽指令,就可以將循環(huán)內(nèi)的語(yǔ)句并行處理了 。

OpenMP起源于C/C++,但目前已經(jīng)有OpenMP的Java開(kāi)發(fā)包,使其可以用于Java編程。

4.2 MPI

OpenMP雖然很優(yōu)秀,但只是單機(jī)內(nèi)的并行計(jì)算技術(shù)。無(wú)論是并行計(jì)算還是云計(jì)算,其并行計(jì)算的主流是主機(jī)之間的并行而并非單機(jī)內(nèi)的并行。因此,MPI(message passing interface)才是并行計(jì)算的代表性技術(shù)。

1994年5月1.0版的MPI標(biāo)準(zhǔn)誕生,該標(biāo)準(zhǔn)提出了一種基于消息傳遞的函數(shù)接口描述。目前,MPI已發(fā)展到2.0版,成為高性能計(jì)算的一種公認(rèn)標(biāo)準(zhǔn)。MPI本身并不是一個(gè)具體的實(shí)現(xiàn),而只是一種標(biāo)準(zhǔn)描述。MPI最為著名且被廣泛使用的一個(gè)具體實(shí)現(xiàn)是由美國(guó)Argoone國(guó)家實(shí)驗(yàn)室(argonne national laboratory)開(kāi)發(fā)小組完成的 MPICH,MPICH是一個(gè)免費(fèi)軟件,它提供對(duì)Fortran和C語(yǔ)言等的綁定支持,以函數(shù)庫(kù)的形式提供給開(kāi)發(fā)者使用。

采用MPI在程序設(shè)計(jì)上有較大的自由度,甚至可以用它實(shí)現(xiàn)Hadoop中的MapReduce功能。

消息傳遞方式是廣泛應(yīng)用于并行機(jī)的一種模式,特別是分布存儲(chǔ)并行機(jī)。10多年來(lái),這種模式在重要的計(jì)算應(yīng)用中已取得了實(shí)質(zhì)進(jìn)步。

在設(shè)計(jì)MPI時(shí),目標(biāo)不是選擇采用現(xiàn)存消息傳遞系統(tǒng)中的某一個(gè),而是充分利用這些系統(tǒng)的最抽象特點(diǎn)。

建立消息傳遞標(biāo)準(zhǔn)的主要優(yōu)點(diǎn)是可移植性和易于使用。以低級(jí)消息傳遞程序?yàn)榛A(chǔ)的較高級(jí)和(或)抽象程序所構(gòu)成的分布存儲(chǔ)通信環(huán)境中,標(biāo)準(zhǔn)化的效益特別明顯。消息傳遞標(biāo)準(zhǔn)的定義能提供給生產(chǎn)商清晰定義的程序庫(kù),以便他們能有效地實(shí)現(xiàn)這些庫(kù)或在某些情況下為庫(kù)程序提供硬件支持,因此加強(qiáng)了可擴(kuò)展性。

簡(jiǎn)單地說(shuō),MPI是為編寫消息傳遞程序而開(kāi)發(fā)的廣泛使用的標(biāo)準(zhǔn)。像這個(gè)接口一樣,應(yīng)為消息傳遞建立一個(gè)實(shí)際的、可移植的、有效的和靈活的標(biāo)準(zhǔn)。全部目標(biāo)如下:

·設(shè)計(jì)一個(gè)應(yīng)用編程接口 (不必為編譯器或系統(tǒng)實(shí)現(xiàn)庫(kù));

·允許有效的通信,避免存儲(chǔ)器到存儲(chǔ)器的拷貝,而允許計(jì)算和通信的重疊,盡可能給通信協(xié)同處理器卸載;

·對(duì)于接口,允許方便的 C語(yǔ)言和 Fortran 77聯(lián)接;

·設(shè)定一個(gè)可靠的通信接口,用戶不必處理通信失敗,這些失敗由基本的通信子系統(tǒng)處理;

·定義一個(gè)接口,提供更大靈活性的擴(kuò)展;

·定義一個(gè)接口,它能在基本的通信和系統(tǒng)軟件無(wú)重大改變時(shí),在許多生產(chǎn)商的平臺(tái)上實(shí)現(xiàn),接口的語(yǔ)義是獨(dú)立于語(yǔ)言的;

·接口應(yīng)設(shè)計(jì)成允許線索-安全(thread-safety)。

MPI的一個(gè)非常大的優(yōu)勢(shì)是大范圍的可移植性,在標(biāo)準(zhǔn) Unix處理器間通信協(xié)議的上層實(shí)現(xiàn)的 MPI將給工作站群機(jī)系統(tǒng)和不同種類的工作站網(wǎng)絡(luò)提供可移植性。

這個(gè)標(biāo)準(zhǔn)包括點(diǎn)對(duì)點(diǎn)通信、集合操作、進(jìn)程組、通信上下文、進(jìn)程拓?fù)浣Y(jié)構(gòu)、與 Fortran 77和 C語(yǔ)言綁定、環(huán)境管理和查詢、描述接口。

4.3 Erlang

Erlang首先是一種類似于函數(shù)的編程語(yǔ)言,這種語(yǔ)言天生就是為并行計(jì)算而設(shè)計(jì)的。本來(lái)這種比Java還古老的語(yǔ)言,一直無(wú)人問(wèn)津,但是主機(jī)的多處理器、多核的發(fā)展趨勢(shì),特別是云計(jì)算的興起,給Erlang又帶來(lái)了生機(jī)。

業(yè)界對(duì)于并行計(jì)算的探索一直沒(méi)有停止,尤其是云計(jì)算的發(fā)展促進(jìn)了并行計(jì)算各種方法、模式的發(fā)展,如Java的 Concurrency庫(kù)、Intel推出的 Threading Building Blocks庫(kù)、微軟為Robotics Studio提供的CCR庫(kù)等。但這些措施只是為先天串行的程序設(shè)計(jì)語(yǔ)言提供了后天的并行能力,屬于亡羊補(bǔ)牢。而Erlang則是先天并行的,在單臺(tái)主機(jī)上,利用多處理器和多核的優(yōu)勢(shì),Erlang將傳統(tǒng)編程方法遠(yuǎn)遠(yuǎn)甩在后面。據(jù)說(shuō)使用Erlang編寫的Yaws Web服務(wù)器,其并發(fā)性能是使用C編程的apache的15倍!根據(jù)實(shí)測(cè),apache在并發(fā)4 000連接時(shí)就已經(jīng)崩潰,而Yaws Web服務(wù)器可實(shí)現(xiàn)并發(fā)8萬(wàn)連接。

Erlang不僅是程序設(shè)計(jì)語(yǔ)言,還是包括一個(gè)類似于Java的虛擬機(jī)在內(nèi)的一個(gè)完整的平臺(tái)。通過(guò)虛擬機(jī),Erlang獨(dú)立于硬件平臺(tái)和操作系統(tǒng),在這個(gè)平臺(tái)上實(shí)現(xiàn)了網(wǎng)絡(luò)通信、內(nèi)存管理、進(jìn)程調(diào)度、并發(fā)機(jī)制和分布式計(jì)算等功能。

Erlang最初是由愛(ài)立信專門為通信應(yīng)用設(shè)計(jì)的,因此非常適合于構(gòu)建分布式、實(shí)時(shí)軟并行計(jì)算系統(tǒng)。

Erlang具有以下特點(diǎn)。

(1)并發(fā)性

Erlang的輕量級(jí)進(jìn)程可以支持極高的并發(fā)性,而且在高并發(fā)的情況下內(nèi)存使用相當(dāng)少。Erlang的并發(fā)性并不會(huì)受到宿主操作系統(tǒng)并發(fā)性的限制。

(2)分布式

最開(kāi)始Erlang的設(shè)計(jì)目標(biāo)就是實(shí)現(xiàn)分布式環(huán)境,Erlang的一個(gè)虛擬機(jī)就是Erlang網(wǎng)絡(luò)上的一個(gè)節(jié)點(diǎn)。一個(gè)Erlang節(jié)點(diǎn)可以在另一個(gè)Erlang節(jié)點(diǎn)上創(chuàng)建自己的并發(fā)進(jìn)程,而子進(jìn)程所在的節(jié)點(diǎn)可能是運(yùn)行其他操作系統(tǒng)的服務(wù)器。不同節(jié)點(diǎn)之間可以進(jìn)行極為高效而又精確的通信,就像這些通信運(yùn)行在同一個(gè)節(jié)點(diǎn)一樣。

(3)健壯性

Erlang內(nèi)部建設(shè)有多種錯(cuò)誤檢測(cè)原語(yǔ),可以通過(guò)這些原語(yǔ)來(lái)架設(shè)高容錯(cuò)性的系統(tǒng)。在分布式狀態(tài)下,可以把系統(tǒng)配置成具有Fail-over功能的分布式系統(tǒng)。當(dāng)有其他節(jié)點(diǎn)出錯(cuò)的時(shí)候,系統(tǒng)會(huì)把它的運(yùn)行場(chǎng)景自動(dòng)快速地切換到備份節(jié)點(diǎn)上。Erlang支持9個(gè)9級(jí)別的故障率,一年只有幾分鐘的故障時(shí)間。

(4)軟實(shí)時(shí)

它可以提供毫秒級(jí)別的響應(yīng)。

(5)熱代碼升級(jí)

對(duì)于不能中斷運(yùn)行的系統(tǒng),Erlang允許程序代碼在運(yùn)行系統(tǒng)中被修改。舊代碼被逐步淘汰后能被新代碼替換。在此過(guò)渡期間,新舊代碼是共存的。這也使得安裝bug補(bǔ)丁在運(yùn)行系統(tǒng)上升級(jí)而不干擾系統(tǒng)操作成為了可能。

(6)遞增式代碼裝載

用戶能夠控制代碼被裝載的細(xì)節(jié)。在嵌入式系統(tǒng)中,所有代碼通常是在啟動(dòng)時(shí)就被完全裝載。在開(kāi)發(fā)系統(tǒng)中,代碼是按需裝載的,甚至在系統(tǒng)運(yùn)行時(shí)被裝載的。如果測(cè)試到了未覆蓋的bug,那么需替換有bug的代碼。

(7)外部接口

Erlang進(jìn)程與外部世界之間的通信使用和在Erlang進(jìn)程之間通信相同的消息傳送機(jī)制。這種機(jī)制被用于和操作系統(tǒng)通信、與其他語(yǔ)言編寫的程序交互。

使用Erlang編寫出的應(yīng)用程序運(yùn)行時(shí)通常由成千上萬(wàn)個(gè)輕量級(jí)進(jìn)程組成,并通過(guò)消息傳遞相互通信。進(jìn)程間上下文切換對(duì)于Erlang來(lái)說(shuō)僅僅只是一兩個(gè)環(huán)節(jié),比起C程序的線程切換要高效得多了。

使用Erlang來(lái)編寫分布式應(yīng)用要簡(jiǎn)單得多,因?yàn)樗姆植际綑C(jī)制是透明的,對(duì)于程序來(lái)說(shuō)并不知道自己是在分布式運(yùn)行。

Erlang運(yùn)行時(shí)的環(huán)境是一個(gè)虛擬機(jī),有點(diǎn)像Java虛擬機(jī),這樣代碼一經(jīng)編譯,同樣可以隨處運(yùn)行。它運(yùn)行時(shí)的系統(tǒng)甚至允許代碼在不被中斷的情況下更新。另外,如果需要更高效的話,字節(jié)代碼也可以編譯成本地代碼運(yùn)行。

Erlang能夠創(chuàng)建和管理大量的進(jìn)程(不是操作系統(tǒng)級(jí)別的)。那些進(jìn)程在不同的操作系統(tǒng)上有同樣的行為,可以被垃圾回收,對(duì)運(yùn)行地點(diǎn)透明(location transparent),不會(huì)破壞其他進(jìn)程的運(yùn)行。任意兩個(gè)進(jìn)程間完全獨(dú)立,不共享任何狀態(tài),一切交流通過(guò)消息來(lái)傳遞,當(dāng)然也就無(wú)需上鎖。這樣的設(shè)計(jì)思想造就了適合解決如下問(wèn)題的Erlang。

(1)系統(tǒng)高度并發(fā)

Erlang具有優(yōu)秀的并行性能,特別適合高度并發(fā)操作。

(2)實(shí)時(shí)處理

在并行情況下,Erlang響應(yīng)迅速,性能優(yōu)良。

(3)計(jì)算高度分布

Erlang適合集群節(jié)點(diǎn)間的并行,也就是基于網(wǎng)絡(luò)的分布式并行。

(4)系統(tǒng)要求高度可靠

每年的脫機(jī)時(shí)間以分鐘算,甚至永不宕機(jī)。

(5)可靠性高

Erlang內(nèi)容的檢測(cè)原語(yǔ),極大地提高了系統(tǒng)的容錯(cuò)性,進(jìn)而提高了系統(tǒng)的可靠性。

(6)系統(tǒng)要求持續(xù)在線更新

對(duì)于經(jīng)常需要更新、升級(jí)的系統(tǒng),Erlang能夠在線更新,無(wú)需中斷系統(tǒng)運(yùn)行,新舊代碼可以同時(shí)運(yùn)行。

可以看出,Erlang非常適合于電信領(lǐng)域的應(yīng)用,只是它是個(gè)小眾產(chǎn)品和方案,熟悉它的人太少。其實(shí),應(yīng)該高度重視Erlang,并進(jìn)行深入研究,根據(jù)研究結(jié)果引入到支撐系統(tǒng)的開(kāi)發(fā)當(dāng)中。

5 云計(jì)算及并行計(jì)算在中國(guó)電信的應(yīng)用和研究

5.1 中國(guó)電信IT支撐系統(tǒng)實(shí)施云計(jì)算的指導(dǎo)思想、目標(biāo)和策略

隨著云計(jì)算不斷向廣度和深度發(fā)展,中國(guó)電信對(duì)于云計(jì)算的探索和研究投入很大,但在應(yīng)用上比較謹(jǐn)慎。

5.1.1 云計(jì)算實(shí)施指導(dǎo)思想

按照中國(guó)電信企業(yè)信息化戰(zhàn)略規(guī)劃的要求,根據(jù)其內(nèi)部IT支撐系統(tǒng)的特點(diǎn),密切跟蹤云計(jì)算技術(shù)的演進(jìn)趨勢(shì),充分利用云計(jì)算技術(shù)帶來(lái)的優(yōu)勢(shì),積極、務(wù)實(shí)、穩(wěn)妥地探索企業(yè)內(nèi)部MBOSS云計(jì)算技術(shù)的應(yīng)用;有效降低IT系統(tǒng)總體擁有成本,同時(shí)規(guī)避云計(jì)算應(yīng)用過(guò)程中存在的各種風(fēng)險(xiǎn),保證MBOSS穩(wěn)定、可靠、安全運(yùn)營(yíng),確保有效支撐企業(yè)業(yè)務(wù)經(jīng)營(yíng)、網(wǎng)絡(luò)運(yùn)營(yíng)和內(nèi)部管理的各項(xiàng)需求。

5.1.2 計(jì)算實(shí)施目標(biāo)

(1)降低IT系統(tǒng)總體擁有成本(TCO)

重點(diǎn)基于PC服務(wù)器構(gòu)建IaaS云計(jì)算平臺(tái),實(shí)現(xiàn)多應(yīng)用基于IaaS平臺(tái)的共享部署,提高基礎(chǔ)設(shè)施資源利用率,降低硬件成本占比,實(shí)現(xiàn)IT投資結(jié)構(gòu)的優(yōu)化及IT總體擁有成本的降低,并做到系統(tǒng)的穩(wěn)定、可靠運(yùn)行。

(2)更快、更好地滿足業(yè)務(wù)需要

在云計(jì)算適用的應(yīng)用范圍內(nèi),積極推進(jìn)云計(jì)算的實(shí)施,利用IaaS云計(jì)算平臺(tái)能根據(jù)業(yè)務(wù)需要快速分配資源并能夠彈性擴(kuò)展的特點(diǎn),實(shí)現(xiàn)應(yīng)用快速部署及處理資源動(dòng)態(tài)伸縮,更好地滿足業(yè)務(wù)需要。

(3)提升云計(jì)算平臺(tái)的管理和運(yùn)營(yíng)能力

積極推進(jìn)云計(jì)算應(yīng)用的同時(shí),加強(qiáng)云計(jì)算平臺(tái)管理系統(tǒng)建設(shè),提高平臺(tái)的自動(dòng)化配置及管理能力,加強(qiáng)IT人員云計(jì)算技術(shù)培訓(xùn),提高云計(jì)算平臺(tái)管理及運(yùn)營(yíng)能力。

目前的指導(dǎo)思想是云計(jì)算在技術(shù)上分為兩類:一類為以虛擬化為代表的資源分割技術(shù),另一類則為以并行計(jì)算為代表的資源聚合技術(shù)。

5.1.3 IT支撐云實(shí)施策略

IT支撐系統(tǒng)的云計(jì)算實(shí)施是中國(guó)電信整個(gè)云計(jì)算實(shí)施的一個(gè)非常重要的組成部分。中國(guó)電信IT支撐云的實(shí)施核心在于提高支撐系統(tǒng)的運(yùn)行效率,提高運(yùn)行的可靠性,降低系統(tǒng)的運(yùn)行成本。隨著電信用戶數(shù)量的不斷攀升、業(yè)務(wù)種類迅速增加、業(yè)務(wù)規(guī)模不斷擴(kuò)大,支撐系統(tǒng)軟件的規(guī)模和復(fù)雜性也在快速增加,超過(guò)了硬件性能的提升速度,用于購(gòu)置、維護(hù)硬件的費(fèi)用也在不斷增加。

實(shí)施基于集群架構(gòu)的并行計(jì)算,則是滿足IT支撐云核心需求的基本策略。原因如下:

·實(shí)施并行計(jì)算的集群總體性能,其性能提升可以隨集群節(jié)點(diǎn)的增加而近似線性提升,目前業(yè)界的集群節(jié)點(diǎn)已經(jīng)達(dá)到數(shù)千個(gè),集群的總體性能遠(yuǎn)遠(yuǎn)超過(guò)單臺(tái)高性能主機(jī);

·集群內(nèi)節(jié)點(diǎn)互相冗余,整個(gè)集群的可靠性遠(yuǎn)遠(yuǎn)超過(guò)單臺(tái)主機(jī);

·集群的節(jié)點(diǎn)可以采用廉價(jià)主機(jī),未來(lái)的方向是使用x86主機(jī)集群代替高性能Unix主機(jī)。

5.2 并行計(jì)算應(yīng)用現(xiàn)狀

電信支撐系統(tǒng)大多屬于高負(fù)載應(yīng)用,這些長(zhǎng)期以來(lái)需要運(yùn)行在高性能的小型機(jī)上。近年來(lái),逐漸引入并行計(jì)算已擺脫對(duì)高性能小型機(jī)的依賴,解決了硬件成本過(guò)高、性能提升有限的問(wèn)題,主要包括以下兩類。

(1)對(duì)數(shù)據(jù)庫(kù)進(jìn)行分庫(kù)是實(shí)現(xiàn)數(shù)據(jù)的分布存儲(chǔ)和并行操作

對(duì)于計(jì)費(fèi)、賬務(wù)這類海量數(shù)據(jù)的存儲(chǔ)和操作規(guī)模比較大的省公司,一般是根據(jù)地域?qū)?shù)據(jù)進(jìn)行分割,不同地域的數(shù)據(jù)存放到不同的位置,由不同的節(jié)點(diǎn)處理。這種并行比較原始,各節(jié)點(diǎn)之間耦合度很小,不需要復(fù)雜的協(xié)同。其優(yōu)點(diǎn)是對(duì)應(yīng)用無(wú)需進(jìn)行改變即可利用多節(jié)點(diǎn)的優(yōu)勢(shì)。但并行度較低,資源利用率不高。

(2)利用負(fù)載均衡工具實(shí)現(xiàn)并行計(jì)算

對(duì)于應(yīng)用層面,目前已經(jīng)較普遍地利用負(fù)載均衡工具實(shí)現(xiàn)一定程度的并行計(jì)算。4層交換機(jī)是較為常見(jiàn)的工具,此外還有中間件服務(wù)器的負(fù)載均衡功能也得到較為普遍的應(yīng)用。近幾年,企業(yè)服務(wù)總線(ESB)也逐步被引入。

除此以外,近年也在開(kāi)發(fā)階段引入并行計(jì)算。在CRM中部分采用SOA架構(gòu),模塊可以由ESB等工具進(jìn)行調(diào)度,實(shí)現(xiàn)一定程度的并行。

5.3 并行計(jì)算研究

中國(guó)電信MBOSS系統(tǒng)的支撐云建設(shè)重點(diǎn)在于并行計(jì)算。支撐系統(tǒng)云計(jì)算的實(shí)施主要不是對(duì)資源進(jìn)行分割,而是對(duì)資源進(jìn)行聚合。因?yàn)橹蜗到y(tǒng)大都屬于“重型”應(yīng)用,占用計(jì)算和存儲(chǔ)資源較多,一般單節(jié)點(diǎn)資源已經(jīng)難以滿足需求,再對(duì)單節(jié)點(diǎn)實(shí)施分割意義不大。

對(duì)于電信應(yīng)用的并行化,首先需要對(duì)應(yīng)用特點(diǎn)進(jìn)行分類,根據(jù)不同的特點(diǎn)采用不同的并行策略。并行策略,也要充分考慮到當(dāng)前的運(yùn)行狀況,在可靠性、成本等限制條件下,逐步實(shí)施。其中,可靠性是需要特別注意的。

對(duì)電信應(yīng)用的劃分,可以有多個(gè)維度。這里根據(jù)計(jì)算量、并發(fā)性和數(shù)據(jù)量的大小屬性進(jìn)行分類。具體說(shuō),這3個(gè)屬性為任務(wù)執(zhí)行時(shí)間、任務(wù)的并發(fā)量、單個(gè)任務(wù)輸入(即處理)的數(shù)據(jù)量??梢灾粚?duì)每個(gè)特點(diǎn)分為2個(gè)等級(jí):大和小,至于介于大和小之間的,則呈不典型特征,可以根據(jù)偏大還是偏小而決定,具體有待進(jìn)一步研究。目前,對(duì)屬性值大小的判斷,主要還是定性的判斷,定量的判斷有待進(jìn)一步深入研究。下面對(duì)屬性值的分類進(jìn)行示例,僅供參考。

應(yīng)用3個(gè)特點(diǎn)的2個(gè)等級(jí),可以有8個(gè)組合,但有些組合在實(shí)際中不可能存在,或者在電信行業(yè)不存在。具體見(jiàn)表1。

表1 電信應(yīng)用的劃分

根據(jù)上面的分析,在電信的實(shí)際應(yīng)用場(chǎng)景中,需要實(shí)施并行計(jì)算的有以下2類應(yīng)用:

·大任務(wù)小并發(fā)大數(shù)據(jù);

·小任務(wù)大并發(fā)小數(shù)據(jù)。下面針對(duì)具備這兩個(gè)典型特點(diǎn)的應(yīng)用,探討并行化策略。

5.3.1 大任務(wù)小并發(fā)大數(shù)據(jù)

這類應(yīng)用一般為批處理應(yīng)用。這類應(yīng)用可以按功能耦合度和數(shù)據(jù)耦合度劃分。功能耦合度指的是模塊之間的功能耦合度,數(shù)據(jù)耦合度指的是各部分?jǐn)?shù)據(jù)之間的耦合度。每個(gè)維度取“強(qiáng)”和“弱”2個(gè)值,則有表2所列4個(gè)組合。

需要指出的是,就總體而言,電信應(yīng)用屬于數(shù)據(jù)密集型應(yīng)用,在應(yīng)用邏輯上并不十分復(fù)雜。

(1)現(xiàn)狀

目前,這類應(yīng)用也做了不少集群部署,能夠進(jìn)行一定程度的負(fù)載均衡。其方法如下:是多實(shí)力部署,每臺(tái)服務(wù)器上部署相同的應(yīng)用,服務(wù)器環(huán)境配置也大致相同,實(shí)現(xiàn)方法不對(duì)應(yīng)用邏輯進(jìn)行分割,只是做多實(shí)例部署,對(duì)數(shù)據(jù)進(jìn)行靜態(tài)分割,具體如以下2個(gè)分布式實(shí)現(xiàn)方法。

·服務(wù)器在負(fù)載均衡器調(diào)度下形成集群,達(dá)到負(fù)載均衡。

表2 功能耦合度和數(shù)據(jù)耦合度組合

·對(duì)數(shù)據(jù)進(jìn)行分片,片與片之間數(shù)據(jù)基本沒(méi)有關(guān)聯(lián),不同的實(shí)例處理不同片的數(shù)據(jù)。這種情況下,只是實(shí)施了負(fù)載分擔(dān),沒(méi)有形成一個(gè)統(tǒng)一的集群,因?yàn)閷?shí)例之間沒(méi)有任何關(guān)系,也沒(méi)有統(tǒng)一的管理平臺(tái)進(jìn)行管理,不能達(dá)到真正的負(fù)載均衡。

(2)并行化策略

應(yīng)用并行化的策略,首先是總體架構(gòu)實(shí)施SOA,對(duì)于大任務(wù)的應(yīng)用更是如此。在功能上拆分的方法常常是根據(jù)任務(wù)處理的流程,將相對(duì)獨(dú)立的流程處理模塊獨(dú)立出來(lái),進(jìn)行解耦、封裝。

不過(guò),電信處理邏輯屬于商業(yè)處理邏輯,總體來(lái)說(shuō)并不復(fù)雜,從邏輯功能上對(duì)應(yīng)用進(jìn)行拆分,由于這些邏輯大多是流程性的,即使經(jīng)過(guò)解耦,在技術(shù)上可以實(shí)施并行,但由于其對(duì)應(yīng)的實(shí)際業(yè)務(wù)是流程性的,執(zhí)行必須有先后順序,所以事實(shí)上這些服務(wù)只能是分布式部署,并不一定能并行執(zhí)行。

但是,這類應(yīng)用數(shù)據(jù)量的特點(diǎn)提供了根據(jù)數(shù)據(jù)對(duì)應(yīng)用進(jìn)行拆分的可能性。從前面的現(xiàn)狀分析可以看出,目前事實(shí)上的分布式多實(shí)例部署,很多就是根據(jù)數(shù)據(jù)進(jìn)行的。電信數(shù)據(jù)有一個(gè)很重要的特點(diǎn),就是數(shù)據(jù)的地域獨(dú)立性,同一個(gè)業(yè)務(wù),不同地區(qū)的數(shù)據(jù)是彼此獨(dú)立的。如計(jì)費(fèi)數(shù)據(jù),廣州的數(shù)據(jù)和珠海的數(shù)據(jù)是彼此獨(dú)立的,雖然廣州的計(jì)費(fèi)應(yīng)用和珠海的計(jì)費(fèi)應(yīng)用是相同的。對(duì)同一個(gè)本地網(wǎng)來(lái)說(shuō),不同區(qū)的數(shù)據(jù)也是彼此獨(dú)立的,如廣州花都區(qū)的計(jì)費(fèi)數(shù)據(jù)和廣州番禺區(qū)的計(jì)費(fèi)數(shù)據(jù)是彼此獨(dú)立的。根據(jù)這個(gè)特點(diǎn),就可以進(jìn)行任務(wù)拆分,實(shí)施集群并行計(jì)算??梢赃x擇的方法有MPI和MapReduce,但是MapReduce方法目前的實(shí)現(xiàn)是基于Hadoop的開(kāi)源,并非是Google公開(kāi)的其本身所采用的,所以其具體效果有待驗(yàn)證,目前中國(guó)移動(dòng)已經(jīng)使用MapReduce進(jìn)行了較大規(guī)模的試驗(yàn),中國(guó)電信股份有限公司廣東研究院(簡(jiǎn)稱廣東電信研究院)也進(jìn)行了這方面的大量研究和測(cè)試,就廣東電信研究院的測(cè)試情況來(lái)看,基于Hadoop的MapReduce實(shí)現(xiàn),在處理大任務(wù)大數(shù)據(jù)方面效果明顯。MPI的方法經(jīng)過(guò)多年充分的實(shí)踐,應(yīng)該可以認(rèn)為非??煽浚荕PI模式處理失效節(jié)點(diǎn)方面需要設(shè)計(jì)人員予以更多的關(guān)注,因?yàn)樗旧聿荒苤苯犹幚砉?jié)點(diǎn)失效的情況,但由于電信應(yīng)用邏輯的并發(fā)特別復(fù)雜,并發(fā)屬于計(jì)算密集型,所以由應(yīng)用邏輯實(shí)現(xiàn)節(jié)點(diǎn)的管理也是可以接受的。

5.3.2 小任務(wù)大并發(fā)小數(shù)據(jù)

這類應(yīng)用一般都是實(shí)時(shí)在線處理,對(duì)相應(yīng)速度要求很高。一般應(yīng)用中的Web層以及OCS、ABM都屬于這類。這類應(yīng)用有以下特點(diǎn):

·實(shí)時(shí)性強(qiáng),用戶在線等待任務(wù)處理結(jié)果,任務(wù)處理時(shí)間短暫,響應(yīng)速度必須快速;

·并發(fā)性高,短時(shí)間內(nèi),一般會(huì)有大量請(qǐng)求發(fā)生;

·穩(wěn)定性高,這也是實(shí)時(shí)性的要求,如果服務(wù)出現(xiàn)不穩(wěn)定(指軟件故障而不是硬件故障,硬件故障有集群保證其可用性),將嚴(yán)重影響應(yīng)用的響應(yīng)速度。

(1)現(xiàn)狀

目前的解決方案也是借助負(fù)載均衡器實(shí)施集群部署,按照一定的策略,根據(jù)請(qǐng)求的特點(diǎn),將請(qǐng)求發(fā)送到集群中不同的節(jié)點(diǎn)進(jìn)行處理。

(2)并行化策略

雖然這類任務(wù)往往是Web服務(wù),已經(jīng)表現(xiàn)為SOA架構(gòu),但并行化還是首先按照統(tǒng)一標(biāo)準(zhǔn)化的SOA架構(gòu)對(duì)其進(jìn)行封裝。一般而言,這類應(yīng)用無(wú)需再進(jìn)行拆分,可以將整個(gè)應(yīng)用封裝為統(tǒng)一的、標(biāo)準(zhǔn)的SOA服務(wù)。

在算法上有2種實(shí)現(xiàn)方法:一種為依然借助負(fù)載均衡設(shè)備實(shí)現(xiàn)集群節(jié)點(diǎn)間的負(fù)載均衡,在節(jié)點(diǎn)內(nèi)部采用OpenMP實(shí)現(xiàn)節(jié)點(diǎn)內(nèi)部的并行運(yùn)行;另一種為采用Erlang實(shí)現(xiàn)全面、高效率的并行,集群節(jié)點(diǎn)間和節(jié)點(diǎn)內(nèi)部的并行計(jì)算都由Erlang及其運(yùn)行環(huán)境實(shí)現(xiàn)。

(3)并行化策略總結(jié)

根據(jù)上面的分析,應(yīng)用的并行化按照以下兩個(gè)步驟實(shí)施:對(duì)應(yīng)用實(shí)施SOA服務(wù)化封裝;根據(jù)特點(diǎn),在算法模式上按照表3所列實(shí)施。

6 結(jié)束語(yǔ)

并行計(jì)算和虛擬化一起構(gòu)成了云計(jì)算技術(shù)的骨干。對(duì)于大型應(yīng)用系統(tǒng)實(shí)施云計(jì)算的主要內(nèi)容就是實(shí)施并行計(jì)算。并行計(jì)算技術(shù)除了目前炙手可熱的MapReduce以外,值得推薦的還有OpenMP、MPI和Erlang。這3個(gè)技術(shù)主要應(yīng)用于并行程序的開(kāi)發(fā),和其他并行策略 (如SOA)一起,用于從根本上實(shí)現(xiàn)應(yīng)用的并行化。中國(guó)電信在支撐云的研究、建設(shè)中,計(jì)劃在多個(gè)層面實(shí)施并行計(jì)算,以提高應(yīng)用運(yùn)行效率和可靠性,降低采購(gòu)和運(yùn)營(yíng)成本。對(duì)于條件成熟的應(yīng)用,擬從業(yè)務(wù)并行開(kāi)始,在開(kāi)發(fā)層面即實(shí)現(xiàn)并行計(jì)算。目前,經(jīng)過(guò)研究分析和測(cè)試,針對(duì)不同的應(yīng)用,初步制定出不同的并行化解決方案,采用合適的并行計(jì)算技術(shù)實(shí)現(xiàn)不同層次的并行計(jì)算。

表3 并行化策略算法模式

1 中國(guó)電信股份有限公司廣東研究院.IT支撐云技術(shù)和建設(shè)研究報(bào)告,2011

2 Joe Armstrong.Programming Erlang:Software for a Concurrent World.Pragmatic Bookshelf,2007

3 施巖.云計(jì)算研究及Hadoop應(yīng)用程序的開(kāi)發(fā)與測(cè)試.北京郵電大學(xué)碩士學(xué)位論文,2008

4 宋偉.關(guān)聯(lián)規(guī)則并行算法的研究與分析.鄭州大學(xué)碩士學(xué)位論文,2011

5 邱涌.并行歸并排序算法及其在PC集群中的實(shí)現(xiàn).鄭州大學(xué)碩士學(xué)位論文,2004

6 顧宏軍.走近Erlang世界.http://tech.it168.com/j/2008-01-30/200801301830516.shtml,2004

7 李俊照,羅家融.基于Linux集群的并行計(jì)算.計(jì)算機(jī)測(cè)量與控制,2004(11)

8 李秀芳.基于多核的多線程算法并行優(yōu)化.鄭州大學(xué)碩士學(xué)位論文,2008

9 單瑩.科學(xué)計(jì)算程序的綜合優(yōu)化技術(shù)研究.國(guó)防科學(xué)技術(shù)大學(xué)碩士學(xué)位論文,2005

猜你喜歡
集群編程分布式
編程,是一種態(tài)度
元征X-431實(shí)測(cè):奔馳發(fā)動(dòng)機(jī)編程
編程小能手
紡織機(jī)上誕生的編程
海上小型無(wú)人機(jī)集群的反制裝備需求與應(yīng)對(duì)之策研究
一種無(wú)人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
分布式光伏熱錢洶涌
分布式光伏:爆發(fā)還是徘徊
Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
勤快又呆萌的集群機(jī)器人
浏阳市| 海原县| 乌拉特后旗| 漯河市| 托克托县| 巴彦县| 丁青县| 开原市| 巧家县| 富锦市| 通城县| 石林| 沛县| 永丰县| 隆回县| 六枝特区| 江孜县| 夏河县| 怀化市| 文昌市| 灵山县| 濮阳市| 苍南县| 麻阳| 云安县| 清新县| 宾阳县| 盘山县| 曲水县| 新乡市| 林周县| 科技| 新沂市| 韶关市| 陕西省| 陵川县| 安岳县| 昭苏县| 镇原县| 彝良县| 小金县|