專利名稱:并行任務(wù)分配應(yīng)用框架的制作方法
技術(shù)領(lǐng)域:
具體實施例總地涉及允許以可修改的方式對任務(wù)進行并行處理的框架。
背景技術(shù):
當存在要解決的問題時,用戶可針對具體的機器類型編寫程序。機器可執(zhí)行程序, 并對某些數(shù)據(jù)塊進行分析。但是,所處理的數(shù)據(jù)受到機器的資源的限制。多個機器也可被配置為并行處理多個數(shù)據(jù)塊。但是,需要編寫專用于多個機器的程序來處理數(shù)據(jù)。針對多個機器編寫程序需要有經(jīng)驗的熟悉機器配置的程序員。對于不理解如何針對在多個機器上的處理編寫程序的用戶來說,這變得復(fù)雜且無用。
發(fā)明內(nèi)容
具體實施例總地涉及并行任務(wù)分配框架。網(wǎng)絡(luò)設(shè)備可利用發(fā)現(xiàn)消息來確定正由不同的設(shè)備提供的服務(wù)。利用框架所提供的服務(wù)允許利用在設(shè)備中發(fā)現(xiàn)的模塊來對任務(wù)進行并行處理。可將模塊從設(shè)備中的一個設(shè)備分發(fā)到其他設(shè)備以處理項目,該項目可以是需要在數(shù)據(jù)上執(zhí)行的任意分析。項目可由需要被執(zhí)行的任務(wù)組成,其中,每個任務(wù)可處理用于項目的數(shù)據(jù)的至少一部分。當其他設(shè)備未利用其處理資源的全部可用性時,并行任務(wù)分配框架允許設(shè)備使用來自其他設(shè)備的處理資源。例如,在操作期間,第一設(shè)備并不總使用其可用的處理資源。在此情形中,第一設(shè)備可確定任務(wù)應(yīng)當利用模塊來執(zhí)行。目標設(shè)備可能并不具有用來執(zhí)行任務(wù)的模塊。但是,第一設(shè)備可以將模塊發(fā)送到目標設(shè)備,因為框架允許模塊被無縫傳輸。然后,目標設(shè)備可將模塊安裝在框架中,并且第一設(shè)備將可用數(shù)據(jù)發(fā)送到目標設(shè)備以用于處理。然后,目標設(shè)備處理數(shù)據(jù)以執(zhí)行任務(wù),然后可將結(jié)果發(fā)送回第一設(shè)備。通過在具有處理可用性的設(shè)備間分發(fā)用于不同任務(wù)的數(shù)據(jù),項目可被高效地執(zhí)行。用戶無需對任務(wù)的分發(fā)進行編程。而是,框架允許設(shè)備自動做出將任務(wù)分發(fā)到具有處理能力的設(shè)備的決定。模塊被編寫,從而使得它們可在設(shè)備間分發(fā),甚至是在具有不同的體系架構(gòu)的設(shè)備間分發(fā)。對此處所公開的具體實施例的本質(zhì)和優(yōu)點的進一步理解可通過參照說明書的剩余部分和附圖來實現(xiàn)。
圖1描繪了根據(jù)一個實施例的用于提供并行任務(wù)分配框架的系統(tǒng)的示例。
圖2描繪了根據(jù)一個實施例的用于初始化計算設(shè)備的流程圖的示例。圖3描繪了根據(jù)一個實施例的用于在計算設(shè)備接收發(fā)現(xiàn)消息時所執(zhí)行的動作的方法的簡化的流程圖的示例。圖4描繪了根據(jù)一個實施例的用于交換模塊的方法的簡化的流程圖。圖5描繪了根據(jù)一個實施例的用于提供并行執(zhí)行的方法的簡化的流程圖。
具體實施例方式圖1描繪了根據(jù)一個實施例的用于提供并行任務(wù)分配框架的系統(tǒng)100的示例。系統(tǒng)100包括多個計算設(shè)備102和網(wǎng)絡(luò)104。每個設(shè)備102可包括允許任務(wù)的并行處理的框架 106。設(shè)備102可包括個人計算機、膝上型計算機、蜂窩電話、個人數(shù)字助理、相機、接入點、控制點、服務(wù)器、工作站、或其他合適的計算設(shè)備。在一個實施例中,各種消費者電子設(shè)備可連接到網(wǎng)絡(luò)104。網(wǎng)絡(luò)104可將設(shè)備102連接起來。在一個示例中,網(wǎng)絡(luò)104可包括局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、或其他無線或有線網(wǎng)絡(luò)??蚣?06可允許針對項目的任務(wù)的并行計算。項目可以是需要被執(zhí)行的任意系列的計算。例如,項目可分析某個方面的數(shù)據(jù)。模塊可被設(shè)置在框架106中,其中,模塊可執(zhí)行服務(wù)。例如,模塊可包括一般服務(wù) (諸如,網(wǎng)絡(luò)連接性)或者其他服務(wù)(諸如,媒體播放器、音樂播放器、或其他計算服務(wù))。 模塊可以是框架106的插件。插件遵從應(yīng)用編程接口(API)或應(yīng)用二進制接口(ABI)的格式。為了使用API/ABI,用戶可編寫應(yīng)用,并且無需考慮模塊可被運行在哪個體系架構(gòu)上。 例如,所編寫的用于框架106的模塊可被運行在Linux 機器、Windows 機器、Android 機器上、或其他消費者電子操作系統(tǒng)上。模塊可被寫入框架中,但是并不必與設(shè)備的下層體系架構(gòu)相兼容。例如,機器A是PC,而機器B是游戲機。機器A具有編譯用于英特爾體系架構(gòu)活動的模塊,但是,可保持針對其他平臺的小模塊庫(對于PC和其自身的體系架構(gòu)而言,模塊可被看作是二進制大型對象(blob))。當機器B在發(fā)現(xiàn)處理期間向機器A報告時,標識信息的一部分是體系架構(gòu)類型。如果機器B在機器A所支持的類型的列表上,則整個包(如果機器B被期望進一步散布模塊)或僅用于B的體系架構(gòu)的模塊被發(fā)送。如果整個包被發(fā)送(包=同樣的功能模塊的Win32/LinUX/PS3/Andr0id版本),則機器B可進一步支持包中的任意體系架構(gòu)。機器B還可使用與其體系架構(gòu)相兼容的模塊。包括框架106的計算設(shè)備102可進行通信,以交換執(zhí)行服務(wù)所需的模塊。計算設(shè)備102搜出其他計算設(shè)備102,以用于針對項目的工作的協(xié)作。這可涉及將不同模塊分發(fā)到不同的計算設(shè)備102。如果計算設(shè)備102具有可用的處理資源,則模塊可被分發(fā)到該計算設(shè)備102。任務(wù)中的數(shù)據(jù)可被發(fā)送到該計算設(shè)備102,以用于執(zhí)行任務(wù)。通過這種方式,計算設(shè)備102可在其他具有可用的處理資源的計算設(shè)備間分發(fā)工作。通過允許自動協(xié)調(diào)執(zhí)行針對項目的任務(wù),增加了網(wǎng)絡(luò)104中的計算設(shè)備102的效率。以下的描述示出了利用框架來處理項目的不同階段。第一階段是啟動,S卩,設(shè)備發(fā)現(xiàn)彼此的能力。然后,設(shè)備可交換模塊,以允許服務(wù)被分發(fā)。然后將描述針對項目的任務(wù)的執(zhí)行。圖2描繪了根據(jù)一個實施例的用于初始化計算設(shè)備102的流程圖200的示例。在步驟202,第一計算設(shè)備102-1被初始化,并且框架106被啟動。例如,第一計算設(shè)備102-1 可連接到網(wǎng)絡(luò)104。當對框架106上電或初始化時,模塊被載入并被初始化。在步驟204,服務(wù)注冊表被建立。其列出了第一計算設(shè)備102-1可用的服務(wù)的類型。在步驟206,第一計算設(shè)備102-1然后通過網(wǎng)絡(luò)接口在網(wǎng)絡(luò)104上廣播發(fā)現(xiàn)消息。 發(fā)現(xiàn)消息包括關(guān)于計算設(shè)備的信息,諸如,可用的服務(wù),體系架構(gòu)(例如,Linux, x86)和其他信息。然后,網(wǎng)絡(luò)上的計算設(shè)備可接收發(fā)現(xiàn)消息。圖3描繪了根據(jù)一個實施例的用于當計算設(shè)備102接收發(fā)現(xiàn)消息時所執(zhí)行的動作的方法的簡化的流程圖300的示例。在步驟 302,第二計算設(shè)備102-2接收發(fā)現(xiàn)消息,該發(fā)現(xiàn)消息包括第一計算設(shè)備102-1可用的服務(wù)。在步驟304,第二計算設(shè)備102-2分析在消息中所提供的服務(wù),并且將其存儲在注冊表中。例如,第二計算設(shè)備102-2可記錄由網(wǎng)絡(luò)中的所有計算設(shè)備102所提供的服務(wù)。第二計算設(shè)備102可決定不記錄某些不兼容的服務(wù)。例如,相機可能無法使用音樂播放器,因而不將其列為可用的服務(wù)。但是,在網(wǎng)絡(luò)上所提供的所有服務(wù)都可被記錄,即便它們是不兼容的。這使得第二計算設(shè)備能夠傳達其他設(shè)備所提供的服務(wù)。在步驟306,第二計算設(shè)備102-2以其自身的服務(wù)和能力的列表來響應(yīng)。例如,第二計算設(shè)備102-2可發(fā)送包括可用的服務(wù)和其體系架構(gòu)的發(fā)現(xiàn)消息。在步驟308,第二計算設(shè)備102-2將第一計算設(shè)備102-1注冊為對等點(peer)。將設(shè)備注冊為對等點使得其可在稍后利用第一計算設(shè)備102-1進行并行任務(wù)的計算。在步驟310,第二計算設(shè)備102-2以及相反地第一計算設(shè)備102_1確定用于服務(wù)的任意模塊是否應(yīng)當被交換。例如,如果第一計算設(shè)備102-1的服務(wù)中的一個服務(wù)為第二計算設(shè)備102-2所需,則第二計算設(shè)備102-2可請求該模塊。第一計算設(shè)備102-1也可請求可用在其體系架構(gòu)上的模塊。如果需要交換模塊,則執(zhí)行圖4的處理。圖4描繪了根據(jù)一個實施例的用于交換模塊的方法的簡化的流程圖400。在步驟402,第一計算設(shè)備102-1接收服務(wù)請求消息。例如,在第一計算設(shè)備102-1發(fā)送列出了其所提供的服務(wù)的發(fā)現(xiàn)消息之后,可從其請求媒體播放器的服務(wù)。在步驟404,第一計算設(shè)備102-1確定該請求是否是有效的請求。例如,可執(zhí)行對第二計算設(shè)備102-2的認證。這可涉及確定第二計算設(shè)備102-2是否在受信機器的網(wǎng)絡(luò)中。 例如,可分析證書來確定是否應(yīng)當信任第二計算設(shè)備102-2。其他認證第二計算設(shè)備102-2 的方法也可被利用。第一計算設(shè)備102-1還可確定模塊是否可在第二計算設(shè)備102-2上被執(zhí)行。這可涉及分析第二計算設(shè)備102-2的體系架構(gòu)。但是,如上所述,第一計算設(shè)備102-1可具有能在不同體系架構(gòu)上執(zhí)行的多個模塊??纱_定可在第二計算設(shè)備102-2上執(zhí)行的模塊。如果該請求是無效的,則在步驟406,其被拒絕。在步驟408,第一計算設(shè)備102-1 封裝模塊,以用于在第二計算設(shè)備102-2處安裝。另外,模塊組可被封裝,諸如,用于不同體系架構(gòu)的模塊組。這使得第二計算設(shè)備102-2在與其他設(shè)備通信時,成為模塊的分發(fā)者。封裝模塊包括配置文件,該配置文件向第二計算設(shè)備102-2通知任意所需的下載信息??蓴U展標記語言(XML)文件和去往所需文件的路徑的配置文件、允許訪問的臨時證書、以及用于體系架構(gòu)的庫可被發(fā)送。這使得帶有框架106的設(shè)備能夠下載并安裝模塊。在步驟410, 指示已封裝的模塊已準備好用于下載的消息被發(fā)送到第二計算設(shè)備102-2。第二計算設(shè)備102-2接收下載消息,然后可從第一計算設(shè)備102-1下載組件。例如,網(wǎng)絡(luò)層可與第一計算設(shè)備102-1協(xié)調(diào)來進行傳輸。在該情形下,針對已封裝的模塊,可經(jīng)由安全殼(SSH)來執(zhí)行機器對機器的握手和文件傳輸。在已封裝的模塊被下載之后,可基于配置和下載信息進行安裝。一旦模塊被安裝,服務(wù)可被添加到其服務(wù)注冊表中,并且指示新服務(wù)可用的新消息可在網(wǎng)絡(luò)104上被廣播。一旦對等設(shè)備的發(fā)現(xiàn)被執(zhí)行,則任務(wù)的并行執(zhí)行可被提供。圖5描繪了根據(jù)一個實施例的用于提供任務(wù)的并行執(zhí)行的方法的簡化的流程圖500。在步驟502,第一計算設(shè)備 102-1確定將被執(zhí)行的項目。該項目可以是任意可能需要在數(shù)據(jù)上執(zhí)行的分析。項目可包括多個任務(wù),或者可被分解為多個可被執(zhí)行的任務(wù)。在步驟504,第一計算設(shè)備102-1確定針對項目的任務(wù)。例如,項目可被分析,以確定哪些任務(wù)可被其他計算設(shè)備102執(zhí)行。服務(wù)注冊表和對等點列表可被分析。這可確定哪些服務(wù)由其他計算設(shè)備102提供。對等點列表還可指示其他計算設(shè)備102的能力,諸如,哪些任務(wù)它們可處理。例如,Linux機器能夠處理計算密集型的任務(wù)。Playstation 3 (PS3) 也能夠處理圖形密集型的任務(wù),因為在PS3內(nèi)具有強大的圖形處理器。程序員無需對如何將項目分解成任務(wù)進行編程。而是,第一計算設(shè)備102-1分析項目,并且基于其的對等點列表和由對等點所提供的服務(wù)來確定可從項目中分解出的任務(wù)。該確定可被作為在網(wǎng)絡(luò)變更上可用的處理能量和能力來動態(tài)執(zhí)行。程序員無需確切知道問題是如何被分發(fā)的,但是在概念上以足夠精確的粒度對問題域進行分解,從而使得最小的所期望的設(shè)備可參與到解決問題的處理中。只有在問題或數(shù)據(jù)不符合一般化的模型的情況下,這才是必須的。例如,模型可是用于項目的數(shù)據(jù),且無需遵從任何分割規(guī)則或限制。因此,數(shù)據(jù)可以任意方式被分解。并且,另一模型可以是數(shù)據(jù), 并可以某種方式被分解。然后,程序員可指定落入該模型的數(shù)據(jù)。程序員還可指定數(shù)據(jù)應(yīng)如何被分解的分割限制,諸如,數(shù)據(jù)不應(yīng)當被分解為比某些大小更小的大小、數(shù)據(jù)應(yīng)當被分割以保持某些數(shù)據(jù)在一起等。針對簡化的示例,存在包括許多千兆比特信息的大量數(shù)據(jù)X。將解決的任務(wù)是搜索該大量數(shù)據(jù)中的具體模式(可以是在生理數(shù)據(jù)中的疾病簽名)。程序員可以以如何搜索和搜索什么的抽象邏輯來提供數(shù)據(jù)和1-n個模塊(1用于每個所希望的受支持的平臺、相同的代碼,僅針對不同的目標來重新編譯)。然后,如果設(shè)備表現(xiàn)為可處理任意大小的數(shù)據(jù),則任意數(shù)量的數(shù)據(jù)和所附模塊被分發(fā)到該另一設(shè)備。但是,如果設(shè)備具有某些處理限制,諸如,一次僅能處理(例如)兆字節(jié)的數(shù)據(jù)的PDA或其他受限設(shè)備進入網(wǎng)絡(luò),則第一計算設(shè)備將給個人計算機比PDA更大的數(shù)據(jù)塊。隨著每個設(shè)備完成對數(shù)據(jù)的處理,結(jié)果被返回,并且下一數(shù)據(jù)塊被指派。只要不存在用于根據(jù)具體規(guī)則來分割數(shù)據(jù)的域相關(guān)的原因,該處理就起作用。即,第一計算設(shè)備可以任意方式分割數(shù)據(jù),并且可基于哪些設(shè)備可用以及它們的處理能力來動態(tài)地分割數(shù)據(jù)。但是, 如果數(shù)據(jù)的自然順序是只有較強大的設(shè)備才能運行它,則不能處理大量數(shù)據(jù)的設(shè)備不被給予工作。在該情形中,程序員可定義模式檢測代碼和數(shù)據(jù)塊散布代碼來配置關(guān)于最小/最大數(shù)據(jù)塊大小的指南。第一計算設(shè)備可讀取指南,并且確定如何分解數(shù)據(jù)。第一計算設(shè)備還可分析數(shù)據(jù)和需要被執(zhí)行的任務(wù),并且以所確定的最有效的方式分解數(shù)據(jù)。在其他情形中,第一計算設(shè)備確保僅有工作單元根據(jù)問題域的需求被分發(fā)。在步驟506,第一計算設(shè)備102-1確定計算設(shè)備102包括用于處理任務(wù)的處理資源。這可涉及輪詢其他計算設(shè)備102以確定處理資源是否可用。例如,消息可被發(fā)送到其他設(shè)備102,并且指示處理資源是否可用的響應(yīng)可被接收。如果設(shè)備未在某閾值以上操作,則處理資源是可用的。例如,如果處理器處于60%的利用率,則計算設(shè)備可指示其具有40% 的處理資源可用。在步驟508,第一計算設(shè)備102-1確定計算設(shè)備102是否需要模塊來執(zhí)行任務(wù)之一。如果是,則步驟510輔助對模塊的分發(fā)。例如,模塊可如上參考圖4所述地被分發(fā)。因此,當?shù)谝挥嬎阍O(shè)備102-1確定任務(wù)可被執(zhí)行時,模塊可被分發(fā)。如果模塊無需被分發(fā),或者在模塊已被分發(fā)之后,在步驟512,第一計算設(shè)備 102-1然后將任務(wù)和數(shù)據(jù)發(fā)送到第二計算設(shè)備102-2。例如,所需的算法被封裝在模塊中, 并且被與數(shù)據(jù)一起發(fā)送,以執(zhí)行計算。在一個示例中,一旦第二計算設(shè)備102-2已經(jīng)被給予具有解決問題的算法(如上所述的模式檢測算法)的模塊,消息即被發(fā)送到第二計算設(shè)備 102-2以執(zhí)行任務(wù)。在單目的模型(其中,第二計算設(shè)備102-2知道哪個任務(wù)以及如何執(zhí)行任務(wù))中,該消息是觸發(fā)工作所需的全部。包括在用于執(zhí)行任務(wù)的消息中的是訪問網(wǎng)絡(luò)上的共享數(shù)據(jù)貯存庫所需的信息,或者是下載任務(wù)所需的數(shù)據(jù)段的信息。一旦接收到該消息,目標機器或者下載或者參考共享資源、執(zhí)行任務(wù),并且將結(jié)果與指示繼續(xù)的或暫停的計算可用性的標志一起轉(zhuǎn)發(fā)回主機器。如果目標機器仍舊可用,則通過參照將被處理的大量數(shù)據(jù),下一塊數(shù)據(jù)將經(jīng)由下一任務(wù)消息被指派。雖然描述了一個與之通信的計算設(shè)備,但是應(yīng)當理解,任意數(shù)量的計算設(shè)備102可接收任務(wù)并且在數(shù)據(jù)部分上執(zhí)行計算。在步驟514,第一計算設(shè)備102-1接收任務(wù)的執(zhí)行結(jié)果。因為任務(wù)被許多不同的設(shè)備執(zhí)行,因此,在步驟516,第一計算設(shè)備102-1可將結(jié)果合并回項目。例如,針對不同任務(wù)的不同結(jié)果可從不同計算設(shè)備102接收。第一計算設(shè)備102-1可協(xié)調(diào)如何互相關(guān)聯(lián)不同的任務(wù)以解決針對項目的問題?,F(xiàn)將描述不同的示例。應(yīng)當理解,還可構(gòu)想其他示例。在一個示例中,帶有小型服務(wù)器的計算設(shè)備102的研究人員可以利用在設(shè)備102-1上所需的數(shù)據(jù)設(shè)立問題。問題可在網(wǎng)絡(luò)上被復(fù)制,從而使得任意運行框架106的設(shè)備可被冷(僅復(fù)制文件)更新或熱(組件可被熱交換)更新。當任務(wù)被發(fā)送時,這些設(shè)備可從蛋白質(zhì)研究切換到地質(zhì)研究。在另一示例中,網(wǎng)絡(luò)上的設(shè)備A-F正在處理問題,并且每個設(shè)備將結(jié)果饋送到下一設(shè)備,下一設(shè)備處理該結(jié)果,并且將其發(fā)送到下一個(即,A饋送B,B饋送C等)。F的輸出是“答案”。傳統(tǒng)上,需要針對所有六個機器編寫用以處理數(shù)據(jù)的工作流程。但是,具體的實施例允許設(shè)備F自動確定哪些設(shè)備具有可用的處理資源,并且F可協(xié)調(diào)任務(wù)的分發(fā)。設(shè)備F可以在1-n系統(tǒng)上變更配置/設(shè)置、在A上設(shè)置數(shù)據(jù),并且返回處理。如果同樣的問題在運行,則F上的組件可檢查結(jié)果,并且通過點對點機制來對之前的五個機器進行變更,重置并重新運行測試自身,并且只在完成時打擾人。雖然已經(jīng)針對具體實施例描述了說明,但是這些具體的實施例僅是說明性的,而非限制性的。任何適合的編程語言可被用于實現(xiàn)具體實施例的例程,包括,C、C++、Java、匯編語言等。不同的編程技術(shù)可被利用,諸如,過程性的或面向?qū)ο蟮募夹g(shù)。該例程可在單個處理設(shè)備上或多個處理器上執(zhí)行。雖然步驟、操作或計算可被呈現(xiàn)為具體的次序,但是,該次序在不同的具體實施例中可被變更。在某些特定的實施例中,在本說明書中順序示出的多個步驟可同時被執(zhí)行。具體的實施例可被實現(xiàn)在計算機可讀的存儲介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置、系統(tǒng)或設(shè)備使用或與之連接。具體的實施例可被以軟件或硬件或二者的組合中的控制邏輯的形式實現(xiàn)。當控制邏輯被一個或多個處理器執(zhí)行時,該控制邏輯可操作以執(zhí)行在具體實施例中所描述的操作。具體的實施例可通過使用編程的通用數(shù)字計算機、專用集成電路、可編程邏輯設(shè)備、現(xiàn)場可編程門陣列、光學的、化學的、生物的、量子的或納米工程系統(tǒng)、組件和機制來實現(xiàn)。一般而言,特定實施例的功能可通過任意在現(xiàn)有技術(shù)中公知的手段來實現(xiàn)??墒褂梅植际降摹⒙?lián)網(wǎng)式的系統(tǒng)、組件和/或電路。通信或數(shù)據(jù)的傳輸可以是有線的、無線的、或通過任意其他手段。還應(yīng)當理解,在圖/附圖中所描繪的一個或多個元素還可以以更加單獨或集成的形式實現(xiàn),或者在某些情形中,甚至可被移除或提供為不可操作,而根據(jù)特定應(yīng)用是有用的。實現(xiàn)能被存儲在機器可讀介質(zhì)中以允許計算機執(zhí)行上述任意方法的程序或代碼也在本發(fā)明的精神和范圍內(nèi)。如在此處的描述和之后的權(quán)利要求中所使用的,“一個”、“一”和“該”包括多個參考,除非上下文清楚地指示。如在此處的描述和之后的權(quán)利要求中所使用的,“中”的意思包括“中”和“上”,除非上下文清楚地指示。因此,雖然此處已經(jīng)描述了具體的實施例,在前述公開中示出了多個修改例、各種變更例和替換例,但是應(yīng)當理解,在某些示例中,具體實施例的某些特征可以被利用而無需使用對應(yīng)的其他特征,只要不偏離所提出的范圍和精神即可。因此,可做出多個修改例來將具體的情形或材料適應(yīng)到本質(zhì)的范圍和精神。
權(quán)利要求
1.一種用于處理數(shù)據(jù)的方法,所述方法包括接收包括在一個或多個聯(lián)網(wǎng)設(shè)備上發(fā)現(xiàn)的服務(wù)的一個或多個發(fā)現(xiàn)消息,所述服務(wù)被設(shè)置在這樣的框架中,該框架允許利用與所述框架兼容的模塊來對任務(wù)進行并行處理; 確定其中的數(shù)據(jù)應(yīng)當被處理的項目;確定所述聯(lián)網(wǎng)設(shè)備中的具有執(zhí)行針對所述項目的服務(wù)的處理資源的一個聯(lián)網(wǎng)設(shè)備,其中所述服務(wù)被確定為能夠在對用于所述項目的至少部分數(shù)據(jù)的處理中執(zhí)行任務(wù); 將模塊從用于所述服務(wù)的所述框架分發(fā)到所述一個聯(lián)網(wǎng)設(shè)備;以及將用于所述任務(wù)的數(shù)據(jù)分發(fā)到所述一個聯(lián)網(wǎng)設(shè)備,所述一個聯(lián)網(wǎng)設(shè)備利用用于所述項目的所述模塊來處理所述數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,還包括將在所述一個或多個聯(lián)網(wǎng)設(shè)備上發(fā)現(xiàn)的所述服務(wù)存儲在注冊表中;以及分析所述注冊表中的所述服務(wù),以確定所述一個或多個聯(lián)網(wǎng)設(shè)備中的哪一個能夠利用服務(wù)來執(zhí)行用于所述項目的所述任務(wù)。
3.如權(quán)利要求1所述的方法,還包括確定在所述一個或多個聯(lián)網(wǎng)設(shè)備中的網(wǎng)絡(luò)設(shè)備上發(fā)現(xiàn)的、能夠被傳輸?shù)降谝辉O(shè)備的服務(wù);以及向所述網(wǎng)絡(luò)設(shè)備發(fā)送所述服務(wù)的請求。
4.如權(quán)利要求1所述的方法,還包括 在所述網(wǎng)絡(luò)上檢測新設(shè)備;確定所述新設(shè)備是否具有處理資源;以及在所述新設(shè)備具有可用的處理資源的情況下,將第二任務(wù)分發(fā)給所述新設(shè)備。
5.如權(quán)利要求1所述的方法,其中,所述一個或多個聯(lián)網(wǎng)設(shè)備包括所述框架,該框架允許在所述一個或多個聯(lián)網(wǎng)設(shè)備間分發(fā)模塊。
6.如權(quán)利要求1所述的方法,還包括動態(tài)地輪詢所述一個或多個聯(lián)網(wǎng)設(shè)備,以確定可用的處理資源;以及分析所述項目以確定所述一個聯(lián)網(wǎng)設(shè)備,從而基于動態(tài)確定的可用處理資源來執(zhí)行所述任務(wù)。
7.如權(quán)利要求6所述的方法,其中,所述一個聯(lián)網(wǎng)設(shè)備是基于包括在所述一個聯(lián)網(wǎng)設(shè)備中的能力來選擇的。
8.如權(quán)利要求1所述的方法,還包括 確定所述數(shù)據(jù)是否包括分割限制;以及在所述數(shù)據(jù)包括分割限制的情況下,基于所述分割限制和所述一個聯(lián)網(wǎng)設(shè)備來將所述數(shù)據(jù)分割成數(shù)據(jù)單元,從而使得所述分割限制不會被違反。
9.如權(quán)利要求8所述的方法,還包括在所述數(shù)據(jù)不包括分割限制的情況下,基于所述一個聯(lián)網(wǎng)設(shè)備的能力來分割所述數(shù)據(jù)。
10.如權(quán)利要求1所述的方法,其中,所述模塊包括與多個計算體系架構(gòu)兼容的模塊, 其中,與所述一個聯(lián)網(wǎng)設(shè)備兼容的模塊被發(fā)送給所述一個聯(lián)網(wǎng)設(shè)備。
11.一種裝置,包括一個或多個處理器;以及編碼在一個或多個計算機可讀介質(zhì)中的由所述一個或多個處理器執(zhí)行的邏輯,該邏輯在被執(zhí)行時可操作以接收包括在一個或多個聯(lián)網(wǎng)設(shè)備上發(fā)現(xiàn)的服務(wù)的一個或多個發(fā)現(xiàn)消息,所述服務(wù)被設(shè)置在這樣的框架中,該框架允許利用與所述框架兼容的模塊來對任務(wù)進行并行處理; 確定其中的數(shù)據(jù)應(yīng)當被處理的項目;確定所述聯(lián)網(wǎng)設(shè)備中的具有執(zhí)行針對所述項目的服務(wù)的處理資源的一個聯(lián)網(wǎng)設(shè)備,所述服務(wù)被確定為能夠在對用于所述項目的至少部分數(shù)據(jù)的處理中執(zhí)行任務(wù); 將模塊從用于所述服務(wù)的所述框架分發(fā)到所述一個聯(lián)網(wǎng)設(shè)備;以及將用于所述任務(wù)的數(shù)據(jù)分發(fā)到所述一個聯(lián)網(wǎng)設(shè)備,所述一個聯(lián)網(wǎng)設(shè)備利用用于所述項目的所述模塊來處理所述數(shù)據(jù)。
12.如權(quán)利要求11所述的裝置,其中,所述邏輯在被執(zhí)行時還可操作以 將在所述一個或多個聯(lián)網(wǎng)設(shè)備上發(fā)現(xiàn)的所述服務(wù)存儲在注冊表中;以及分析所述注冊表中的所述服務(wù),以確定所述一個或多個聯(lián)網(wǎng)設(shè)備中的哪一個能夠利用服務(wù)來執(zhí)行針對所述項目的所述任務(wù)。
13.如權(quán)利要求11所述的裝置,其中,所述邏輯在被執(zhí)行時還可操作以確定在所述一個或多個聯(lián)網(wǎng)設(shè)備中的網(wǎng)絡(luò)設(shè)備上發(fā)現(xiàn)的能夠被傳輸?shù)降谝辉O(shè)備的服務(wù);以及向所述網(wǎng)絡(luò)設(shè)備發(fā)送所述服務(wù)的請求。
14.如權(quán)利要求11所述的裝置,其中,所述邏輯在被執(zhí)行時還可操作以 在所述網(wǎng)絡(luò)上檢測新設(shè)備;確定所述新設(shè)備是否具有處理資源;以及在所述新設(shè)備具有可用的處理資源的情況下,將第二服務(wù)分發(fā)到所述新設(shè)備。
15.如權(quán)利要求11所述的裝置,其中,所述一個或多個聯(lián)網(wǎng)設(shè)備包括所述框架,該框架允許在所述一個或多個聯(lián)網(wǎng)設(shè)備間分發(fā)模塊。
16.如權(quán)利要求11所述的裝置,其中,所述邏輯在被執(zhí)行時還可操作以 動態(tài)地輪詢所述一個或多個聯(lián)網(wǎng)設(shè)備,以確定可用的處理資源;以及分析所述項目以確定所述一個聯(lián)網(wǎng)設(shè)備,從而基于動態(tài)確定的可用處理資源來執(zhí)行所述任務(wù)。
17.如權(quán)利要求16所述的裝置,其中,所述一個聯(lián)網(wǎng)設(shè)備是基于包括在所述一個聯(lián)網(wǎng)設(shè)備的能力來選擇的。
18.如權(quán)利要求11所述的裝置,其中,所述邏輯在被執(zhí)行時還可操作以 確定所述數(shù)據(jù)是否包括分割限制;以及在所述數(shù)據(jù)包括分割限制的情況下,基于所述分割限制和所述一個聯(lián)網(wǎng)設(shè)備來將所述數(shù)據(jù)分割成數(shù)據(jù)單元,從而使得所述分割限制不會被違反。
19.如權(quán)利要求18所述的裝置,其中,所述邏輯在被執(zhí)行時還可操作以在所述數(shù)據(jù)不包括分割限制的情況下,基于所述一個聯(lián)網(wǎng)設(shè)備的能力來分割所述數(shù)據(jù)。
20.一種用于處理數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括多個目標計算設(shè)備,其中所述目標計算設(shè)備中的每一個包括不同的處理資源;以及主計算設(shè)備,該主計算設(shè)備被配置為接收包括在所述多個目標計算設(shè)備上發(fā)現(xiàn)的服務(wù)的一個或多個發(fā)現(xiàn)消息,所述服務(wù)被設(shè)置在這樣的框架中,該框架允許利用與所述框架兼容的模塊來對任務(wù)進行并行處理;確定其中的數(shù)據(jù)應(yīng)當被處理的項目;確定所述多個目標計算設(shè)備中可用的處理資源,以執(zhí)行針對所述項目的一個或多個服務(wù),所述一個或多個服務(wù)被確定為能夠在對用于所述項目的至少部分數(shù)據(jù)的處理中執(zhí)行任務(wù);將一個或多個模塊中的模塊從用于服務(wù)的所述框架分發(fā)到所述多個目標計算設(shè)備中的每一個;以及將用于任務(wù)的數(shù)據(jù)分發(fā)到所述多個目標計算設(shè)備中的每一個,其中,所述多個目標計算設(shè)備中的每一個利用用于所述項目的所分發(fā)的模塊來處理所述數(shù)據(jù)。
全文摘要
具體實施例總地涉及并行任務(wù)分配框架。網(wǎng)絡(luò)設(shè)備可利用發(fā)現(xiàn)消息來確定正由不同的設(shè)備提供的服務(wù)。利用該框架所提供的服務(wù)允許利用在設(shè)備中發(fā)現(xiàn)的模塊來對任務(wù)進行并行處理??梢詫⒛K從設(shè)備中的一個設(shè)備分發(fā)到其他設(shè)備來處理項目,該項目可以是需要在數(shù)據(jù)上執(zhí)行的任意分析。項目可由需要被執(zhí)行的任務(wù)組成,其中,每個任務(wù)可處理用于項目的數(shù)據(jù)的至少一部分。當其他設(shè)備未利用其處理資源的全部可用性時,并行任務(wù)分配框架允許設(shè)備使用來自其他設(shè)備的處理資源。
文檔編號G06F9/38GK102272717SQ200980153816
公開日2011年12月7日 申請日期2009年12月30日 優(yōu)先權(quán)日2009年1月7日
發(fā)明者杰夫·科布 申請人:索尼公司, 索尼電子有限公司