本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法、裝置、服務(wù)器和系統(tǒng)。
背景技術(shù):
分布式集群中有多個節(jié)點(diǎn),這些節(jié)點(diǎn)上可以運(yùn)行并行執(zhí)行同一任務(wù)。在很多情況下,并行執(zhí)行任務(wù)還需要節(jié)點(diǎn)與節(jié)點(diǎn)之間進(jìn)行通信,因此節(jié)點(diǎn)網(wǎng)絡(luò)的組織是非常關(guān)鍵的問題?,F(xiàn)有技術(shù)中,通常通過主控節(jié)點(diǎn)在任務(wù)的建立時(shí),為各執(zhí)行任務(wù)的從節(jié)點(diǎn)分配執(zhí)行該任務(wù)的進(jìn)程所使用的端口號,這樣各從節(jié)點(diǎn)就可以獲知其他從節(jié)點(diǎn)上執(zhí)行該任務(wù)的進(jìn)程所使用的端口號,從而與其他從節(jié)點(diǎn)建立連接。但是,分配的端口號實(shí)際上是與各從節(jié)點(diǎn)一一對應(yīng)的,主控節(jié)點(diǎn)如果沒有獲知某一節(jié)點(diǎn)上已使用的端口號,在分配端口號時(shí)分配了該節(jié)點(diǎn)已經(jīng)使用的端口號,就會影響任務(wù)的啟動。例如,節(jié)點(diǎn)1上運(yùn)行的任務(wù)A使用端口8080,在主控節(jié)點(diǎn)為節(jié)點(diǎn)1分配任務(wù)B所使用的端口號時(shí)又指定了端口8080,那么就引起了端口沖突。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法、裝置、服務(wù)器和系統(tǒng)。
依據(jù)本發(fā)明的一個方面,提供了一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法,包括:
接收主控節(jié)點(diǎn)發(fā)送的任務(wù)啟動指令;
選取用于該任務(wù)的端口號;
將本從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給所述主控節(jié)點(diǎn),以使所述主控節(jié)點(diǎn)根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;
接收所述主控節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
可選地,所述選取用于該任務(wù)的端口號包括:
從本從節(jié)點(diǎn)當(dāng)前未被占用的端口號中,隨機(jī)選取一個端口號。
可選地,所述接收所述主控節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖包括:
定期向所述主控節(jié)點(diǎn)發(fā)送獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求,接收所述主控節(jié)點(diǎn)根據(jù)該請求返回的節(jié)點(diǎn)網(wǎng)絡(luò)圖;
和/或,
接收所述主控節(jié)點(diǎn)主動下發(fā)的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
可選地,該方法還包括:
根據(jù)所述主控節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖,與該節(jié)點(diǎn)網(wǎng)絡(luò)圖中的其他一個或多個從節(jié)點(diǎn)建立連接。
可選地,所述任務(wù)啟動指令為深度學(xué)習(xí)子任務(wù)的啟動指令;所述深度學(xué)習(xí)子任務(wù)包括:parameter server子任務(wù)和/或worker子任務(wù)。
依據(jù)本發(fā)明的另一方面,提供了一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法,包括:
根據(jù)輸入的任務(wù)信息,向一個或多個從節(jié)點(diǎn)發(fā)送任務(wù)啟動指令;
接收各從節(jié)點(diǎn)返回的主機(jī)名和端口號;
根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;
將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給一個或多個從節(jié)點(diǎn)。
可選地,所述將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給一個或多個從節(jié)點(diǎn)包括:
當(dāng)接收到從節(jié)點(diǎn)發(fā)送的獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求時(shí),將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給該從節(jié)點(diǎn);
和/或,
將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給與本主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)。
可選地,所述任務(wù)信息為深度學(xué)習(xí)任務(wù)的任務(wù)信息;所述任務(wù)信息包括:用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量、深度學(xué)習(xí)子任務(wù)類型、各類型的子任務(wù)數(shù)量。
可選地,所述根據(jù)輸入的任務(wù)信息,向一個或多個從節(jié)點(diǎn)發(fā)送任務(wù)啟動指令包括:
從與本主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)中選擇與用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量相當(dāng)?shù)膹墓?jié)點(diǎn);
根據(jù)深度學(xué)習(xí)子任務(wù)類型和各類型的子任務(wù)數(shù)量,確定在各從節(jié)點(diǎn)上啟動的任務(wù);
向各選擇的從節(jié)點(diǎn)發(fā)送與在該從節(jié)點(diǎn)上啟動的任務(wù)對應(yīng)的任務(wù)啟動指令。
依據(jù)本發(fā)明的又一方面,提供了一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置,其中,該裝置部署在分布式集群的從節(jié)點(diǎn)上,包括:
通信單元,適于接收節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送的任務(wù)啟動指令;
端口選取單元,適于選取用于該任務(wù)的端口號;
所述通信單元,還適于將本裝置所在從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器,以使所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及各節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;以及適于接收所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
可選地,所述端口選取單元,適于從本裝置所在從節(jié)點(diǎn)的當(dāng)前未被占用的端口號中,隨機(jī)選取一個端口號。
可選地,所述通信單元,適于定期向所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求,接收所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器根據(jù)該請求返回的節(jié)點(diǎn)網(wǎng)絡(luò)圖;和/或,接收所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器主動下發(fā)的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
可選地,所述通信單元,還適于根據(jù)所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖,與該節(jié)點(diǎn)網(wǎng)絡(luò)圖中的其他一個或多個從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置建立連接。
可選地,所述任務(wù)啟動指令為深度學(xué)習(xí)子任務(wù)的啟動指令;所述深度學(xué)習(xí)子任務(wù)包括:parameter server子任務(wù)和/或worker子任務(wù)。
依據(jù)本發(fā)明的再一方面,提供了一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器,其中,該服務(wù)器部署在分布式集群的主控節(jié)點(diǎn)上,包括:
通信單元,適于根據(jù)輸入的任務(wù)信息,向一個或多個從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置發(fā)送任務(wù)啟動指令;接收各節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置返回的主機(jī)名和端口號;
節(jié)點(diǎn)網(wǎng)絡(luò)圖生成單元,適于根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及各節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;
所述通信單元,還適于將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給一個或多個從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置。
可選地,所述通信單元,適于在接收到從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置發(fā)送的獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求時(shí),將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給該從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置;和/或,將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給與本服務(wù)器所在的主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置
可選地,所述任務(wù)信息為深度學(xué)習(xí)任務(wù)的任務(wù)信息;所述任務(wù)信息包括:用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量、深度學(xué)習(xí)子任務(wù)類型、各類型的子任務(wù)數(shù)量。
可選地,該服務(wù)器還包括:
調(diào)度單元,適于從與本服務(wù)器所在的主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)中選擇與用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量相當(dāng)?shù)膹墓?jié)點(diǎn);根據(jù)深度學(xué)習(xí)子任務(wù)類型和各類型的子任務(wù)數(shù)量,確定在各從節(jié)點(diǎn)上啟動的任務(wù);
所述通信單元,適于向選擇的從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置發(fā)送與在該從節(jié)點(diǎn)上啟動的任務(wù)對應(yīng)的任務(wù)啟動指令。
依據(jù)本發(fā)明的再一方面,提供了一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織系統(tǒng),其中,該系統(tǒng)包括一個或多個如上述任一項(xiàng)所述的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置和如上述任一項(xiàng)所述的節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器。
由上述可知,本發(fā)明的技術(shù)方案,從節(jié)點(diǎn)在接收到主控節(jié)點(diǎn)發(fā)送的任務(wù)啟動指令后,主動選取用于該任務(wù)的端口號,將本從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給主控節(jié)點(diǎn),以使主控節(jié)點(diǎn)根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖。該技術(shù)方案將端口號的分配由主控節(jié)點(diǎn)更改為各從節(jié)點(diǎn),避免了主控節(jié)點(diǎn)分配的端口號與從節(jié)點(diǎn)已使用的端口號發(fā)生沖突,同時(shí)生成的節(jié)點(diǎn)網(wǎng)絡(luò)圖可以用于節(jié)點(diǎn)網(wǎng)絡(luò)的管理及從節(jié)點(diǎn)間的連接建立,既滿足了使用需求,同時(shí)提高了節(jié)點(diǎn)網(wǎng)絡(luò)構(gòu)建的成功率。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個實(shí)施例的一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法的流程示意圖;
圖2示出了根據(jù)本發(fā)明一個實(shí)施例的另一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法的流程示意圖;
圖3示出了根據(jù)本發(fā)明一個實(shí)施例的一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置的結(jié)構(gòu)示意圖;
圖4示出了根據(jù)本發(fā)明一個實(shí)施例的一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器的結(jié)構(gòu)示意圖;
圖5示出了根據(jù)本發(fā)明一個實(shí)施例的一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個實(shí)施例的一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法的流程示意圖,如圖1所示,該方法包括:
步驟S110,接收主控節(jié)點(diǎn)發(fā)送的任務(wù)啟動指令。
步驟S120,選取用于該任務(wù)的端口號。
步驟S130,將本從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給主控節(jié)點(diǎn),以使主控節(jié)點(diǎn)根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖。
步驟S140,接收主控節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
可見,圖1所示的方法,從節(jié)點(diǎn)在接收到主控節(jié)點(diǎn)發(fā)送的任務(wù)啟動指令后,主動選取用于該任務(wù)的端口號,將本從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給主控節(jié)點(diǎn),以使主控節(jié)點(diǎn)根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖。該技術(shù)方案將端口號的分配由主控節(jié)點(diǎn)更改為各從節(jié)點(diǎn),避免了主控節(jié)點(diǎn)分配的端口號與從節(jié)點(diǎn)已使用的端口號發(fā)生沖突,同時(shí)生成的節(jié)點(diǎn)網(wǎng)絡(luò)圖可以用于節(jié)點(diǎn)網(wǎng)絡(luò)的管理及從節(jié)點(diǎn)間的連接建立,既滿足了使用需求,同時(shí)提高了節(jié)點(diǎn)網(wǎng)絡(luò)構(gòu)建的成功率。
在本發(fā)明的一個實(shí)施例中,圖1所示的方法中,選取用于該任務(wù)的端口號包括:從本從節(jié)點(diǎn)當(dāng)前未被占用的端口號中,隨機(jī)選取一個端口號。
從節(jié)點(diǎn)上的端口號通常為65535循環(huán),隨機(jī)從未被占用的端口號中選取,效率高,同時(shí)不會產(chǎn)生端口沖突。
在本發(fā)明的一個實(shí)施例中,圖1所示的方法中,接收主控節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖包括:定期向主控節(jié)點(diǎn)發(fā)送獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求,接收主控節(jié)點(diǎn)根據(jù)該請求返回的節(jié)點(diǎn)網(wǎng)絡(luò)圖;和/或,接收主控節(jié)點(diǎn)主動下發(fā)的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
例如,每隔10分鐘向主控節(jié)點(diǎn)發(fā)送獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求,或者由主控節(jié)點(diǎn)在節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)生變更后,將更新后的節(jié)點(diǎn)網(wǎng)絡(luò)圖下發(fā)至相關(guān)的從節(jié)點(diǎn)。
各從節(jié)點(diǎn)獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的一個重要原因是,在很多情況下,從節(jié)點(diǎn)上運(yùn)行的進(jìn)程需要與其他從節(jié)點(diǎn)上的進(jìn)程進(jìn)行通信。因此在本發(fā)明的一個實(shí)施例中,圖1所示的方法還包括:根據(jù)主控節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖,與該節(jié)點(diǎn)網(wǎng)絡(luò)圖中的其他一個或多個從節(jié)點(diǎn)建立連接。
在本發(fā)明的一個實(shí)施例中,圖1所示的方法中,任務(wù)啟動指令為深度學(xué)習(xí)子任務(wù)的啟動指令;深度學(xué)習(xí)子任務(wù)包括:parameter server子任務(wù)和/或worker子任務(wù)。在此例中,parameter server作為參數(shù)服務(wù)器,需要接收worker子任務(wù)提交的計(jì)算得到的參數(shù)。
圖2示出了根據(jù)本發(fā)明一個實(shí)施例的另一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法的流程示意圖,如圖2所示,該方法包括:
步驟S210,根據(jù)輸入的任務(wù)信息,向一個或多個從節(jié)點(diǎn)發(fā)送任務(wù)啟動指令。
步驟S220,接收各從節(jié)點(diǎn)返回的主機(jī)名和端口號。
步驟S230,根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖。
步驟S240,將節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給一個或多個從節(jié)點(diǎn)。
在本發(fā)明的一個實(shí)施例中,圖2所示的方法中,將節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給一個或多個從節(jié)點(diǎn)包括:當(dāng)接收到從節(jié)點(diǎn)發(fā)送的獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求時(shí),將節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給該從節(jié)點(diǎn);和/或,將節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給與本主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)。
在本實(shí)施例中提供了兩種節(jié)點(diǎn)網(wǎng)絡(luò)圖的分發(fā)方法,可以結(jié)合使用,但并不代表對分發(fā)方法的限制,也可以在節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)生更改時(shí),將更新后的節(jié)點(diǎn)網(wǎng)絡(luò)圖僅發(fā)送給本次更新相關(guān)的節(jié)點(diǎn)。例如,任務(wù)A新增了兩個執(zhí)行節(jié)點(diǎn),節(jié)點(diǎn)13和節(jié)點(diǎn)14,任務(wù)A原執(zhí)行節(jié)點(diǎn)為節(jié)點(diǎn)1和節(jié)點(diǎn)2,那么只需要將更新后的節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給節(jié)點(diǎn)1、3、13和14。當(dāng)然,節(jié)點(diǎn)網(wǎng)絡(luò)圖也可以根據(jù)各個任務(wù)生成相應(yīng)的分圖,這樣在下發(fā)節(jié)點(diǎn)網(wǎng)絡(luò)圖時(shí)只需要將其分發(fā)給該圖中相關(guān)的節(jié)點(diǎn)即可。
在本發(fā)明的一個實(shí)施例中,圖2所示的方法中,任務(wù)信息為深度學(xué)習(xí)任務(wù)的任務(wù)信息;任務(wù)信息包括:用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量、深度學(xué)習(xí)子任務(wù)類型、各類型的子任務(wù)數(shù)量。
深度學(xué)習(xí)任務(wù)是以圖的形式進(jìn)行計(jì)算任務(wù)的提交,這些任務(wù)在執(zhí)行時(shí)會被進(jìn)一步劃分為多個作業(yè),每個作業(yè)包括一個或多個子任務(wù)。子任務(wù)類型包括如下中的一種或多種:parameter server子任務(wù)、worker子任務(wù)。
例如,TensorFlow就是一款開源的深度學(xué)習(xí)庫。Tensor(張量)意味著N維數(shù)組,F(xiàn)low(流)意味著基于數(shù)據(jù)流圖的計(jì)算,TensorFlow為張量從圖像的一端流動到另一端計(jì)算過程。該深度學(xué)習(xí)庫可以與Spark大數(shù)據(jù)計(jì)算框架進(jìn)行整合,即將一個TensorFlow任務(wù)作為一個Spark任務(wù)進(jìn)行提交,也就是上文所稱的深度學(xué)習(xí)任務(wù)。深度學(xué)習(xí)任務(wù)信息還可以包括如下中的一種或多種:執(zhí)行深度學(xué)習(xí)的計(jì)算圖;執(zhí)行深度學(xué)習(xí)任務(wù)需調(diào)用的深度學(xué)習(xí)庫接口;用于深度學(xué)習(xí)任務(wù)的數(shù)據(jù)地址;執(zhí)行結(jié)果數(shù)據(jù)的保存地址。
在本發(fā)明的一個實(shí)施例中,上述方法中,根據(jù)輸入的任務(wù)信息,向一個或多個從節(jié)點(diǎn)發(fā)送任務(wù)啟動指令包括:從與本主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)中選擇與用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量相當(dāng)?shù)膹墓?jié)點(diǎn);根據(jù)深度學(xué)習(xí)子任務(wù)類型和各類型的子任務(wù)數(shù)量,確定在各從節(jié)點(diǎn)上啟動的任務(wù);向各選擇的從節(jié)點(diǎn)發(fā)送與在該從節(jié)點(diǎn)上啟動的任務(wù)對應(yīng)的任務(wù)啟動指令。
以一個深度學(xué)習(xí)任務(wù)為例,如果根據(jù)該深度學(xué)習(xí)任務(wù)的任務(wù)信息,需要調(diào)用深度學(xué)習(xí)庫啟動2個parameter server子任務(wù)和2個worker子任務(wù),并且這四個子任務(wù)分別在四個從節(jié)點(diǎn)上執(zhí)行,那么就先確定在每個任務(wù)上執(zhí)行的子任務(wù),再向各個從節(jié)點(diǎn)發(fā)送啟動相應(yīng)的子任務(wù)的指令。
前文提及,深度學(xué)習(xí)庫可以與Spark大數(shù)據(jù)計(jì)算框架進(jìn)行整合,即分布式集群可以為Spark集群。Spark集群還可以通過Yarn進(jìn)行任務(wù)的調(diào)度、作業(yè)管理和資源管理。Yarn可以為用戶提供前端頁面用于任務(wù)的提交,因此在本發(fā)明的一個實(shí)施例中,提交的深度學(xué)習(xí)任務(wù)可以是通過前端頁面輸入的。在任務(wù)啟動后,用戶還可以根據(jù)Yarn提供的前端頁面,實(shí)時(shí)查看任務(wù)的處理狀況,對任務(wù)進(jìn)行殺死等操作。由于Spark集群還可以通過Yarn進(jìn)行任務(wù)的調(diào)度、作業(yè)管理和資源管理,因此上述實(shí)施例中,從與本主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)中選擇與用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量相當(dāng)?shù)膹墓?jié)點(diǎn)還可以通過向Yarn發(fā)送請求,獲取當(dāng)前較為空閑的節(jié)點(diǎn)來執(zhí)行深度學(xué)習(xí)任務(wù)。即:向分布式集群的節(jié)點(diǎn)調(diào)度器發(fā)送用于執(zhí)行該深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量,并接收節(jié)點(diǎn)調(diào)度器返回的多個節(jié)點(diǎn)的信息。
下面示出了為一個深度學(xué)習(xí)任務(wù)生成的節(jié)點(diǎn)網(wǎng)絡(luò)圖的示例:
{PS:[node1:8080,node2:8080]worker:[node3:9090,node4:9090]}
這意味著在節(jié)點(diǎn)1的8080端口上啟動了parameter server子任務(wù),在節(jié)點(diǎn)2的8080端口上啟動了parameter server子任務(wù);在節(jié)點(diǎn)3的9090端口上啟動了worker子任務(wù),在節(jié)點(diǎn)4的9090端口上啟動了worker子任務(wù)。接下來需要主動將節(jié)點(diǎn)網(wǎng)絡(luò)圖下發(fā)給這些從節(jié)點(diǎn),或者根據(jù)由各從節(jié)點(diǎn)發(fā)送的自恩物網(wǎng)絡(luò)列表獲取請求,將節(jié)點(diǎn)網(wǎng)絡(luò)圖下發(fā)給這些節(jié)點(diǎn)。例如,節(jié)點(diǎn)3的9090端口上啟動的worker子任務(wù)可以分別和節(jié)點(diǎn)1的8080端口上啟動的parameter server子任務(wù)以及在節(jié)點(diǎn)2的8080端口上啟動的parameter server子任務(wù)建立連接。
這些都可以在深度學(xué)習(xí)任務(wù)提交后,由Spark啟動一個Driver進(jìn)程,同時(shí)啟動一個Scheduler調(diào)度進(jìn)程,由該進(jìn)程實(shí)現(xiàn)節(jié)點(diǎn)網(wǎng)絡(luò)圖的構(gòu)建、管理和分發(fā)。
具體地,從分布式集群的文件系統(tǒng)中獲取用于該深度學(xué)習(xí)任務(wù)的數(shù)據(jù)包括:根據(jù)用于深度學(xué)習(xí)任務(wù)的數(shù)據(jù)地址,將分布式集群的文件系統(tǒng)中用于該深度學(xué)習(xí)任務(wù)的數(shù)據(jù)構(gòu)建為彈性分布式數(shù)據(jù)集RDD對象;將獲取的用于該深度學(xué)習(xí)任務(wù)的數(shù)據(jù)推送到相應(yīng)的子任務(wù)上進(jìn)行執(zhí)行包括:將RDD對象分別推送到各節(jié)點(diǎn),由各節(jié)點(diǎn)將RDD對象推送到在該節(jié)點(diǎn)中啟動的子任務(wù)上。
以Spark分布式集群為例,其數(shù)據(jù)存儲在HDFS(Hadoop Distributed File System,Hadoop分布式文件系統(tǒng))上。在操作數(shù)據(jù)時(shí),將其相應(yīng)的構(gòu)建為一個RDD(resilientdistributed dataset,彈性分布式數(shù)據(jù)集)對象。RDD對象可以復(fù)用,如果深度學(xué)習(xí)任務(wù)所用的數(shù)據(jù)已被構(gòu)建為RDD對象,那么自然就不需要執(zhí)行該步驟。在使用這些數(shù)據(jù)時(shí),通過管道(pipe)將其推送到各任務(wù)所在的從節(jié)點(diǎn)上,由各節(jié)點(diǎn)將RDD對象推送到在該從節(jié)點(diǎn)中啟動的子任務(wù)上。以上例中的深度學(xué)習(xí)任務(wù)包含兩個worker子任務(wù)為例,需要將RDD對象的一部分推送到節(jié)點(diǎn)3上,另一部分推送到節(jié)點(diǎn)4上,從而實(shí)現(xiàn)了分布式處理深度學(xué)習(xí)任務(wù)。
圖3示出了根據(jù)本發(fā)明一個實(shí)施例的一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置的結(jié)構(gòu)示意圖,該裝置可以部署在分布式集群的從節(jié)點(diǎn)上。如圖3所示,節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置300包括:
通信單元310,適于接收節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送的任務(wù)啟動指令。
端口選取單元320,適于選取用于該任務(wù)的端口號。
通信單元310,還適于將本裝置所在從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器,以使節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及各節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;以及適于接收節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
可見,圖3所示的裝置,通過各單元的相互配合,從節(jié)點(diǎn)在接收到主控節(jié)點(diǎn)發(fā)送的任務(wù)啟動指令后,主動選取用于該任務(wù)的端口號,將本從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給主控節(jié)點(diǎn),以使主控節(jié)點(diǎn)根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖。該技術(shù)方案將端口號的分配由主控節(jié)點(diǎn)更改為各從節(jié)點(diǎn),避免了主控節(jié)點(diǎn)分配的端口號與從節(jié)點(diǎn)已使用的端口號發(fā)生沖突,同時(shí)生成的節(jié)點(diǎn)網(wǎng)絡(luò)圖可以用于節(jié)點(diǎn)網(wǎng)絡(luò)的管理及從節(jié)點(diǎn)間的連接建立,既滿足了使用需求,同時(shí)提高了節(jié)點(diǎn)網(wǎng)絡(luò)構(gòu)建的成功率。
在本發(fā)明的一個實(shí)施例中,圖3所示的裝置中,端口選取單元320,適于從本裝置所在從節(jié)點(diǎn)的當(dāng)前未被占用的端口號中,隨機(jī)選取一個端口號。
在本發(fā)明的一個實(shí)施例中,圖3所示的裝置中,通信單元310,適于定期向節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求,接收節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器根據(jù)該請求返回的節(jié)點(diǎn)網(wǎng)絡(luò)圖;和/或,接收節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器主動下發(fā)的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
在本發(fā)明的一個實(shí)施例中,圖3所示的裝置中,通信單元310,還適于根據(jù)節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖,與該節(jié)點(diǎn)網(wǎng)絡(luò)圖中的其他一個或多個從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置300建立連接。
在本發(fā)明的一個實(shí)施例中,圖3所示的裝置中,任務(wù)啟動指令為深度學(xué)習(xí)子任務(wù)的啟動指令;深度學(xué)習(xí)子任務(wù)包括:parameter server子任務(wù)和/或worker子任務(wù)。
圖4示出了根據(jù)本發(fā)明一個實(shí)施例的一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器的結(jié)構(gòu)示意圖,該服務(wù)器可以部署在分布式集群的主控節(jié)點(diǎn)上。如圖4所示,節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器400包括:
通信單元410,適于根據(jù)輸入的任務(wù)信息,向一個或多個從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置發(fā)送任務(wù)啟動指令;接收各節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置返回的主機(jī)名和端口號;
節(jié)點(diǎn)網(wǎng)絡(luò)圖生成單元420,適于根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及各節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;
通信單元410,還適于將節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給一個或多個從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置。
在本發(fā)明的一個實(shí)施例中,圖4所示的服務(wù)器中,通信單元410,適于在接收到從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置發(fā)送的獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求時(shí),將節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給該從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置;和/或,將節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給與本服務(wù)器所在的主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置
在本發(fā)明的一個實(shí)施例中,圖4所示的服務(wù)器中,任務(wù)信息為深度學(xué)習(xí)任務(wù)的任務(wù)信息;任務(wù)信息包括:用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量、深度學(xué)習(xí)子任務(wù)類型、各類型的子任務(wù)數(shù)量。
在本發(fā)明的一個實(shí)施例中,圖4所示的服務(wù)器中還包括:調(diào)度單元430,適于從與本服務(wù)器所在的主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)中選擇與用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量相當(dāng)?shù)膹墓?jié)點(diǎn);根據(jù)深度學(xué)習(xí)子任務(wù)類型和各類型的子任務(wù)數(shù)量,確定在各從節(jié)點(diǎn)上啟動的任務(wù);通信單元310,適于向選擇的從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置發(fā)送與在該從節(jié)點(diǎn)上啟動的任務(wù)對應(yīng)的任務(wù)啟動指令。
需要說明的是,上述各裝置和服務(wù)器實(shí)施例的具體實(shí)施方式與前述對應(yīng)方法實(shí)施例的具體實(shí)施方式相類似,在此不再贅述。稍有不同的是,各從節(jié)點(diǎn)上不僅可以部署有節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置,還可以部署任務(wù)的執(zhí)行裝置。主控節(jié)點(diǎn)上不僅可以部署有節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器,還可以部署任務(wù)的控制服務(wù)器。當(dāng)然,這些服務(wù)器可以各自通過功能整合作為一個服務(wù)器來實(shí)現(xiàn),同一從節(jié)點(diǎn)上的各裝置也可以通過功能整合作為一個裝置來實(shí)現(xiàn)。
圖5示出了根據(jù)本發(fā)明一個實(shí)施例的一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織系統(tǒng)的結(jié)構(gòu)示意圖,如圖5所示,節(jié)點(diǎn)網(wǎng)絡(luò)自組織系統(tǒng)500包括一個或多個如上述任一實(shí)施例中的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置300和如上述任一實(shí)施例中的節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器400。
綜上所述,本發(fā)明的技術(shù)方案,從節(jié)點(diǎn)在接收到主控節(jié)點(diǎn)發(fā)送的任務(wù)啟動指令后,主動選取用于該任務(wù)的端口號,將本從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給主控節(jié)點(diǎn),以使主控節(jié)點(diǎn)根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖。該技術(shù)方案將端口號的分配由主控節(jié)點(diǎn)更改為各從節(jié)點(diǎn),避免了主控節(jié)點(diǎn)分配的端口號與從節(jié)點(diǎn)已使用的端口號發(fā)生沖突,同時(shí)生成的節(jié)點(diǎn)網(wǎng)絡(luò)圖可以用于節(jié)點(diǎn)網(wǎng)絡(luò)的管理及從節(jié)點(diǎn)間的連接建立,既滿足了使用需求,同時(shí)提高了節(jié)點(diǎn)網(wǎng)絡(luò)構(gòu)建的成功率。
需要說明的是:
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個特征有時(shí)被一起分組到單個實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個或多個設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個或者多個處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置、服務(wù)器和系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明的實(shí)施例公開了A1、一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法,其中,該方法包括:
接收主控節(jié)點(diǎn)發(fā)送的任務(wù)啟動指令;
選取用于該任務(wù)的端口號;
將本從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給所述主控節(jié)點(diǎn),以使所述主控節(jié)點(diǎn)根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;
接收所述主控節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
A2、如A1所述的方法,其中,所述選取用于該任務(wù)的端口號包括:
從本從節(jié)點(diǎn)當(dāng)前未被占用的端口號中,隨機(jī)選取一個端口號。
A3、如A1所述的方法,其中,所述接收所述主控節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖包括:
定期向所述主控節(jié)點(diǎn)發(fā)送獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求,接收所述主控節(jié)點(diǎn)根據(jù)該請求返回的節(jié)點(diǎn)網(wǎng)絡(luò)圖;
和/或,
接收所述主控節(jié)點(diǎn)主動下發(fā)的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
A4、如A1所述的方法,其中,該方法還包括:
根據(jù)所述主控節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖,與該節(jié)點(diǎn)網(wǎng)絡(luò)圖中的其他一個或多個從節(jié)點(diǎn)建立連接。
A5、如A1所述的方法,其中,
所述任務(wù)啟動指令為深度學(xué)習(xí)子任務(wù)的啟動指令;所述深度學(xué)習(xí)子任務(wù)包括:parameter server子任務(wù)和/或worker子任務(wù)。
本發(fā)明的實(shí)施例還公開了B6、一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織方法,其中,該方法包括:
根據(jù)輸入的任務(wù)信息,向一個或多個從節(jié)點(diǎn)發(fā)送任務(wù)啟動指令;
接收各從節(jié)點(diǎn)返回的主機(jī)名和端口號;
根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;
將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給一個或多個從節(jié)點(diǎn)。
B7、如B6所述的方法,其中,所述將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給一個或多個從節(jié)點(diǎn)包括:
當(dāng)接收到從節(jié)點(diǎn)發(fā)送的獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求時(shí),將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給該從節(jié)點(diǎn);
和/或,
將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給與本主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)。
B8、如B6所述的方法,其中,所述任務(wù)信息為深度學(xué)習(xí)任務(wù)的任務(wù)信息;所述任務(wù)信息包括:用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量、深度學(xué)習(xí)子任務(wù)類型、各類型的子任務(wù)數(shù)量。
B9、如B8所述的方法,其中,所述根據(jù)輸入的任務(wù)信息,向一個或多個從節(jié)點(diǎn)發(fā)送任務(wù)啟動指令包括:
從與本主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)中選擇與用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量相當(dāng)?shù)膹墓?jié)點(diǎn);
根據(jù)深度學(xué)習(xí)子任務(wù)類型和各類型的子任務(wù)數(shù)量,確定在各從節(jié)點(diǎn)上啟動的任務(wù);
向各選擇的從節(jié)點(diǎn)發(fā)送與在該從節(jié)點(diǎn)上啟動的任務(wù)對應(yīng)的任務(wù)啟動指令。
本發(fā)明的實(shí)施例還公開了C10、一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置,其中,該裝置部署在分布式集群的從節(jié)點(diǎn)上,包括:
通信單元,適于接收節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送的任務(wù)啟動指令;
端口選取單元,適于選取用于該任務(wù)的端口號;
所述通信單元,還適于將本裝置所在從節(jié)點(diǎn)的主機(jī)名和選取的端口號返回給所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器,以使所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及各節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;以及適于接收所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
C111、如C110所述的裝置,其中,
所述端口選取單元,適于從本裝置所在從節(jié)點(diǎn)的當(dāng)前未被占用的端口號中,隨機(jī)選取一個端口號。
C112、如C110所述的裝置,其中,
所述通信單元,適于定期向所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求,接收所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器根據(jù)該請求返回的節(jié)點(diǎn)網(wǎng)絡(luò)圖;和/或,接收所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器主動下發(fā)的節(jié)點(diǎn)網(wǎng)絡(luò)圖。
C113、如C110所述的裝置,其中,
所述通信單元,還適于根據(jù)所述節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器發(fā)送的節(jié)點(diǎn)網(wǎng)絡(luò)圖,與該節(jié)點(diǎn)網(wǎng)絡(luò)圖中的其他一個或多個從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置建立連接。
C114、如C110所述的裝置,其中,
所述任務(wù)啟動指令為深度學(xué)習(xí)子任務(wù)的啟動指令;所述深度學(xué)習(xí)子任務(wù)包括:parameter server子任務(wù)和/或worker子任務(wù)。
本發(fā)明的實(shí)施例還公開了D15、一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器,其中,該服務(wù)器部署在分布式集群的主控節(jié)點(diǎn)上,包括:
通信單元,適于根據(jù)輸入的任務(wù)信息,向一個或多個從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置發(fā)送任務(wù)啟動指令;接收各節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置返回的主機(jī)名和端口號;
節(jié)點(diǎn)網(wǎng)絡(luò)圖生成單元,適于根據(jù)各從節(jié)點(diǎn)啟動的任務(wù)及各節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置返回的主機(jī)名和端口號,生成節(jié)點(diǎn)網(wǎng)絡(luò)圖;
所述通信單元,還適于將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給一個或多個從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置。
D16、如D15所述的服務(wù)器,其中,
所述通信單元,適于在接收到從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置發(fā)送的獲取節(jié)點(diǎn)網(wǎng)絡(luò)圖的請求時(shí),將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給該從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置;和/或,將所述節(jié)點(diǎn)網(wǎng)絡(luò)圖發(fā)送給與本服務(wù)器所在的主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置
D17、如D15所述的服務(wù)器,其中,所述任務(wù)信息為深度學(xué)習(xí)任務(wù)的任務(wù)信息;所述任務(wù)信息包括:用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量、深度學(xué)習(xí)子任務(wù)類型、各類型的子任務(wù)數(shù)量。
D18、如D17所述的服務(wù)器,其中,該服務(wù)器還包括:
調(diào)度單元,適于從與本服務(wù)器所在的主控節(jié)點(diǎn)連接的所有從節(jié)點(diǎn)中選擇與用于執(zhí)行深度學(xué)習(xí)任務(wù)的節(jié)點(diǎn)數(shù)量相當(dāng)?shù)膹墓?jié)點(diǎn);根據(jù)深度學(xué)習(xí)子任務(wù)類型和各類型的子任務(wù)數(shù)量,確定在各從節(jié)點(diǎn)上啟動的任務(wù);
所述通信單元,適于向選擇的從節(jié)點(diǎn)上的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置發(fā)送與在該從節(jié)點(diǎn)上啟動的任務(wù)對應(yīng)的任務(wù)啟動指令。
本發(fā)明的實(shí)施例還公開了E19、一種節(jié)點(diǎn)網(wǎng)絡(luò)自組織系統(tǒng),其中,該系統(tǒng)包括一個或多個如C10-C14中任一項(xiàng)所述的節(jié)點(diǎn)網(wǎng)絡(luò)自組織裝置和如權(quán)利要求D15-D18中任一項(xiàng)所述的節(jié)點(diǎn)網(wǎng)絡(luò)自組織服務(wù)器。