提供一種確定性的、非死鎖技術(shù),用于在多線(xiàn)程計(jì)算環(huán)境中取得分布式合意。該技術(shù)包括在多個(gè)進(jìn)程之間通信,以便為分布在多個(gè)進(jìn)程上的一組參與線(xiàn)程的通信程序建立候選標(biāo)識(shí)符;在多個(gè)進(jìn)程之間通信,以便在多個(gè)線(xiàn)程的每個(gè)參與線(xiàn)程處檢查是否能在其進(jìn)程要求該候選標(biāo)識(shí)符,如果能,就要求該候選標(biāo)識(shí)符,作為新標(biāo)識(shí)符,由此建立通信程序。舉例來(lái)說(shuō),該技術(shù)可以通過(guò)消息傳送接口(MPI)庫(kù)內(nèi)的子例程調(diào)用來(lái)實(shí)現(xiàn)。(*該技術(shù)在2020年保護(hù)過(guò)期,可自由使用*)
【技術(shù)實(shí)現(xiàn)步驟摘要】
【國(guó)外來(lái)華專(zhuān)利技術(shù)】
本專(zhuān)利技術(shù)涉及計(jì)算機(jī)系統(tǒng)中管理共享資源的功能,更具體來(lái)說(shuō),涉及一種用于例如在消息傳送接口(MPI)庫(kù)內(nèi)實(shí)現(xiàn)的線(xiàn)程安全的分布式合意技術(shù)(thread-safe distributed consensus technique)。為了更好地理解本專(zhuān)利技術(shù)的背景,首先來(lái)解釋一些術(shù)語(yǔ)。本領(lǐng)域中有名的術(shù)語(yǔ)一對(duì)稱(chēng)多處理器(SMP),指的是計(jì)算系統(tǒng)中硬件的一個(gè)方面,更具體來(lái)說(shuō),涉及處理器平面(planar)本身的物理布局和設(shè)計(jì)。這類(lèi)多個(gè)處理器單元的一個(gè)特點(diǎn)是對(duì)全局存儲(chǔ)器的共享和對(duì)SMP系統(tǒng)的輸入/輸出(I/O)相同使用權(quán)。與現(xiàn)代復(fù)雜計(jì)算系統(tǒng)普遍相關(guān)的另一個(gè)術(shù)語(yǔ)是“線(xiàn)程”。術(shù)語(yǔ)“線(xiàn)程”的大體意義只是指在計(jì)算機(jī)執(zhí)行的應(yīng)用軟件和操作系統(tǒng)的內(nèi)核中經(jīng)過(guò)的簡(jiǎn)單執(zhí)行路徑。本領(lǐng)域中人們都知道,普遍允許每個(gè)進(jìn)程映象(process image)中有多個(gè)這種線(xiàn)程。POSIX標(biāo)準(zhǔn)中現(xiàn)在已經(jīng)收入了線(xiàn)程標(biāo)準(zhǔn)。例如在K.Robbins和S.Robbins所作的名為《實(shí)用UNIX程序設(shè)計(jì)一并發(fā)、通信和多線(xiàn)程指南》(Practical UNIX Programming-A Guide to Concurrency,Communication and Multi-Threading)(Prentice Hall PTR出版,1996)一文中介紹了POSIX標(biāo)準(zhǔn)下的基本線(xiàn)程管理。本文在描述本專(zhuān)利技術(shù)實(shí)施例時(shí)所用的另一個(gè)概念是鎖(locks)。在現(xiàn)代計(jì)算系統(tǒng)中通常有一些關(guān)鍵的代碼段和共享數(shù)據(jù)結(jié)構(gòu),諸如共享庫(kù),它們的完整性對(duì)系統(tǒng)的正確運(yùn)行及其重要。概括來(lái)說(shuō),鎖是在軟件(或硬件)中用來(lái)“串行化”對(duì)這些關(guān)鍵的代碼段和/或共享數(shù)據(jù)結(jié)構(gòu)的訪(fǎng)問(wèn)的設(shè)備。另一個(gè)要注意的術(shù)語(yǔ)是多線(xiàn)程安全(multithread-safe)的代碼的概念。如果競(jìng)爭(zhēng)相同資源或例程的多個(gè)執(zhí)行線(xiàn)程被串行化,使得能對(duì)所有線(xiàn)程保證數(shù)據(jù)完整性,則代碼被視為是線(xiàn)程/多線(xiàn)程安全的。實(shí)現(xiàn)這一點(diǎn)的一種方法是借助上述的鎖。作為另外的背景,消息傳送接口(MPI)標(biāo)準(zhǔn)定義下列語(yǔ)義并行作業(yè)中的進(jìn)程在一個(gè)保證域內(nèi)消息完整性的通信域(communicationdomain)(以下也稱(chēng)“通信程序”)內(nèi)交換消息。在一個(gè)域中發(fā)出的消息不干涉另一個(gè)域中發(fā)出的消息。當(dāng)并行作業(yè)開(kāi)始時(shí),各進(jìn)程的子集可以合作,以按需建立單獨(dú)的通信域。申請(qǐng)人認(rèn)識(shí)到多線(xiàn)程環(huán)境中產(chǎn)生的一個(gè)問(wèn)題,其中多個(gè)線(xiàn)程可能同時(shí)試圖獲得通信域。如果沒(méi)有辦法來(lái)解決這個(gè)問(wèn)題,就可能會(huì)發(fā)生死鎖。所以需要一種確定性的、非死鎖的技術(shù)來(lái)實(shí)現(xiàn)多線(xiàn)程處理系統(tǒng)中的分布式合意。本專(zhuān)利技術(shù)就是為解決這個(gè)需要而提供的一種技術(shù)。簡(jiǎn)要地說(shuō),本專(zhuān)利技術(shù)的一個(gè)方面提出一個(gè)用于跨越多線(xiàn)程計(jì)算機(jī)環(huán)境的多個(gè)進(jìn)程建立通信程序的方法,該環(huán)境中多個(gè)進(jìn)程可能同時(shí)在試圖建立通信程序(communicator)。該方法包括在多個(gè)進(jìn)程之間通信,以便為分布在多個(gè)進(jìn)程上的一組參與線(xiàn)程的通信程序建立候選標(biāo)識(shí)符;在多個(gè)進(jìn)程之間通信,以便在多個(gè)線(xiàn)程的每個(gè)參與線(xiàn)程處檢查是否能在其進(jìn)程要求(claim)該候選標(biāo)識(shí)符,如果能,就要求該候選標(biāo)識(shí)符,作為新標(biāo)識(shí)符,由此建立通信程序。本專(zhuān)利技術(shù)的另一個(gè)方面提供一個(gè)用于跨越多線(xiàn)程計(jì)算機(jī)環(huán)境的多個(gè)進(jìn)程建立通信程序的系統(tǒng),該環(huán)境中多個(gè)進(jìn)程可能同時(shí)在試圖建立通信程序。系統(tǒng)包括的一個(gè)裝置,用于在多個(gè)進(jìn)程之間通信,以便為分布在多個(gè)進(jìn)程上的一組參與線(xiàn)程的通信程序建立候選標(biāo)識(shí)符;還有一個(gè)裝置,用于在多個(gè)進(jìn)程之間通信,以便在多個(gè)線(xiàn)程的每個(gè)參與線(xiàn)程處檢查是否能在其進(jìn)程要求該候選標(biāo)識(shí)符,如果能,就要求該候選標(biāo)識(shí)符,作為新標(biāo)識(shí)符,由此建立通信程序。本專(zhuān)利技術(shù)的再一個(gè)方面包含至少一個(gè)可由機(jī)器讀取的程序存儲(chǔ)裝置,內(nèi)含至少一個(gè)可由機(jī)器執(zhí)行的指令程序,指令程序用來(lái)執(zhí)行跨越多線(xiàn)程計(jì)算機(jī)環(huán)境的多個(gè)進(jìn)程建立通信程序的方法,該環(huán)境中多個(gè)進(jìn)程可能同時(shí)在試圖建立通信程序。該方法包括在多個(gè)進(jìn)程之間通信,以便為分布在多個(gè)進(jìn)程上的一組參與線(xiàn)程的通信程序建立候選標(biāo)識(shí)符;在多個(gè)進(jìn)程之間通信,以便在多個(gè)線(xiàn)程的每個(gè)參與線(xiàn)程處檢查是否能在其進(jìn)程要求該候選標(biāo)識(shí)符,如果能,就要求該候選標(biāo)識(shí)符,作為新標(biāo)識(shí)符,由此建立通信程序。重申一遍,這里提出一種用于在多線(xiàn)程的多進(jìn)程計(jì)算環(huán)境中實(shí)現(xiàn)分布式合意的技術(shù)。該技術(shù)是確定性的,因?yàn)楦骶€(xiàn)程將在有限次數(shù)的重試中以可預(yù)測(cè)的順序成功創(chuàng)建一個(gè)通信程序。該技術(shù)被相信優(yōu)于所謂的“隨機(jī)化”算法,在這種算法中,未能創(chuàng)建通信程序的線(xiàn)程只是等待過(guò)了隨機(jī)量的時(shí)間后再重試。此外,這里提出的技術(shù)保證避免線(xiàn)程之間的死鎖。這優(yōu)于其它檢測(cè)到死鎖情況就采取打破死鎖的行動(dòng)的算法。死鎖檢測(cè)通常涉及注意到某一段時(shí)間過(guò)去了還沒(méi)有線(xiàn)程在進(jìn)行。這里提出的分布式合意功能是高效的,因?yàn)榫€(xiàn)程為獲得對(duì)新通信域的分布式合意而被迫重試的次數(shù)有個(gè)上限一即使存在多組試圖同時(shí)創(chuàng)建通信程序的線(xiàn)程也是如此。由以下結(jié)合附圖對(duì)本專(zhuān)利技術(shù)的某些最佳實(shí)施例的詳細(xì)說(shuō)明,可以更容易了解本專(zhuān)利技術(shù)的上述及其它目的、優(yōu)點(diǎn)和特點(diǎn)。附圖簡(jiǎn)介附圖說(shuō)明圖1表示一例包含按照本專(zhuān)利技術(shù)的通信域合意功能的線(xiàn)程計(jì)算機(jī)環(huán)境;圖2是多個(gè)有多個(gè)線(xiàn)程的進(jìn)程的簡(jiǎn)化圖,其中按本專(zhuān)利技術(shù)原理建立了跨越多個(gè)進(jìn)程的多個(gè)線(xiàn)程的通信域;圖3A和3B表示按照本專(zhuān)利技術(shù)原理的通信域合意技術(shù)的一個(gè)實(shí)施例。下面結(jié)合圖1說(shuō)明一例包含和使用按照本專(zhuān)利技術(shù)的通信域合意功能的線(xiàn)程計(jì)算機(jī)環(huán)境。如圖所示,計(jì)算機(jī)環(huán)境100包括多個(gè)經(jīng)連接104而相連的計(jì)算節(jié)點(diǎn)102。例如,每個(gè)計(jì)算節(jié)點(diǎn)可包含是一個(gè)國(guó)際商用機(jī)器公司推出的RS/6000 SP系統(tǒng)的節(jié)點(diǎn),連接104可以是個(gè)也是國(guó)際商用機(jī)器公司推出的分組交換網(wǎng)絡(luò),諸如SP轉(zhuǎn)接器或高性能轉(zhuǎn)接器(HPS)。再次注意,圖1僅僅是舉例表示的。這里所披露的技術(shù),還可應(yīng)用于圖1所示多處理器環(huán)境以外的任何單線(xiàn)程的或多線(xiàn)程的程序的集合。在環(huán)境100內(nèi),消息分組被通過(guò)分組交換網(wǎng)絡(luò)104從源計(jì)算節(jié)點(diǎn)(發(fā)送節(jié)點(diǎn))傳送到接收計(jì)算節(jié)點(diǎn)(接收節(jié)點(diǎn))。例如計(jì)算單元N的用戶(hù)任務(wù)106可以向計(jì)算單元1(接收節(jié)點(diǎn))的用戶(hù)任務(wù)106傳送消息。適配器112連接計(jì)算單元102與轉(zhuǎn)接器104?!队糜贏IX管理的IBM并行系統(tǒng)支援程序指南》(IBM Parallel System Support ProgramsFor AIX Administration Guide)(出版號(hào)GC23-3897-02(1996))中詳細(xì)介紹了轉(zhuǎn)接器104的一個(gè)例子。進(jìn)一步來(lái)說(shuō),計(jì)算單元與其相關(guān)適配器112之間的通信,例如由包括諸如打開(kāi)通信、關(guān)閉通信、啟用路由、停用路由、返回狀態(tài)和重置適配器等功能(functions)的接口描述。在一個(gè)實(shí)施例中,接口包含消息傳送接口(MPI)110-這里也稱(chēng)MPI庫(kù)。對(duì)適配器的接入由每個(gè)計(jì)算單元102內(nèi)的內(nèi)核擴(kuò)展/設(shè)備驅(qū)動(dòng)程序108作中介。擴(kuò)展(extension)108包括的一組功能(functions),有操作系統(tǒng)本身(例如國(guó)際商用機(jī)器公司出售的AIX操作系統(tǒng))的權(quán)力。內(nèi)核擴(kuò)展(kernel extension)授權(quán)由用戶(hù)任務(wù)106(或程序)使用適配器112并有在需要時(shí)中斷用戶(hù)任務(wù)的能力。用戶(hù)任務(wù)通過(guò)MPI庫(kù)110與適配器112通信。對(duì)MPI庫(kù)的更詳細(xì)介紹,例如可參閱國(guó)際商用機(jī)器公司的出版物-題目為《AIX的IBM并行環(huán)境MPI程序設(shè)計(jì)和子例程參考》(IBM Parallel 本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種用于多線(xiàn)程計(jì)算機(jī)環(huán)境中建立跨越多個(gè)進(jìn)程的通信程序的方法,在該環(huán)境中多個(gè)進(jìn)程可能同時(shí)在試圖建立通信程序,該方法包含: (1)在多個(gè)進(jìn)程之間通信,以便為分布在多個(gè)進(jìn)程上的一組參與線(xiàn)程的通信程序建立候選標(biāo)識(shí)符; (2)在多個(gè)進(jìn)程之間通信,以便在多個(gè)線(xiàn)程的每個(gè)參與線(xiàn)程處檢查是否能在其進(jìn)程要求該候選標(biāo)識(shí)符,如果能,就要求該候選標(biāo)識(shí)符作為新標(biāo)識(shí)符,由此建立通信程序。
【技術(shù)特征摘要】
【國(guó)外來(lái)華專(zhuān)利技術(shù)】...
【專(zhuān)利技術(shù)屬性】
技術(shù)研發(fā)人員:R布拉克莫雷,RR特雷曼恩,AB懷特,
申請(qǐng)(專(zhuān)利權(quán))人:國(guó)際商業(yè)機(jī)器公司,
類(lèi)型:發(fā)明
國(guó)別省市:US[美國(guó)]
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。