董本松,趙榮彩,張 恒
(1.中原工學(xué)院 計(jì)算機(jī)學(xué)院,河南 鄭州 450007;2.中原工學(xué)院 前沿信息技術(shù)研究院,河南 鄭州 450007)
當(dāng)前,很多數(shù)據(jù)的存儲(chǔ)和傳輸都經(jīng)過(guò)各種方式加密[1],使數(shù)據(jù)更加安全。但是,加密口令一旦丟失,將給用戶帶來(lái)巨大的損失;與此同時(shí),敵對(duì)分子也會(huì)利用各種加密手段,隱藏不法行為信息,給安全部門及時(shí)獲取有效情報(bào)帶來(lái)了挑戰(zhàn)。隨著加密算法的進(jìn)步以及密鑰位數(shù)的不斷增加,口令恢復(fù)的計(jì)算規(guī)模呈指數(shù)級(jí)增長(zhǎng)[2]。針對(duì)大規(guī)模計(jì)算問(wèn)題,需要一種新型的高性能口令恢復(fù)方案,以實(shí)現(xiàn)大規(guī)模計(jì)算資源的動(dòng)態(tài)聚合,進(jìn)而實(shí)現(xiàn)對(duì)密數(shù)據(jù)的高效分析與恢復(fù)。
國(guó)內(nèi)外許多學(xué)者對(duì)Office口令恢復(fù)進(jìn)行了大量的研究,開(kāi)發(fā)了許多實(shí)用的恢復(fù)工具。AOPR(advanced office password recovery)單機(jī)版是一款專業(yè)的Office口令恢復(fù)工具,在口令恢復(fù)過(guò)程中使用CPU,但不支持GPU加速。EDPR(Elcomsoft distributed password recovery)是一款商用的口令恢復(fù)工具,支持GPU加速,但是具有平臺(tái)局限性,僅能恢復(fù)Windows上的軟件程序和文件。另外,從經(jīng)濟(jì)成本的角度來(lái)看,該軟件完成一次恢復(fù)代價(jià)較高。Hashcat自稱是世界速度最快、完全免費(fèi)且開(kāi)源的分布式口令恢復(fù)工具,但并不支持在SW26010眾核處理器上部署。如文獻(xiàn)[3-9]所示,盡管學(xué)者們對(duì)Office口令恢復(fù)做了大量的研究工作,但是口令恢復(fù)在吞吐量、效率、開(kāi)銷和速度方面仍有改進(jìn)的空間。
為了解決口令恢復(fù)的大規(guī)模計(jì)算問(wèn)題,該文提出了基于申威眾核處理器的Office口令恢復(fù)優(yōu)化方法。通過(guò)實(shí)驗(yàn)對(duì)該方法的正確性、有效性進(jìn)行了分析和驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,該方法具有并行性強(qiáng)、恢復(fù)速度快、吞吐量大等特點(diǎn)。從個(gè)人安全層面來(lái)看,有效解決了因遺忘口令造成重要數(shù)據(jù)丟失的問(wèn)題。從國(guó)家安全層面上來(lái)看,可以幫助安全部門從大規(guī)模數(shù)據(jù)中迅速獲取有效信息,對(duì)危害民族團(tuán)結(jié)和國(guó)家安全的行為進(jìn)行嚴(yán)厲打擊。
該文完成了以下工作:
(1)基于申威眾核處理器的一個(gè)主核,對(duì)Office口令恢復(fù)程序進(jìn)行了一系列的分析和測(cè)試,找出了Office口令恢復(fù)程序的性能瓶頸;
(2)結(jié)合申威眾核處理器的特點(diǎn),提出了三種Office口令恢復(fù)并行機(jī)制。如加速循環(huán)并行化、優(yōu)化全局訪存操作、提高數(shù)據(jù)傳輸效率;
(3)實(shí)現(xiàn)了申威眾核處理器的并行SW-Office口令恢復(fù)并進(jìn)行了全面評(píng)估。實(shí)驗(yàn)結(jié)果表明,基于申威眾核處理器的Office口令恢復(fù)程序具有良好的加速比。
與傳統(tǒng)多核處理器相比,國(guó)產(chǎn)自主可控申威眾核處理器具有不可替代的優(yōu)勢(shì)。SW26010眾核處理器采用具有自主知識(shí)產(chǎn)權(quán)的申威64位RISC核心指令集和片上異構(gòu)融合架構(gòu),構(gòu)建片上眾核多維并行數(shù)據(jù)通信和層次化存儲(chǔ)體系,有效地緩解了眾核處理器“通信墻”和“存儲(chǔ)器墻”兩大難題[10]。主核和從核的頻率均為1.45 GHz,主核和從核均支持256位向量化指令,峰值性能每秒超過(guò)3萬(wàn)億次雙精度浮點(diǎn)運(yùn)算,優(yōu)異的性能優(yōu)勢(shì)為研發(fā)提供了硬件基礎(chǔ)。
圖1顯示了SW26010異構(gòu)眾核處理器的體系結(jié)構(gòu)。它由4個(gè)核組,共260個(gè)核心組成,其中每個(gè)核組包含一個(gè)運(yùn)算控制核心(management processing element,MPE)和一個(gè)運(yùn)算核心陣列(computer processing elements,CPEs)。運(yùn)算核心陣列由64個(gè)運(yùn)算核心組成,并且運(yùn)算核心之間是獨(dú)立的,每個(gè)運(yùn)算核心都有一個(gè)獨(dú)立且容量為64 KB的局部存儲(chǔ)(local direct memory,LDM),LDM與主存之間支持以直接內(nèi)存訪問(wèn)(direct memory access,DMA)方式傳輸數(shù)據(jù)。運(yùn)算控制核心作為通用處理器核心,負(fù)責(zé)分配任務(wù),協(xié)調(diào)運(yùn)算單元;64個(gè)運(yùn)算核心作為加速計(jì)算核心,用來(lái)加速代碼中計(jì)算密集部分。此外,運(yùn)算核心與運(yùn)算核心之間支持以寄存器通信方式進(jìn)行通信。通過(guò)合理的硬件結(jié)構(gòu)布局,SW26010眾核處理器不僅能有效地執(zhí)行各種哈希算法,還能有效解決并行處理系統(tǒng)設(shè)計(jì)中所遇到的存儲(chǔ)、互連和任務(wù)調(diào)度等問(wèn)題[11]。
圖1 SW26010異構(gòu)眾核處理器架構(gòu)
該文以O(shè)ffice DOC 2007加密文檔為例說(shuō)明情況??诹罨謴?fù)步驟主要包括6個(gè)模塊,如Office文檔解析、預(yù)處理、口令擴(kuò)展、Hash迭代、AES128、對(duì)比驗(yàn)證等。圖2顯示了口令恢復(fù)流程,對(duì)于口令恢復(fù)時(shí)間影響最大的是來(lái)自候選口令的散列計(jì)算,其計(jì)算量占申威小型超級(jí)計(jì)算機(jī)的96.7%。
圖2 Office DOC 2007加密文檔口令恢復(fù)流程
Office口令恢復(fù)程序的主要計(jì)算包含Hash迭代、AES128。Hash的高次迭代是口令恢復(fù)的關(guān)鍵,主要通過(guò)SHA1高速迭代運(yùn)算5萬(wàn)次,每一次迭代包含了80個(gè)子循環(huán)運(yùn)算,最后生成160位的消息摘要。AES128是以Hash高次迭代的結(jié)果和部分驗(yàn)證串作為輸入,執(zhí)行口令恢復(fù)操作,主要完成對(duì)字符串的拼接、比較、AES加解密等運(yùn)算。
該文首先在SW26010眾核處理器的一個(gè)主核上移植實(shí)現(xiàn)了Office口令恢復(fù)程序。通過(guò)插樁方式對(duì)程序中各函數(shù)的運(yùn)行時(shí)間進(jìn)行測(cè)試和統(tǒng)計(jì),找出運(yùn)行時(shí)間位于前列的熱點(diǎn)函數(shù)。縮短運(yùn)行時(shí)間、提高運(yùn)行速度是程序并行化的目的。程序中最耗時(shí)的是循環(huán)迭代計(jì)算部分,解決方法是將循環(huán)迭代步分布到多個(gè)不同的從核中同時(shí)進(jìn)行計(jì)算[10],由主核負(fù)責(zé)分配任務(wù),從核負(fù)責(zé)計(jì)算任務(wù),合理地分配資源,使其效率最大化。
圖3 SW-Office代碼熱點(diǎn)分析
如圖3所示,Office口令恢復(fù)程序的熱點(diǎn)函數(shù)主要集中在Hash迭代、AES128等模塊。因此,該文分析了Office口令恢復(fù)程序的性能瓶頸,并基于國(guó)產(chǎn)自主可控平臺(tái),提出了加速循環(huán)并行化、優(yōu)化全局訪存操作、提高數(shù)據(jù)傳輸效率等優(yōu)化方法。同時(shí),結(jié)合申威眾核處理器的高效并行執(zhí)行能力,實(shí)現(xiàn)了并行SW-Office口令高效恢復(fù)。
為了解決1.3節(jié)中提出的性能瓶頸問(wèn)題,該文采用申威OpenACC進(jìn)行二次代碼移植開(kāi)發(fā),充分利用申威平臺(tái)的并行機(jī)制進(jìn)行深度并行優(yōu)化。以單核組版本為基礎(chǔ),分析驗(yàn)證優(yōu)化方法的正確性和有效性。
根據(jù)SW26010眾核處理器的體系結(jié)構(gòu)設(shè)計(jì),首先充分發(fā)揮SW26010從核的計(jì)算性能,將程序計(jì)算比較密集的部分映射到從核計(jì)算。申威OpenACC的研發(fā)是為了解決共享內(nèi)存架構(gòu)下的片內(nèi)眾核計(jì)算并行化問(wèn)題[12]。申威OpenACC支持gang、worker、vector三級(jí)并行機(jī)制。gang是粗粒度并行,worker是細(xì)粒度并行,vector是在SIMD或向量操作的指令級(jí)并行。通過(guò)對(duì)Office口令恢復(fù)程序的相關(guān)性分析和測(cè)試發(fā)現(xiàn),該程序中存在循環(huán)嵌套函數(shù),可利用申威OpenACC三級(jí)并行優(yōu)化,但循環(huán)嵌套函數(shù)中存在直接和間接不可眾核并行的部分。直接不可眾核并行的部分是無(wú)法處理的,而間接不可眾核并行的部分是可以通過(guò)技術(shù)處理的,使其能夠成為眾核并行的部分,因此在循環(huán)嵌套函數(shù)中,可直接循環(huán)并行化的部分相對(duì)較少。在程序設(shè)計(jì)過(guò)程中,如果程序完全依賴主核完成計(jì)算,在性能上將無(wú)法達(dá)到理想的效果,同時(shí)也嚴(yán)重浪費(fèi)了SW26010從核的設(shè)計(jì)功能。因此,該文充分利用SW26010的從核計(jì)算機(jī)制,采用申威OpenACC三級(jí)并行優(yōu)化,以主從加速并行模式執(zhí)行程序,主核主要完成不可眾核并行部分的計(jì)算以及通信,將開(kāi)銷較大的熱點(diǎn)循環(huán)函數(shù)映射到從核加速并行計(jì)算,如算法1所示。
算法1:加速循環(huán)并行化。
Input:PW位數(shù)上限,字符種類上限。
Output:統(tǒng)計(jì)每一個(gè)字符出現(xiàn)的次數(shù)。
1. Begin
//初始化markov_stats_buf,獲取第一個(gè)位置的字符值
2. #pragma acc parallel local(i,j,k)
3. #pragma acc loop gang
4. for i=0 to SP_PW_MAX by 1 do
5. #pragma acc loop worker
6. for j=0 to CHARSIZ by 1 do
7. #pragma acc loop vector
8.for k=0 to CHARSIZ by 1 do
9.*out++ += *in++;
//輸出每一位字符出現(xiàn)的次數(shù)
10.end for
11. end for
12. end for
13. End
如算法1所示,通過(guò)使用申威OpenACC三級(jí)并行機(jī)制,加速循環(huán)并行化將開(kāi)銷較大的熱點(diǎn)循環(huán)函數(shù)映射到64個(gè)計(jì)算從核上,每個(gè)從核由一個(gè)線程worker執(zhí)行。實(shí)驗(yàn)結(jié)果表明,該方法以單核組為基礎(chǔ),驗(yàn)證了該方法的正確性和有效性,通過(guò)運(yùn)行64個(gè)從核的循環(huán)并行函數(shù),較1個(gè)主核性能提高了約36倍。然而,由于整個(gè)程序可直接循環(huán)并行化的部分相對(duì)較少,所以提升的效果并未呈現(xiàn)出64核的理想趨勢(shì),該實(shí)驗(yàn)的結(jié)果與主核相比,SW-Office口令恢復(fù)整體性能提高了約2.68倍。
利用64個(gè)計(jì)算從核后,充分利用從核64 KB局部存儲(chǔ),減少或避免從核直接訪問(wèn)主存。從核對(duì)主存的訪問(wèn)通常分為兩種方式,一種是通過(guò)全局離散式(global load/store,gld/gst)訪問(wèn)主存,從核直接訪問(wèn)主存獲取計(jì)算所需的數(shù)據(jù),這種訪問(wèn)方式延遲很大,對(duì)程序的性能有一定的影響。另一種是通過(guò)DMA批量式訪問(wèn)主存,從核訪問(wèn)LDM的延遲很小,采用DMA傳輸方式,首先將從核計(jì)算所需的數(shù)據(jù)批量式地取到LDM中,當(dāng)從核進(jìn)行計(jì)算時(shí),直接訪問(wèn)LDM獲取所需的數(shù)據(jù),從而大大減少數(shù)據(jù)的訪存延遲,保證程序的性能。使用申威OpenACC制導(dǎo)語(yǔ)句訪問(wèn)主存時(shí),都是通過(guò)DMA批量式訪問(wèn)方式,如果未指定制導(dǎo)語(yǔ)句,則默認(rèn)采用全局離散訪問(wèn)方式。1條gld指令的延遲約為177個(gè)周期,是1次訪問(wèn)便箋存儲(chǔ)器(scratch pad memory,SPM)操作的44倍,屬于低效的訪存操作。另外,當(dāng)64個(gè)從核同時(shí)發(fā)起gld/gst指令時(shí),這些全局訪存指令將排隊(duì)依次執(zhí)行[13],這會(huì)極大地降低并行效率,導(dǎo)致更多的資源浪費(fèi),因此需要盡量減少冗余的gld/gst指令。
在性能分析工具中,penv_slave2_gld_count接口函數(shù)可以收集中間代碼中的gld/gst指令數(shù),幫助用戶發(fā)現(xiàn)冗余指令。接口函數(shù)代碼如下所示:
//主核代碼部分,初始化接口
penv_slave2_gld_init();
?
//從核函數(shù)調(diào)用
?
//從核代碼部分,統(tǒng)計(jì)接口
penv_slave2_gld_count(&ic1);
?
penv_slave2_gld_count(&ic2).
在使用了penv_slave2_gld_count接口函數(shù)后,在程序中發(fā)現(xiàn)冗余的gld/gst指令,主要是對(duì)保存在主存上的指針進(jìn)行了直接的訪問(wèn),從而導(dǎo)致程序的性能受到一定的影響。面對(duì)這種情況,首先在SPM上重新聲明一個(gè)局存指針;然后在代碼的初始化部分直接將地址賦值給SPM上的局存指針;最后,所有的指針操作直接訪問(wèn)SPM,而不是通過(guò)gld/gst訪問(wèn)主存,從而避免了從核以gld/gst方式直接訪問(wèn)主存。在單核組條件下,該方法得到了有效的驗(yàn)證,在加速循環(huán)并行化的基礎(chǔ)上,SW-Office口令恢復(fù)整體性能進(jìn)一步提高了約1.73倍。
最后,通過(guò)提升DMA傳輸帶寬來(lái)提高數(shù)據(jù)傳輸效率。對(duì)全局訪存操作進(jìn)行優(yōu)化后,由于從核上的LDM容量有限,無(wú)法直接一次性將計(jì)算數(shù)據(jù)全部拷貝到加速線程LDM中存儲(chǔ),導(dǎo)致循環(huán)中涉及的數(shù)據(jù)往往無(wú)法批量式傳輸,因此只能按照單次循環(huán)涉及的計(jì)算數(shù)據(jù)進(jìn)行傳輸,如果不能有效地優(yōu)化數(shù)據(jù)傳輸[14],則無(wú)法提高數(shù)據(jù)傳輸效率。
根據(jù)SW26010眾核處理器的體系結(jié)構(gòu)設(shè)計(jì),優(yōu)化數(shù)據(jù)傳輸需要合理地利用64 KB的LDM。LDM的設(shè)計(jì)是為了減少訪存的延遲,將計(jì)算過(guò)程中所涉及的數(shù)據(jù)傳輸至LDM的SPM上,通過(guò)SPM存儲(chǔ)方式來(lái)減少Cache實(shí)現(xiàn)的控制開(kāi)銷,同時(shí)還避免眾多運(yùn)算核心間一致性處理帶來(lái)的設(shè)計(jì)復(fù)雜性和性能下降[15]。為了解決因數(shù)據(jù)較大而無(wú)法一次性傳輸至LDM中存儲(chǔ)的問(wèn)題,該文利用申威OpenACC中的循環(huán)分塊子句tile。tile制導(dǎo)語(yǔ)句將計(jì)算所需的數(shù)據(jù)按指定的塊大小分割成兩重循環(huán),依次將從核計(jì)算中所需的數(shù)據(jù)傳輸至LDM中存儲(chǔ),方便從核計(jì)算時(shí)直接訪問(wèn)LDM獲取數(shù)據(jù),減少了從核直接訪問(wèn)主存的延遲,解決了因計(jì)算數(shù)據(jù)較大而無(wú)法直接拷入LDM中存儲(chǔ)的問(wèn)題,利用DMA實(shí)現(xiàn)批量式數(shù)據(jù)傳輸,從而提高數(shù)據(jù)的傳輸效率,如算法2所示:
算法2:提高數(shù)據(jù)傳輸效率。
Input:任意長(zhǎng)度的明文。
Output:拷貝到SPM中,計(jì)算輸出160位的消息摘要。
1. Begin
2. #pragma acc parallel copy(inits, buffers) local(round, i)
//對(duì)輸入的任意明文進(jìn)行分組,使得每一組的長(zhǎng)度為512
3. #pragma acc loop tile(512)
4.for block=0 to blockcount by 1 do
5.getwtschedule(&inputstring[block*16],schedule);
//將16份子明文分組擴(kuò)展到80份
6.#pragma acc loop tile(32)
7.for round=0 to 80 by 1 do
8. doRound(buffers,round,schedule[round]);
9.#pragma acc loop tile(32)
10.for i=0 to 5 by 1 do
11.buffers[i]+=inits[i]
12.inits[i]=buffers[i];
//輸出160位的消息摘要
13.end for
14. end for
15. end for
16. End
根據(jù)上述循環(huán)分塊的原理[16],采用申威OpenACC的制導(dǎo)語(yǔ)句tile對(duì)程序中的計(jì)算數(shù)據(jù)進(jìn)行循環(huán)分塊。每一次tile分塊的大小即從核計(jì)算所需的數(shù)據(jù)大小,通過(guò)tile子句循環(huán)分塊后,將計(jì)算所需的數(shù)據(jù)提前存儲(chǔ)在LDM中,方便從核計(jì)算時(shí)直接訪問(wèn)LDM獲取數(shù)據(jù)。當(dāng)tile尺寸增加時(shí),執(zhí)行時(shí)間縮短,性能得到優(yōu)化。但是,由于SPM的空間容量有限,當(dāng)計(jì)算160位消息摘要時(shí),循環(huán)分塊tile最大值為512。在單核組下對(duì)該方法進(jìn)行了正確性和有效性的驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,SW-Office口令恢復(fù)整體性能進(jìn)一步提高了約1.61倍。
該文提供的實(shí)驗(yàn)平臺(tái)是申威小型超級(jí)計(jì)算機(jī)系統(tǒng),系統(tǒng)由1臺(tái)管理節(jié)點(diǎn)計(jì)算機(jī)和1臺(tái)雙星服務(wù)器組成。其中雙星服務(wù)器包含1顆AST2400作為BMC(baseboard management controller)處理器,以及1顆SW26010申威眾核處理器作為1個(gè)計(jì)算節(jié)點(diǎn)。實(shí)驗(yàn)環(huán)境具體如表1所示。
表1 實(shí)驗(yàn)環(huán)境
以運(yùn)行在1個(gè)主核上的SW-Office口令恢復(fù)程序作為基準(zhǔn)測(cè)試,分別采用加速循環(huán)并行化、優(yōu)化全局訪存操作、提高數(shù)據(jù)傳輸效率三種優(yōu)化方法,在單核組下對(duì)主從核進(jìn)行性能測(cè)試對(duì)比。測(cè)試的加密文檔選擇Office DOC 2007。每項(xiàng)測(cè)試實(shí)驗(yàn)做二十次,取平均值,保留整數(shù)。圖4顯示了性能測(cè)試的結(jié)果。
圖4 SW-Office性能對(duì)比
如圖4所示,基于SW26010眾核處理器,通過(guò)加速循環(huán)并行化、優(yōu)化全局訪存操作、提高數(shù)據(jù)傳輸效率等三種方法對(duì)Office口令恢復(fù)進(jìn)行了優(yōu)化。實(shí)驗(yàn)結(jié)果表明,在加速循環(huán)并行化后,該程序的性能是原程序的約2.68倍;在優(yōu)化全局訪存操作后,性能是原程序的約4.62倍;在提高數(shù)據(jù)傳輸效率后,性能是原程序的約7.41倍。通過(guò)三種有效的方法優(yōu)化,使得SW-Office口令恢復(fù)性能得到了一定的提高,同時(shí)驗(yàn)證了所提出的三種優(yōu)化方法的正確性,從而進(jìn)一步證明了三種優(yōu)化方法對(duì)Office口令恢復(fù)程序的性能提高是有效的。
為了進(jìn)一步評(píng)估優(yōu)化方法的正確性和有效性,將與市場(chǎng)上的Office口令恢復(fù)軟件進(jìn)行性能對(duì)比分析。圖5顯示了AOPR單機(jī)版、EDPR、AccentSoft、Hashcat和SW-Office口令恢復(fù)程序的性能,選擇的測(cè)試文檔為Office DOC 2007。
圖5 各軟件的性能對(duì)比分析
如圖5所示,使用不同的口令恢復(fù)軟件對(duì)同一加密文檔進(jìn)行口令恢復(fù)時(shí),SW-Office的性能是AOPR單機(jī)版的約52.41倍,是EDPR的約10.76倍,是AccentSoft的約8.26倍,是Hashcat的約2.73倍。綜上可得,基于SW26010異構(gòu)眾核處理器的Office口令恢復(fù)程序的性能表現(xiàn)較好,進(jìn)一步證明了該優(yōu)化方法的正確性和有效性。
該文基于SW26010異構(gòu)眾核處理器實(shí)現(xiàn)了Office口令高效恢復(fù)?;赟W26010異構(gòu)眾核處理器,分析了SW-Office口令恢復(fù)程序,找出了SW-Office的熱點(diǎn)函數(shù),利用了申威眾核處理器,提出了加速循環(huán)并行化、優(yōu)化全局訪存操作、提高數(shù)據(jù)傳輸效率等優(yōu)化方法。解決了計(jì)算效率低、延遲長(zhǎng)等問(wèn)題,改進(jìn)了細(xì)粒度的線程級(jí)并行。為了驗(yàn)證三種優(yōu)化方法的正確性和有效性,首先對(duì)優(yōu)化方法進(jìn)行了實(shí)驗(yàn)測(cè)試,并對(duì)其性能進(jìn)行了統(tǒng)計(jì),得到的性能結(jié)果優(yōu)于原程序。然后對(duì)優(yōu)化后的性能與市場(chǎng)上同類軟件的性能進(jìn)行實(shí)驗(yàn)對(duì)比和分析,進(jìn)一步驗(yàn)證了三種優(yōu)化方法的正確性和有效性,從而使SW-Office口令恢復(fù)程序的性能與市場(chǎng)上同類軟件相比有較好的性能改善,進(jìn)而能夠較好地滿足實(shí)際的計(jì)算需求。
根據(jù)Amdahl定律可知,程序的加速比潛力取決于可以并行化部分的比例。目前只用了1個(gè)核組,驗(yàn)證了所提出方法的正確性和有效性。接下來(lái)將擴(kuò)充到4個(gè)核組,同時(shí),再進(jìn)行向量化,充分挖掘代碼的并行性,更有效地處理數(shù)據(jù)依賴性,充分發(fā)揮程序的加速比潛力,以盡可能發(fā)揮申威26010眾核處理器的各種并行機(jī)制,最大限度地提升程序的執(zhí)行效率。