摘 要:本文以一型油船艏樓結(jié)構(gòu)有限元模型在天津超算平臺的計算實現(xiàn)為例,探討在本地微機上進(jìn)行ANSYS前、后處理,在遠(yuǎn)程超算平臺上使用ANSYS分布式并行計算求解的業(yè)務(wù)模式。通過具體應(yīng)用,探索一種處理大規(guī)模有限元計算的新方式。
關(guān)鍵詞:超算平臺;并行計算;有限元
1 引 言
由于技術(shù)的發(fā)展和要求,ANSYS等計算密集型軟件的應(yīng)用越來越多,人們對計算速度和計算規(guī)模的要求越來越高。而個人計算機受到硬件架構(gòu)和系統(tǒng)軟件的限制,已很難滿足這種大規(guī)模及高性能計算的需求。而高性能計算集群的出現(xiàn),可以充分發(fā)揮各類軟件的并行計算能力,很大程度上解決了計算速度和計算規(guī)模的問題。目前,隨著國家推進(jìn)智慧城市發(fā)展政策的指引,國內(nèi)多個大城市均開始建設(shè)超級計算平臺,部分超級計算平臺已部署了ANSYS等應(yīng)用軟件,使中小型科研設(shè)計院所及工程建造企業(yè)通過政府的超算平臺解決企業(yè)高性能計算問題成為可能。但由于超算中心日常運維成本很高,為了盡量減少超算資源的占用,我們將有限元前、后處理工作放在本地計算機上完成。
2 應(yīng)用概述
2.1 超算應(yīng)用的軟硬件環(huán)境及業(yè)務(wù)流程
2.1.1 遠(yuǎn)程超算中心環(huán)境
天津超算中心的主業(yè)務(wù)計算機是當(dāng)前世界上運算速度最快之一的“天河一號”超級計算機,峰值速度為每秒1206萬億次雙精度浮點運算(TFlops),持續(xù)速度為563.1TFlops(LINPACK實測值),是我國首臺千萬億次超級計算機系統(tǒng)。
2.1.3 業(yè)務(wù)流程
目前超算平臺暫時未提供用戶圖形交互操作界面,用戶只能把預(yù)先編制好的命令行作業(yè)文件提交到超算平臺上執(zhí)行批量計算。以下為本應(yīng)用的業(yè)務(wù)流程:
(1)在本地建立ANSYS有限元幾何模型,編制ANSYS計算作業(yè)文件、超算平臺作業(yè)調(diào)度文件;
(2)登錄遠(yuǎn)程超級計算機,上傳作業(yè)文件和作業(yè)調(diào)度文件,提交計算作業(yè);
(3)觀察計算過程;
(4)讀取計算結(jié)果;
(5)在本地完成有限元計算后處理。
2.2 本地準(zhǔn)備工作
2.2.1 建立有限元幾何模型
Ansys軟件擁有良好的前處理交互界面,建立幾何模型所需的計算機資源少,在微機上也可方便地建立比較復(fù)雜的幾何模型,因此本應(yīng)用首先在微機上建立整個艏樓的幾何模型,并設(shè)置好模型的材料屬性、單元類型、實常數(shù)、剖面屬性等參數(shù),如圖1所示。幾何模型建立后將文件保存為cal_1.db。
2.2.2 編制計算作業(yè)文件
為對比微機與超算并行處理模塊的處理能力,本模型采用細(xì)網(wǎng)格,網(wǎng)格邊長尺寸取25 mm。由于網(wǎng)格數(shù)量太多,在微機上不能完成網(wǎng)格劃分,因此網(wǎng)格劃分安排在超算平臺上進(jìn)行。
在超算平臺上進(jìn)行前處理APDL在并行處理模塊上使用方法與微機一致,因此本應(yīng)用采用APDL進(jìn)行網(wǎng)格劃分[1]。計算求解控制同樣以APDL實現(xiàn),保存成文件input.txt.。代碼如下:
2.2.3 編制計算作業(yè)調(diào)度文件
要通過計算作業(yè)調(diào)度文件才能使用超算中心分配的資源。按照超算中心作業(yè)調(diào)度文件編制規(guī)范要求,編制作業(yè)調(diào)度文件。意義如下:
第1行指定計算要采用的結(jié)點數(shù):如-N 3 表示本應(yīng)用指定結(jié)點數(shù)為3;
第2行指定每個結(jié)點的CPU核數(shù),本應(yīng)用指定每個結(jié)點上的CPU為4核;
第3行調(diào)用Ansys命令行文件,調(diào)用編制好的input計算作業(yè)文件;
第4行指定工作目錄,用戶可在遠(yuǎn)程超級計算機上分配到的文件夾下創(chuàng)建文件。
完整的作業(yè)調(diào)度文件保存為mechanical130-parallel.sh。
2.3 遠(yuǎn)程登錄超算中心
2.3.1 登陸服務(wù)器
為了保證用戶數(shù)據(jù)的安全,超算中心一般采用VPN 軟件對用戶的登錄進(jìn)行管理[2]。遠(yuǎn)程用戶首先需要使用瀏覽器軟件,通過VPN 用戶名和口令驗證訪問超算中心網(wǎng)站,再根據(jù)用戶自己的操作系統(tǒng)配置VPN 客戶端即可正常登陸超算中心VPN后。
用戶成功登陸超算中心VPN后,還需要登錄中心具體的資源業(yè)務(wù)服務(wù)器才能進(jìn)行計算。中心資源一般通過TCP 應(yīng)用的方式供用戶使用,用戶必須通過ssh 登陸方式,可以通過SSH Secure Shell Client,SecureCRT,Putty等ssh 客戶端軟件來使用中心資源。
本應(yīng)用通過本地Windows操作系統(tǒng)的微機遠(yuǎn)程登錄到天津超算中心的“天河一號”TH-1超級計算機,實現(xiàn)過程如下:
(1)應(yīng)用IE瀏覽器;
(2)安裝相應(yīng)控件;
(3)登錄到超算中心VPN;
(4)使用SSH Secure Shell Client客戶端軟件;
(5)登錄到天河一號TH-1 超級計算機。
2.3.2 修改用戶帳號密碼
具體項目數(shù)據(jù)通常涉及單位的商業(yè)秘密,為了保證數(shù)據(jù)安全,超算中心采用了LDAP 技術(shù)來管理用戶,新創(chuàng)建的用戶節(jié)點時會創(chuàng)建相應(yīng)的工作目錄。用戶可以通過passwd 命令修改用戶密碼。
2.4 上傳作業(yè)文件
計算需要的作業(yè)文件需要先從本地上傳到超級計算機上,從外部機器向天津超算中心的天河一號TH-1 小系統(tǒng)中上傳文件,可以使用sftp 客戶端,例如SSH Secure Shell Client 等本身自帶的文件傳輸功能,或者使用WinScp 的sftp 數(shù)據(jù)傳輸軟件。
2.5 提交作業(yè),在超算平臺上進(jìn)行并行計算
用戶將在本地微機上準(zhǔn)備的cal_1.db、input.txt及mechanical130-parallel.sh文件上傳到超算平臺的用戶目錄下,用ls命令查看文件是否上傳成功。確認(rèn)文件上傳成功后,使用yhbatch mechanical130-parallel.sh指令提交作業(yè)。作業(yè)成功提交后,系統(tǒng)會自動生成作業(yè)號,開始進(jìn)行分布式并行運行。
2.6 觀察計算過程
提交作業(yè)腳本文件后,系統(tǒng)將會為本次作業(yè)分配一個唯一的作業(yè)號(Job ID)。
本次作業(yè)提交后,系統(tǒng)返回作業(yè)號為91705,并在當(dāng)前目錄下生成本次作業(yè)日志文件slurm-91705.out;
關(guān)鍵命令解釋如下:
yhq -u shikl 命令查看用戶shikl所有作業(yè)的情況:ST 表示作業(yè)狀態(tài);R 表示作業(yè)處于運行中(Runing);如果遇到PD 表示作業(yè)在等待狀態(tài)(Pending,可能由于沒有空閑的結(jié)點或用戶達(dá)到最大運行作業(yè)數(shù)或最大運行CPU核數(shù));ls 命令觀察當(dāng)前目錄所有文件;tail -f slurm-91705.out 命令實時查看本次作業(yè)的日志文件末尾信息。
2.7 讀取計算結(jié)果
分布式并行計算每個CPU分別生成獨自的Ansys結(jié)果文件,如.rst文件,本次應(yīng)用分別生成file0.rst、file1.rst、file2.rst、file3.rst、file4.rst共4個結(jié)果文件,運算完成后Ansys 分布模塊自動將每個CPU單獨產(chǎn)生fileX.rst文件合成為總的file.rst。
讀取計算結(jié)果時,不能像單機一樣直接讀取file.db文件,分布式并行計算結(jié)果不會保存到數(shù)據(jù)庫文件中,數(shù)據(jù)庫文件內(nèi)的數(shù)據(jù)只包括主服務(wù)器的計算結(jié)果,因此計算結(jié)果只能讀取結(jié)果文件(file.rst)。
由于本應(yīng)用計算結(jié)果文件太大,在本地?zé)o法完成計算結(jié)果的讀取,計算結(jié)果用APDL讀取。
3 結(jié)語
通過本次應(yīng)用,熟悉了超算平臺ANSYS分布式并行處理模塊的使用流程,摸索出了一種微機ANSYS與超算平臺ANSYS并行處理模塊的連接方式,真實體驗了分布式并行計算強大的運算能力。
隨著船舶設(shè)計越來越向大型化發(fā)展,以及一些新規(guī)范的要求,如HCSR在計算結(jié)構(gòu)強度時要求將網(wǎng)格劃分為細(xì)網(wǎng)格(網(wǎng)格邊長50 mm),疲勞計算時網(wǎng)格要求劃分為精細(xì)網(wǎng)格(網(wǎng)格邊長不超過板厚),結(jié)構(gòu)計算的規(guī)模越來越大,普通微機硬件及效率已經(jīng)滿足不了計算的需求,超算平臺為此提供了一個高效的解決方案。但由于超算平臺應(yīng)用費用非常昂貴,而船舶結(jié)構(gòu)計算在前處理和后處理需花費非常大量時間,所有計算過程在超算平臺上進(jìn)行經(jīng)濟性不佳。因此采用在本地進(jìn)行結(jié)構(gòu)計算的前后處理,在超算平臺進(jìn)行求解計算的方式既經(jīng)濟又高效。本次應(yīng)用探索的微機ANSYS與超算平臺ANSYS業(yè)務(wù)連接方式具有較高的實用意義,同時對其它軟件與超算平臺對接也具有一定的借鑒作用。
參考文獻(xiàn)
[1] 曾樊, 雷麗萍, 基于ANSYS平臺有限元分析手冊.
[2] 國家超級計算機天津中心, ANSYS MECHANICAL 任務(wù)提交手冊.