System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及計算機處理,特別是涉及一種基于申威處理器的code_saturne移植方法及系統。
技術介紹
1、本部分的陳述僅僅是提供了與本專利技術相關的
技術介紹
信息,不必然構成在先技術。
2、申威處理器作為一款處理器,然而,許多常用的應用軟件往往不適用于申威處理器的高效運行,因此需要進行大量的移植優化工作。成功地進行移植是優化工作的第一步,只有當應用程序能夠成功編譯和運行時,才能開始下一步的優化工作。code_saturne是為工程師和科學家提供一個強大的工具來解決各種流體力學問題。code_saturne主要功能有流體流動模擬、傳熱分析、湍流模擬、多相流模擬、網格生成和后處理等功能模塊為一體。目前神威集群有解決流體力學問題的軟件,但都是都是單一的功能模塊或是單一問題類型,code_saturne這種綜合性的流體力學軟件暫時空缺,因此移植意義較大。
3、對于code_saturne軟件來說,使用原有的編譯方式存在兩個問題。第一個問題是:無法成功編譯該軟件。第二個問題是:即使編譯通過,運行時也可能導致計算節點宕機。因此,需要找到一種適合在申威處理器上編譯code_saturne的方式。code_saturne主要是c語言編寫,采用configure是一個腳本工具,根據系統環境和用戶需求生成makefile。申威處理器的神威集群一般的架構是登錄節點是x86機器的常見機器,計算節點是申威處理器。因此需要交叉編譯,而在現有技術中,因為軟件并不適用申威處理器,所以在configure要明確給出架構名和必要的參數選
技術實現思路
1、為了解決上述問題,本專利技術提出了一種基于申威處理器的code_saturne移植方法及系統,通過對code_saturne進行改進和編譯,得到可執行文件,使其能夠在申威處理器上運行。
2、為了實現上述目的,本專利技術采用如下技術方案:
3、第一方面,本專利技術提供一種基于申威處理器的code_saturne移植方法,包括:
4、對code_saturne進行改進,包括configure的改寫、獲取euid代碼的修改及依賴庫的動態連接;
5、對改進后的code_saturne進行編譯,生成可執行文件;
6、在申威處理器上運行生成的可執行文件。
7、進一步的技術方案,所述code_saturne中包括主文件夾、libgfortran.a文件、ld_library_path環境變量、cs_system_info.c文件和”.o”文件;所述編譯過程中生成libsaturne.a庫文件。
8、進一步的技術方案,configure的改寫具體為:先在code_saturne主文件夾下創建存放外部庫的文件夾externallib,再將libgfortran.a文件拷貝進入externallib,然后將其加入ld_library_path環境變量中。
9、進一步的技術方案,獲取euid代碼的修改具體為:將cs_system_info.c文件中409行的pwd_user賦值為空。
10、進一步的技術方案,依賴庫的動態連接采用”先鏈接再拆開再鏈接”的方式,具體為:先鏈接是通過編譯正常生成libsaturne.a文件,再拆開是將libsaturne.a和libgfortran.a用swar命令拆開為各種”.o”文件,再鏈接是將拆開得到的”.o”文件使用swar鏈接成libsaturne.a文件。
11、進一步的技術方案,configure的改寫前需要先書寫合適的configure選項。
12、進一步的技術方案,所述code_saturne中還包括--disable-shared和--enable-static,用于編譯文件。
13、第二方面,本專利技術提供一種基于申威處理器的code_saturne移植系統,包括:
14、code_saturne改進模塊,被配置為:對code_saturne進行改進,包括configure的改寫、獲取euid代碼的修改及依賴庫的動態連接;
15、編譯模塊,被配置為:對改進后的code_saturne進行編譯,生成可執行文件;
16、運行模塊,被配置為:在申威處理器上運行生成的可執行文件。
17、與現有技術相比,本專利技術的有益效果為:
18、本專利技術解決了申威處理器上常見的庫在configure有時檢測不到具體位置的問題,避免了編譯時找不到庫文件或鏈接時出現錯誤;解決了申威處理器和x86機器使用不同的動態鏈接器時導致在運行時無法找到依賴的庫的問題;還解決了軟件在申威處理器上無法正確獲取系統號以及即使獲取系統號也沒有對應的并行策略而導致運行時出現的問題和計算節點宕機的問題。
19、本專利技術成功地將code_saturne在申威處理器上進行了編譯和運行,填補了神威集群在綜合性流體力學問題軟件方面的空白。code_saturne是一款功能強大的流體力學仿真軟件,它提供了廣泛的模擬和分析功能,能夠模擬和研究各種復雜的流體流動現象。它的成功編譯和運行為國內使用國產集群的流體力學研究和工程實踐帶來了更多的選擇性,可用于航空航天、能源、環境、水利等領域。解決方案的實際操作并不復雜,為在申威處理器上進行安裝使用或進行程序優化提供了方便的安裝方案,從而大大減少了安裝時間。為使用和優化都提供了堅實的基礎。
本文檔來自技高網...【技術保護點】
1.一種基于申威處理器的Code_Saturne移植方法,其特征在于,包括:
2.如權利要求1所述的基于申威處理器的Code_Saturne移植方法,其特征在于,所述Code_Saturne中包括主文件夾、libgfortran.a文件、LD_LIBRARY_PATH環境變量、cs_system_info.c文件和”.o”文件;所述編譯過程中生成libsaturne.a文件。
3.如權利要求2所述的基于申威處理器的Code_Saturne移植方法,其特征在于,configure的改寫具體為:先在Code_Saturne主文件夾下創建存放外部庫的文件夾externallib,再將libgfortran.a文件拷貝進入externallib,然后將其加入LD_LIBRARY_PATH環境變量中。
4.如權利要求2所述的基于申威處理器的Code_Saturne移植方法,其特征在于,獲取euid代碼的修改具體為:將cs_system_info.c文件中409行的pwd_user賦值為空。
5.如權利要求2所述的基于申威處理器的Code_Sa
6.如權利要求1所述的基于申威處理器的Code_Saturne移植方法,其特征在于,configure的改寫前需要先書寫合適的configure選項。
7.如權利要求1所述的基于申威處理器的Code_Saturne移植方法,其特征在于,所述Code_Saturne中還包括--disable-shared和--enable-static,用于編譯文件。
8.一種基于申威處理器的Code_Saturne移植系統,其特征在于,包括:
9.一種計算機可讀存儲介質,其上存儲有程序,其特征在于,該程序被處理器執行時實現如權利要求1-7任一項所述的基于申威處理器的Code_Saturne移植方法中的步驟。
10.一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的程序,其特征在于,所述處理器執行所述程序時實現如權利要求1-7任一項所述的基于申威處理器的Code_Saturne移植方法中的步驟。
...【技術特征摘要】
1.一種基于申威處理器的code_saturne移植方法,其特征在于,包括:
2.如權利要求1所述的基于申威處理器的code_saturne移植方法,其特征在于,所述code_saturne中包括主文件夾、libgfortran.a文件、ld_library_path環境變量、cs_system_info.c文件和”.o”文件;所述編譯過程中生成libsaturne.a文件。
3.如權利要求2所述的基于申威處理器的code_saturne移植方法,其特征在于,configure的改寫具體為:先在code_saturne主文件夾下創建存放外部庫的文件夾externallib,再將libgfortran.a文件拷貝進入externallib,然后將其加入ld_library_path環境變量中。
4.如權利要求2所述的基于申威處理器的code_saturne移植方法,其特征在于,獲取euid代碼的修改具體為:將cs_system_info.c文件中409行的pwd_user賦值為空。
5.如權利要求2所述的基于申威處理器的code_saturne移植方法,其特征在于,依賴庫的動態連接采用”先鏈接再拆開再鏈接”的方式,具體為:先鏈接是通...
【專利技術屬性】
技術研發人員:陳彥言,徐希豪,劉輝,
申請(專利權)人:濟南超級計算中心有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。