專利名稱:適于集群系統(tǒng)的并行程序集成開發(fā)系統(tǒng)及其應(yīng)用實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)及其應(yīng)用實(shí)現(xiàn)方法。
背景技術(shù):
集成開發(fā)環(huán)境(Integrated Development Environment, IDE)是當(dāng)前軟件工程師 進(jìn)行軟件研發(fā)的主要工具和手段,它通常集成了編輯器、編譯器和調(diào)試器,允許軟件工程師 進(jìn)行程序源代碼的編寫、修改、編譯和調(diào)試。當(dāng)前市場上有多個(gè)廣泛使用的集成開發(fā)環(huán)境, 其中有影響力的包括微軟公司的Microsoft Visual Studio. Net和開源軟件Eclipse。
各類軟件可以依據(jù)執(zhí)行方式分為串行程序和并行程序兩類串行程序是指軟件 或程序在執(zhí)行過程中由單個(gè)進(jìn)程或線程獨(dú)自完成所有的計(jì)算工作;并行程序是指軟件或 程序在執(zhí)行過程中由多個(gè)進(jìn)程或線程協(xié)同工作完成計(jì)算工作。隨著多核處理器和集群 (Cluster,即多臺計(jì)算機(jī)通過內(nèi)部網(wǎng)絡(luò)互聯(lián)成一個(gè)整體進(jìn)行計(jì)算)的廣泛使用,當(dāng)前并行 程序在軟件開發(fā)中所占比重正逐步增加。 現(xiàn)有的集成開發(fā)環(huán)境主要針對單臺計(jì)算機(jī)進(jìn)行工作,即程序的編寫、編譯和調(diào)
試等工作均在一臺計(jì)算機(jī)進(jìn)行,對集群系統(tǒng)下的并行程序開發(fā)缺乏良好的支持。最新的 Microsoft Visual Studio. Net 2008支持并行程序的開發(fā),但仍然采用一份編譯器系統(tǒng),
即實(shí)際程序的編譯只能在一臺計(jì)算機(jī)完成,編譯生成的可執(zhí)行程序只能在和編譯器所在的
計(jì)算機(jī)相同或相近的系統(tǒng)中運(yùn)行,不具有多平臺(如Li皿x、Unix)等環(huán)境的可移植性。 現(xiàn)有的并行程序開發(fā)方法有兩種第一種方法是在單機(jī)集成開發(fā)環(huán)境l',如
Microsoft Visual Studio中開發(fā)、調(diào)試、編譯所述的并行程序,生成可執(zhí)行文件(如圖l所
示)。但此時(shí)生成的可執(zhí)行文件缺乏多平臺環(huán)境下的可移植性,并行程序執(zhí)行需要手工復(fù)制
單機(jī)環(huán)境下生成的可執(zhí)行文件到集群環(huán)境2'中,而后才可繼續(xù)執(zhí)行。第二種方法是在缺乏
單機(jī)集成開發(fā)環(huán)境的情況下,直接在集群環(huán)境中開發(fā)并行程序,這將導(dǎo)致編譯、調(diào)試存在一
定的困難,雖然開發(fā)的程序滿足一定的平臺移植性,但開發(fā)過程和難度都很大。 另夕卜,中國專利申請"三層架構(gòu)下的集成編譯環(huán)境的實(shí)現(xiàn)方法"(公開號
CN101097525)提出了一種三層架構(gòu)下的集成編譯環(huán)境的實(shí)現(xiàn)方法,其使用XML作為主文
件、中間件、主機(jī)信息環(huán)境變量,利用操作系統(tǒng)的編譯器進(jìn)行編譯。但這種技術(shù)主要是為了
實(shí)現(xiàn)對后臺程序的集中管理,尤其是復(fù)雜應(yīng)用版本管理等,缺乏對并行程序開發(fā)和分布式
集群環(huán)境的支持。 整體而言,現(xiàn)有的技術(shù)和產(chǎn)品大多不支持面向集群環(huán)境的并行程序的開發(fā);個(gè)別 最新產(chǎn)品能夠編譯生成可運(yùn)行于集群系統(tǒng)的并行程序,但編譯工作仍在單機(jī)客戶端進(jìn)行, 缺乏集群環(huán)境的驗(yàn)證,且生成的目標(biāo)代碼不具備跨操作系統(tǒng)的可移植性。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)及其
4應(yīng)用實(shí)現(xiàn)方法,在所述的并行程序集成開發(fā)系統(tǒng)中,通過在個(gè)人開發(fā)單機(jī)端和程序運(yùn)行的 集群服務(wù)器端同時(shí)建立配置編譯和運(yùn)行環(huán)境,能夠使得開發(fā)的并行程序具有良好的可移植 性,并且使得并行程序的開發(fā)更為簡潔方便。 為達(dá)上述目的,本發(fā)明提供一種適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng),
其包括通過以太網(wǎng)連接的單機(jī)端的集成開發(fā)系統(tǒng)和集群服務(wù)器端的集群系統(tǒng); 所述的單機(jī)端的集成開發(fā)系統(tǒng)為遠(yuǎn)程開發(fā),是整個(gè)系統(tǒng)的入口 ,響應(yīng)各類請求;其
包含并行程序集成開發(fā)模塊,并行程序開發(fā)的中間模塊和單機(jī)端操作系統(tǒng); 所述的并行程序集成開發(fā)模塊進(jìn)行并行程序代碼的編寫和調(diào)試,獲得調(diào)試通過的
并行程序源代碼; 所述的并行程序開發(fā)的中間模塊包含分別和并行程序集成開發(fā)模塊信號連接的 通信服務(wù)模塊、服務(wù)配置模塊以及遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊; 所述的遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊將單機(jī)端集成開發(fā)產(chǎn)生的源代碼程序自動傳輸 到遠(yuǎn)程集群服務(wù)器端的集群系統(tǒng)中,在單機(jī)端的控制下,在遠(yuǎn)程集群系統(tǒng)中完成編譯及運(yùn) 行; 所述的集群服務(wù)器端的集群系統(tǒng)為遠(yuǎn)程開發(fā)代理,包括若干節(jié)點(diǎn)和高速網(wǎng)絡(luò),所 述的節(jié)點(diǎn)對并行程序進(jìn)行遠(yuǎn)程控制和運(yùn)行,該節(jié)點(diǎn)和節(jié)點(diǎn)之間的信息傳遞通過所述的高速 網(wǎng)絡(luò)完成; 所述的節(jié)點(diǎn)為高性能服務(wù)器,包含編譯器和MPI消息通信庫模塊; 所述的編譯器與單機(jī)端集成開發(fā)系統(tǒng)中的并行程序集成開發(fā)模塊無縫集成,可方
便地從該并行程序集成開發(fā)模塊中對源代碼進(jìn)行調(diào)用、編譯、調(diào)試和運(yùn)行處理,該編譯器具
備并行集成開發(fā)系統(tǒng)的調(diào)試和分析功能; 所述的MPI消息通信庫模塊為并行程序源代碼的開發(fā)、編譯、調(diào)試及運(yùn)行進(jìn)行優(yōu) 化。 所述的單機(jī)端和集群服務(wù)器端之間通過標(biāo)準(zhǔn)ftp(File Transfer Protocol, 文件傳輸協(xié)議)/sftp (Secure File Transfer Protocol,安全文件傳輸協(xié)議)、 telnet (Internet的遠(yuǎn)程登錄協(xié)議)以及遠(yuǎn)程開發(fā)協(xié)議實(shí)現(xiàn)協(xié)同工作,進(jìn)行數(shù)據(jù)傳輸。
所述的通信服務(wù)模塊實(shí)現(xiàn)在并行程序開發(fā)過程中單機(jī)端和集群服務(wù)器端之間的 遠(yuǎn)程交互;如實(shí)現(xiàn)本地單機(jī)端和集群服務(wù)器端建立工程的開發(fā)模式、遠(yuǎn)端編譯報(bào)錯(cuò)信息的 本地單機(jī)端定位、在本地單機(jī)端和集群服務(wù)器端制定路徑文件的查找和定位、單機(jī)端和集 群服務(wù)器端之間的多重遠(yuǎn)程動態(tài)連接。 所述的服務(wù)配置模塊中包括和集群服務(wù)器端建立連接的配置,以及在并行程序開 發(fā)過程中支持各個(gè)單機(jī)端協(xié)作開發(fā)的配置。 進(jìn)一步,所述的并行程序開發(fā)的中間模塊還包括和并行程序集成開發(fā)模塊信號 連接的支持若干軟件語言的編輯器,其包含程序模板調(diào)用模塊、MPI (Message Passing Interface,消息傳遞接口 )庫函數(shù)調(diào)用模塊、C庫函數(shù)調(diào)用模塊、Fortran庫函數(shù)調(diào)用模 塊以及其他常用的庫函數(shù)調(diào)用模塊;提供簡單、易用的代碼編輯環(huán)境,完成基于C/C++及 Fortran語言的并行程序開發(fā)。 所述的節(jié)點(diǎn)還包含數(shù)學(xué)函數(shù)庫模塊,包括C庫函數(shù)調(diào)用模塊、Fortran庫函數(shù)調(diào)用 模塊以及其他常用的庫函數(shù)調(diào)用模塊,使得編譯器支持C、C++、Fotran77和Fortran99的軟件語言。 本發(fā)明還提供一種適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)的實(shí)現(xiàn)方法,其 包括以下步驟 步驟1、在單機(jī)端的集成開發(fā)系統(tǒng)和集群服務(wù)器端的集群系統(tǒng)中均建立并配置并 行程序編譯和運(yùn)行環(huán)境,使得源代碼在單機(jī)端和集群服務(wù)器端具有可移植性;
步驟2、在單機(jī)端集成開發(fā)系統(tǒng)的并行程序集成開發(fā)模塊中進(jìn)行并行程序代碼的 編寫和調(diào)試,獲得調(diào)試通過的并行程序源代碼; 步驟3、將步驟2中所得到的并行程序源代碼自動傳輸?shù)郊悍?wù)器端; 步驟4、在集群服務(wù)器端的集群系統(tǒng)中對所述的并行程序源代碼完成編譯,最終基
于該集群系統(tǒng)生成可執(zhí)行的并行程序文件。 所述的步驟1中,單機(jī)端的集成開發(fā)系統(tǒng)的程序編譯和運(yùn)行環(huán)境包含遠(yuǎn)程編譯和 調(diào)試運(yùn)行模塊;所述的集群服務(wù)器端的集群系統(tǒng)中的程序編譯和運(yùn)行環(huán)境包含編譯器和 MPI消息通信庫模塊。 所述的步驟3具體為單機(jī)端的遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊將單機(jī)端集成開發(fā)產(chǎn)生 的源代碼程序傳輸?shù)竭h(yuǎn)程集群服務(wù)器端集群系統(tǒng)中的編譯器中。
所述的步驟4具體包含以下步驟 步驟4. 1、在單機(jī)端的控制下,利用通信服務(wù)模塊,在遠(yuǎn)程集群系統(tǒng)的編譯器中,根 據(jù)當(dāng)前系統(tǒng)配置,對并行程序源代碼完成編譯及運(yùn)行,并由MPI消息通信庫模塊進(jìn)行程序 優(yōu)化,生成可執(zhí)行的并行程序文件; 步驟4. 2、集群服務(wù)器端將編譯執(zhí)行后生成的并行程序文件及時(shí)發(fā)送到單機(jī)端,呈 現(xiàn)給用戶;若編譯出錯(cuò),向單機(jī)端提供錯(cuò)誤定位信息。 本發(fā)明提供的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)及其應(yīng)用實(shí)現(xiàn)方法, 具有以下特點(diǎn) 1、同時(shí)在個(gè)人開發(fā)單機(jī)端和集群服務(wù)器端配置并行程序的編譯環(huán)境; 2、個(gè)人開發(fā)單機(jī)端向集群服務(wù)器端傳輸?shù)牟皇且呀?jīng)編譯完成的可執(zhí)行文件,而是
經(jīng)過調(diào)試通過的并行程序源代碼; 3、在集群服務(wù)器端的集群系統(tǒng)中完成并行程序源代碼的最終編譯,基于該集群系 統(tǒng)生成可執(zhí)行的并行程序。 本發(fā)明提供的集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)及其應(yīng)用實(shí)現(xiàn)方法,具有 以下有益效果 1、由于并行程序源代碼的編寫和調(diào)試是在個(gè)人開發(fā)單機(jī)端完成的,開發(fā)者無需考 慮集群系統(tǒng)的配置或環(huán)境,使得開發(fā)和調(diào)試更為簡潔方便; 2、由于在單機(jī)端和集群服務(wù)器端傳輸?shù)氖遣⑿谐绦蛟创a,而不是可執(zhí)行程序, 這使得整個(gè)開發(fā)系統(tǒng)具有良好的可移植性,針對使用不同版本操作系統(tǒng)的集群服務(wù)器,通 過預(yù)先配置的編譯環(huán)境,即可依據(jù)單機(jī)端開發(fā)生成的源代碼生成適合當(dāng)前集群服務(wù)器使用 的操作系統(tǒng)的可執(zhí)行文件; 3、通過單機(jī)端和集群服務(wù)器端之間的通信模塊等的設(shè)置,可以實(shí)現(xiàn)源代碼的自動 傳輸和服務(wù)器端的自動編譯,無需程序開發(fā)人員參與,有效提高并行程序開發(fā)的效率。
圖1為現(xiàn)有技術(shù)中的并行程序開發(fā)方法的原理示意圖; 圖2為本發(fā)明提供的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)的示意圖;
圖3為本發(fā)明中的集群服務(wù)器端的集群系統(tǒng)的硬件結(jié)構(gòu)圖; 圖4為本發(fā)明提供的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)的應(yīng)用實(shí)現(xiàn) 方法的原理示意圖。
具體實(shí)施例方式
以下結(jié)合圖2 圖4,詳細(xì)說明本發(fā)明的一種較佳實(shí)施方式。 如圖2所示,為本發(fā)明提供的一種適于集群系統(tǒng)的分布式并行程序集成開發(fā)系 統(tǒng),其包括通過100M的以太網(wǎng)3連接的單機(jī)端(也稱客戶端)1的集成開發(fā)系統(tǒng)和集群服 務(wù)器端2的集群系統(tǒng); 所述的單機(jī)端1的集成開發(fā)系統(tǒng)為遠(yuǎn)程開發(fā),是整個(gè)系統(tǒng)的入口 ,響應(yīng)用戶的各 類請求;其包含并行程序集成開發(fā)模塊ll,并行程序開發(fā)的中間模塊和單機(jī)端操作系統(tǒng) 13 ; 所述的并行程序集成開發(fā)模塊11進(jìn)行并行程序代碼的編寫和調(diào)試,獲得調(diào)試通 過的并行程序源代碼; 所述的并行程序開發(fā)的中間模塊包含分別和并行程序集成開發(fā)模塊11信號連 接的通信服務(wù)模塊121、服務(wù)配置模塊122以及遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊123 ;
所述的遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊123將單機(jī)端1集成開發(fā)產(chǎn)生的源代碼程序自動 傳輸?shù)竭h(yuǎn)程集群服務(wù)器端2的集群系統(tǒng)中,在單機(jī)端1的控制下,在遠(yuǎn)程集群系統(tǒng)中完成編 譯及運(yùn)行; 所述的單機(jī)端操作系統(tǒng)13支持Windows/Li皿x操作系統(tǒng); 所述的集群服務(wù)器端2的集群系統(tǒng)為遠(yuǎn)程開發(fā)代理,如圖3所示,其包括若干節(jié) 點(diǎn)21和高速網(wǎng)絡(luò)22,所述的節(jié)點(diǎn)21對并行程序進(jìn)行遠(yuǎn)程控制和運(yùn)行,各個(gè)節(jié)點(diǎn)21之間的 信息傳遞通過所述的高速網(wǎng)絡(luò)22完成,該高速網(wǎng)絡(luò)22可以是千兆以太網(wǎng)(Gig-E),或者是 Myrinet,或者是InfiniBand ; 本實(shí)施例中,所述的節(jié)點(diǎn)21為超級計(jì)算機(jī),支持Li皿x操作系統(tǒng),包含編譯器211 和MPI消息通信庫模塊212 ; 所述的編譯器211與單機(jī)端1集成開發(fā)系統(tǒng)中的并行程序集成開發(fā)模塊11無縫 集成,可方便地從該并行程序集成開發(fā)模塊11中對源代碼進(jìn)行調(diào)用、編譯、調(diào)試和運(yùn)行處 理,該編譯器211具備并行集成開發(fā)系統(tǒng)的調(diào)試和分析功能; 所述的MPI消息通信庫模塊212為并行程序源代碼的開發(fā)、編譯、調(diào)試及運(yùn)行進(jìn)行 優(yōu)化,本實(shí)施例中,采用MPI庫作為MPI消息通信庫模塊212,其為針對曙光4000A集群系統(tǒng) 的通信和消息庫測評分析之后,經(jīng)過優(yōu)化配置的。 所述的單機(jī)端1和集群服務(wù)器端2之間通過標(biāo)準(zhǔn)ftp/sftp、telnet以及遠(yuǎn)程開發(fā) 協(xié)議實(shí)現(xiàn)協(xié)同工作,進(jìn)行數(shù)據(jù)傳輸。 所述的通信服務(wù)模塊121實(shí)現(xiàn)在并行程序開發(fā)過程中單機(jī)端1和集群服務(wù)器端2 之間的遠(yuǎn)程交互;如實(shí)現(xiàn)本地單機(jī)端1和集群服務(wù)器端2建立工程的開發(fā)模式、遠(yuǎn)端編譯報(bào)錯(cuò)信息的本地單機(jī)端1定位、在本地單機(jī)端1和集群服務(wù)器端2制定路徑文件的查找和定 位、單機(jī)端1和集群服務(wù)器端2之間的多重遠(yuǎn)程動態(tài)連接。 所述的服務(wù)配置模塊122中包括和集群服務(wù)器端建立連接的配置,以及在并行程 序開發(fā)過程中支持各個(gè)單機(jī)端1協(xié)作開發(fā)的配置。 進(jìn)一步,所述的并行程序開發(fā)的中間模塊還包括和并行程序集成開發(fā)模塊11信 號連接的支持若干軟件語言的編輯器124,其包含程序模板調(diào)用模塊1241、MPI庫函數(shù)調(diào)用 模塊1242、C庫函數(shù)調(diào)用模塊1243、 Fortran庫函數(shù)調(diào)用模塊1244以及其他常用的庫函數(shù) 調(diào)用模塊1245 ;提供簡單、易用的代碼編輯環(huán)境,完成基于0/[++及?01^1^11語言的并行程 序開發(fā)。 所述的節(jié)點(diǎn)21還包含數(shù)學(xué)函數(shù)庫模塊,包括C庫函數(shù)調(diào)用模塊、Fortran庫函數(shù) 調(diào)用模塊以及其他常用的庫函數(shù)調(diào)用模塊,使得編譯器支持C、C++、Fotran77和Fortran99 的軟件語言;本實(shí)施例中,該數(shù)學(xué)函數(shù)庫模塊包含Li皿x標(biāo)準(zhǔn)庫213 (Li皿x操作系統(tǒng)自帶的 編程函數(shù)庫)和其他常用的庫函數(shù)調(diào)用模塊214。 如圖4所示,本發(fā)明還提供一種適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)的 應(yīng)用實(shí)現(xiàn)方法,其包括以下步驟 步驟1、在單機(jī)端1的集成開發(fā)系統(tǒng)和集群服務(wù)器端2的集群系統(tǒng)中均建立并配置 并行程序編譯和運(yùn)行環(huán)境,使得源代碼在單機(jī)端1和集群服務(wù)器端2具有可移植性;
步驟2、在單機(jī)端1集成開發(fā)系統(tǒng)的并行程序集成開發(fā)模塊11中進(jìn)行并行程序代 碼的編寫和調(diào)試,獲得調(diào)試通過的并行程序源代碼; 步驟3、將步驟2中所得到的并行程序源代碼自動傳輸?shù)郊悍?wù)器端2 ; 步驟4、在集群服務(wù)器端的集群系統(tǒng)中對所述的并行程序源代碼完成編譯,最終基
于該集群系統(tǒng)生成可執(zhí)行的并行程序文件。 所述的步驟1中,單機(jī)端1的集成開發(fā)系統(tǒng)的程序編譯和運(yùn)行環(huán)境包含遠(yuǎn)程編譯 和調(diào)試運(yùn)行模塊123 ;所述的集群服務(wù)器端2的集群系統(tǒng)中的程序編譯和運(yùn)行環(huán)境包含編 譯器211和MPI消息通信庫模塊212。 所述的步驟3具體為單機(jī)端1的遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊123將單機(jī)端1集成 開發(fā)產(chǎn)生的源代碼程序傳輸?shù)竭h(yuǎn)程集群服務(wù)器端2集群系統(tǒng)中的編譯器211中。
所述的步驟4具體包含以下步驟 步驟4. 1、在單機(jī)端1的控制下,利用通信服務(wù)模塊121,在遠(yuǎn)程集群系統(tǒng)的編譯器 211中,根據(jù)當(dāng)前系統(tǒng)配置,對并行程序源代碼完成編譯及運(yùn)行,并由MPI消息通信庫模塊 212進(jìn)行程序優(yōu)化,生成可執(zhí)行的并行程序文件; 步驟4. 2、集群服務(wù)器端2將編譯執(zhí)行后生成的并行程序文件及時(shí)發(fā)送到單機(jī)端 2,呈現(xiàn)給用戶;若編譯出錯(cuò),向單機(jī)端2提供錯(cuò)誤定位信息。 本發(fā)明提供的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)及其應(yīng)用實(shí)現(xiàn)方法, 具有以下有益效果 1、由于并行程序源代碼的編寫和調(diào)試是在個(gè)人開發(fā)單機(jī)端完成的,開發(fā)者無需考 慮集群系統(tǒng)的配置或環(huán)境,使得開發(fā)和調(diào)試更為簡潔方便; 2、由于在單機(jī)端和集群服務(wù)器端傳輸?shù)氖遣⑿谐绦蛟创a,而不是可執(zhí)行程序, 這使得整個(gè)開發(fā)系統(tǒng)具有良好的可移植性,針對使用不同版本操作系統(tǒng)的集群服務(wù)器,通過預(yù)先配置的編譯環(huán)境,即可依據(jù)單機(jī)端開發(fā)生成的源代碼生成適合當(dāng)前集群服務(wù)器使用 的操作系統(tǒng)的可執(zhí)行文件; 3、通過單機(jī)端和集群服務(wù)器端之間的通信模塊等的設(shè)置,可以實(shí)現(xiàn)源代碼的自動 傳輸和服務(wù)器端的自動編譯,無需程序開發(fā)人員參與,有效提高并行程序開發(fā)的效率。
權(quán)利要求
一種適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng),包括通過以太網(wǎng)(3)連接的單機(jī)端(1)集成開發(fā)系統(tǒng)和集群服務(wù)器端(2)集群系統(tǒng);其特征在于所述的單機(jī)端(1)的集成開發(fā)系統(tǒng)為遠(yuǎn)程開發(fā),其包含進(jìn)行并行程序源代碼編寫和調(diào)試的并行程序集成開發(fā)模塊(11),并行程序開發(fā)的中間模塊和單機(jī)端操作系統(tǒng)(13);所述的并行程序開發(fā)的中間模塊包含分別和并行程序集成開發(fā)模塊(11)信號連接的通信服務(wù)模塊(121)、服務(wù)配置模塊(122)以及遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊(123);所述的遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊(123)將單機(jī)端(1)集成開發(fā)產(chǎn)生的并行程序源代碼傳輸?shù)竭h(yuǎn)程集群服務(wù)器端(2)的集群系統(tǒng)中,在單機(jī)端(1)的控制下,在遠(yuǎn)程集群系統(tǒng)中編譯及運(yùn)行;所述的集群服務(wù)器端(2)的集群系統(tǒng)為遠(yuǎn)程開發(fā)代理,其包括若干對并行程序進(jìn)行遠(yuǎn)程控制和運(yùn)行的節(jié)點(diǎn)(21)以及實(shí)現(xiàn)各節(jié)點(diǎn)(21)之間信息傳遞的高速網(wǎng)絡(luò)(22);所述的節(jié)點(diǎn)(21)包含編譯器(211)和MPI消息通信庫模塊(212);所述的編譯器(211)與單機(jī)端(1)集成開發(fā)系統(tǒng)中的并行程序集成開發(fā)模塊(11)無縫集成,從該并行程序集成開發(fā)模塊(11)中對并行程序源代碼進(jìn)行調(diào)用、編譯、調(diào)試和運(yùn)行處理;所述的MPI消息通信庫模塊(212)為并行程序源代碼的開發(fā)、編譯、調(diào)試及運(yùn)行進(jìn)行優(yōu)化。
2. 如權(quán)利要求1所述的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng),其特征在于, 所述的單機(jī)端(1)和集群服務(wù)器端(2)之間通過標(biāo)準(zhǔn)ftp/sftp、telnet協(xié)議以及遠(yuǎn)程開發(fā) 協(xié)議實(shí)現(xiàn)協(xié)同工作,進(jìn)行數(shù)據(jù)傳輸。
3. 如權(quán)利要求1所述的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng),其特征在于, 所述的通信服務(wù)模塊(121)實(shí)現(xiàn)在并行程序開發(fā)過程中單機(jī)端(1)和集群服務(wù)器端(2)之 間的遠(yuǎn)程交互。
4. 如權(quán)利要求1所述的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng),其特征在于, 所述的服務(wù)配置模塊(122)中包括和集群服務(wù)器端建立連接的配置,以及在并行程序開發(fā) 過程中支持各個(gè)單機(jī)端(1)協(xié)作開發(fā)的配置。
5. 如權(quán)利要求1所述的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng),其特征在于, 所述的并行程序開發(fā)的中間模塊還包括和并行程序集成開發(fā)模塊(11)信號連接的編輯器 (124),其包含程序模板調(diào)用模塊(1241) 、 MPI庫函數(shù)調(diào)用模塊(1242) 、 C庫函數(shù)調(diào)用模塊 (1243)和Fortran庫函數(shù)調(diào)用模塊(1244)。
6. 如權(quán)利要求1所述的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng),其特征在于, 所述的節(jié)點(diǎn)(21)還包含數(shù)學(xué)函數(shù)庫模塊,其包括C庫函數(shù)調(diào)用模塊和Fortran庫函數(shù)調(diào)用 模塊。
7. —種如權(quán)利要求1所述的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)的應(yīng)用實(shí) 現(xiàn)方法,其特征在于,包含以下步驟步驟1、在單機(jī)端(1)的集成開發(fā)系統(tǒng)和集群服務(wù)器端(2)的集群系統(tǒng)中均建立并配置 并行程序編譯和運(yùn)行環(huán)境;步驟2、在單機(jī)端(1)集成開發(fā)系統(tǒng)的并行程序集成開發(fā)模塊(11)中進(jìn)行并行程序源 代碼的編寫和調(diào)試,獲得調(diào)試通過的并行程序源代碼;步驟3、將步驟2中所得到的并行程序源代碼自動傳輸?shù)郊悍?wù)器端(2); 步驟4、在集群服務(wù)器端(2)的集群系統(tǒng)中對所述的并行程序源代碼完成編譯,最終基 于該集群系統(tǒng)生成可執(zhí)行的并行程序文件。
8. 如權(quán)利要求7所述的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)的應(yīng)用實(shí)現(xiàn)方 法,其特征在于,所述的步驟1中,單機(jī)端(1)的集成開發(fā)系統(tǒng)的程序編譯和運(yùn)行環(huán)境包含 遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊(123);所述的集群服務(wù)器端(2)的集群系統(tǒng)中的程序編譯和運(yùn) 行環(huán)境包含編譯器(211)和MPI消息通信庫模塊(212)。
9. 如權(quán)利要求7所述的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)的應(yīng)用實(shí)現(xiàn)方 法,其特征在于,所述的步驟3具體為單機(jī)端(1)的遠(yuǎn)程編譯和調(diào)試運(yùn)行模塊(123)將單 機(jī)端(1)集成開發(fā)產(chǎn)生的源代碼程序傳輸?shù)竭h(yuǎn)程集群服務(wù)器端(2)集群系統(tǒng)中的編譯器 (211)中。
10. 如權(quán)利要求7所述的適于集群系統(tǒng)的分布式并行程序集成開發(fā)系統(tǒng)的應(yīng)用實(shí)現(xiàn)方 法,其特征在于,所述的步驟4具體包含以下步驟步驟4. 1、在單機(jī)端(1)的控制下,利用通信服務(wù)模塊(121),在遠(yuǎn)程集群系統(tǒng)的編譯器 (211)中,根據(jù)當(dāng)前系統(tǒng)配置,對并行程序源代碼完成編譯及運(yùn)行,并由MPI消息通信庫模 塊(212)進(jìn)行程序優(yōu)化,生成可執(zhí)行的并行程序文件;步驟4.2、集群服務(wù)器端(2)將編譯執(zhí)行后生成的并行程序文件及時(shí)發(fā)送到單機(jī)端 (2),呈現(xiàn)給用戶;若編譯出錯(cuò),向單機(jī)端(2)提供錯(cuò)誤定位信息。
全文摘要
本發(fā)明涉及一種適于集群系統(tǒng)的并行程序集成開發(fā)系統(tǒng)及其應(yīng)用實(shí)現(xiàn)方法,在所述的并行程序集成開發(fā)系統(tǒng)中,通過在個(gè)人開發(fā)單機(jī)端和程序運(yùn)行的集群服務(wù)器端同時(shí)建立配置編譯和運(yùn)行環(huán)境,由單機(jī)端完成并行程序源代碼的編寫和調(diào)試,并將該源代碼傳輸至集群服務(wù)器端,根據(jù)系統(tǒng)配置進(jìn)行遠(yuǎn)程編譯和調(diào)試,生成并行程序的可執(zhí)行文件。使用本發(fā)明系統(tǒng)和方法,使得開發(fā)的并行程序具有良好的可移植性,并且使得并行程序的開發(fā)更為簡潔方便,效率得以提高。
文檔編號H04L29/08GK101727316SQ20081020155
公開日2010年6月9日 申請日期2008年10月22日 優(yōu)先權(quán)日2008年10月22日
發(fā)明者姚繼峰, 姜愷 申請人:上海超級計(jì)算中心