fluent并行錯誤errno = 10054的解決辦法

2017-04-03  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

目前解決方法:采用 Fluent的 “自動保存”功能,從非正常退出處接著算。。。。
一個月前接手的項目,外加換了新電腦,因為前期的驗證算例網(wǎng)格也不是很多,所以也就沒有使用并行計算,單線程串行計算效率也不低,然后具體的方案出來以后,一共一百來個算例定了下來,開始使用并行計算,然后FLUENT就開始了無盡的抽搐。
我的電腦剛配的新的,i7-2600(4核8線程),16G內(nèi)存(4*4),華碩Z68的主板。算例為100萬網(wǎng)格,FLUENT不定時報錯強制停止,報錯如下,相信有人已經(jīng)遇到過了這個問題。
999999 (..\src\mpsystem.c@1149): mpt_read: failed: errno = 10054
999999: mpt_read: error: read failed trying to read 4 bytes: Invalid argument
job aborted:
rank: node: exit code
0: FENG-PC: 123
1: FENG-PC: -1073741819: process 1 exited without calling finalize
2: FENG-PC: 123
3: FENG-PC: 123
4: FENG-PC: 123
5: FENG-PC: 123
接下來講述一下我這大半個月折騰的過程。
首先這個問題舊電腦(已經(jīng)被淘汰了,太老了)上沒有遇到,實驗室其他人有遇到過的,但很少,不頻繁,他們的情況是重啟電腦,然后就解決了??上业腻e誤并沒有解決,問題依舊,非常頻繁。
網(wǎng)上好多人遇到這個問題是帶UDF情況下的,我的不使用UDF,而且我非常確定我的網(wǎng)格和條件都沒有問題。
網(wǎng)上給出的第一個建議就是重裝軟件。重裝了N次,問題依舊
網(wǎng)上給出的第二個建議就是重裝系統(tǒng)。由于某些原因重裝了2次,正版盜版都用過了,問題依舊
網(wǎng)上給出的第三個建議就是內(nèi)存不夠了,16G不夠用,人人網(wǎng)小組里確實有人通過加大內(nèi)存解決了這個問題,但是我可以很負(fù)責(zé)得說這個和內(nèi)存不夠沒有關(guān)系,稍后分析,我16G內(nèi)存連400萬網(wǎng)格都能算,所以網(wǎng)上各種有關(guān)內(nèi)存大小和網(wǎng)格數(shù)量的說法我表示懷疑。
網(wǎng)上給出的第四個建議就是換版本。目前我的電腦里已經(jīng)同時有12.1、13.0、14.0三個版本了,可以確定并不是軟件不穩(wěn)定的問題,確實最后的解決辦法和版本有點關(guān)系,但核心問題并不是版本問題。
網(wǎng)上給出的第五個建議就是換系統(tǒng)。這個我目前還沒這個打算,用習(xí)慣了windows,不想換,而且我懷疑換系統(tǒng)并不能徹底解決問題。
還有一個說法,是ANSYS安裝時自帶的.NET Framework的版本低于系統(tǒng)版本,在安裝時沒有打開.NET Framework的功能,在‘控制面板-程序-程序和功能-打開或關(guān)閉windows功能’里點選上.NET Framework的相關(guān)選項來解決問題。通過測試可以確定并不是這個問題,我編程需求所以裝有VS2010,好處是裝VS的時候C++等等各種組件就一應(yīng)俱全。
最后只能自己找問題了,這種報錯,最表面的原因就是并行過程中,遠(yuǎn)程主機強制關(guān)閉了,單機并行時的遠(yuǎn)程主機也就是本機host。對這種報錯的理解如下。
第一,網(wǎng)格質(zhì)量,在我的理解網(wǎng)格有問題只能引起發(fā)散,但不排除網(wǎng)格造成的數(shù)據(jù)溢出,并行中的某個線程中的數(shù)據(jù)出現(xiàn)溢出,線程之間的通訊發(fā)生故障,并行中斷。
第二,內(nèi)存問題,內(nèi)存讀取問題也會造成線程之間的通訊故障。我的內(nèi)存條我確定沒有壞,但是4*4的雙通道讓我很擔(dān)心,網(wǎng)上加大內(nèi)存的解決方案我認(rèn)為是內(nèi)存數(shù)據(jù)交換方式改變才解決了問題,并不是內(nèi)存變大了。內(nèi)存不足fluent是有相應(yīng)的報錯的,和這里的并行錯誤無關(guān)。
第三,CPU問題,我也懷疑過,窮啊,第一次用i7-2600,一共8個線程,我并行的時候用6個線程,難道線程之間通訊有故障,后來發(fā)現(xiàn)確實和這個有關(guān)系,但CPU本身沒有問題。
第四,單雙精度問題,這個是有可能造成數(shù)據(jù)溢出的,并導(dǎo)致并行通訊中斷。
第五,網(wǎng)絡(luò)問題,這個也很常見,針對插著網(wǎng)線計算的同學(xué),聯(lián)網(wǎng)狀態(tài)下,各個線程之間的通訊目標(biāo)IP是上網(wǎng)的那個IP,用360的查看網(wǎng)絡(luò)連接你就知道了,網(wǎng)絡(luò)不穩(wěn)定或者局域網(wǎng)攻擊會使并行中斷,推薦使用360的局域網(wǎng)防護(hù)。
第六,許可文件,這個問題可能性很小,安裝14.0使用的許可文件是可以支持到12.0的,包括并行。
后來又各種測試,開始嘗試調(diào)整MPI選項
在裝ANSYS時有MPI的安裝選項,我裝了是沒錯,但是并不好用。
發(fā)現(xiàn)ansys各個版本的fluent所支持的并行通訊協(xié)議不同。在打開fluent的界面里,找到并行設(shè)置里的MPI選項,14.0支持msmpi(不可用,需自己下載安裝)、pcmpi(已安裝,默認(rèn))、intel(需要在安裝時自己裝)三種,13.0支持msmpi(不可用,需自己下載安裝)、hp(默認(rèn),需要在安裝時自己裝)、intel(需要在安裝時自己裝),12.0支持mpich2、msmpi、hp。
我一直使用的mpi是軟件默認(rèn)的,13.0和14.0裝的intel-mpi版本不一樣,于是又特地裝了14.0的intel-mpi,用intel的mpi進(jìn)行并行計算,也是隨機中斷報錯。
最后在13.0的hp-mpi的方式下用單精度計算,貌似問題得到了改善,但這個情況下,偶爾會出現(xiàn)計算卡住的情況,可以通過暫停計算來解決,但是只要卡住,暫停后再繼續(xù)出去20來步,fluent就自行退出了,沒有報錯。而且沒有嘗試雙精度。
目前暫用13.0的hp-mpi外加自動保存來往下推進(jìn)了。
另外,還有一些需要說一說的
1、自動保存的cas會有打不開的時候,所以備份cas的時候不要備份自動保存的,而是備份初始的cas,配合自動保存的dat使用;
2、并行的初始cas是不能直接在并行fluent里設(shè)置的,需要先在串行fluent里把條件設(shè)好并初始化,然后保存,然后再用并行fluent來讀取,這個應(yīng)該很多人都知道
3、還有各種mpi并行通訊機制,在半個多月的折騰過程中,發(fā)現(xiàn)hp-mpi是效率最高的,相比intel-mpi能非常明顯得提高并行計算速度。
4、帶udf出現(xiàn)這個報錯,雖然UDF通過編譯了,但還是第一時間檢查UDF寫得對不對,UDF編譯的數(shù)據(jù)在計算中稍有問題都能引起各線程之間的通訊中斷,然后fluent就出錯了。
這大半個月給我折騰死了,真鬧心,死貴死貴的CPU外加一年又一年的ansys版本更新,居然連個并行通訊協(xié)議的支持都做得不好,新機器散熱還不好,光改造機箱就給折騰了好久,目前也就暫時解決這個報錯,不知道繼續(xù)算下去會不會出問題了。
也算是總結(jié)一下能找到和能想到的處理方法,供交流。
最新的情況是,又找到一個可能的原因,很有可能是windows的防火墻沒有徹底關(guān)閉。我用的是未刪減過的正版系統(tǒng),在‘控制面板-系統(tǒng)與安全-windows防火墻’這里看到的防火墻是關(guān)閉的,但事實上并沒有徹底關(guān)閉,繼續(xù)點擊高級設(shè)置,就會進(jìn)入到‘高級安全windows防火墻’的設(shè)置界面,可以發(fā)現(xiàn)其中的‘域配置文件’這一項的防火墻并沒有關(guān)閉,必須在這個界面里繼續(xù)點擊‘windows防火墻屬性’才能徹底關(guān)閉域配置文件的防火墻。
貌似‘域配置文件’防火墻的設(shè)置能夠通過HP-MPI的并行數(shù)據(jù),但是會限制intel-MPI的并行數(shù)據(jù)。
10月份總算是找到了我問題所在,之前使用的HP-MPI的辦法只是折中的解決辦法,不能長期應(yīng)對。
之前有說到對這個錯誤的理解,其中第二點是這樣的
第二,內(nèi)存問題,內(nèi)存讀取問題也會造成線程之間的通訊故障。我的內(nèi)存條我確定沒有壞,但是4*4的雙通道讓我很擔(dān)心,網(wǎng)上加大內(nèi)存的解決方案我認(rèn)為是內(nèi)存數(shù)據(jù)交換方式改變才解決了問題,并不是內(nèi)存變大了。內(nèi)存不足fluent是有相應(yīng)的報錯的,和這里的并行錯誤無關(guān)。
最終確定是我的主板4*4通道的問題,雙通道4個內(nèi)存條全部插滿,主板可能有缺陷,在并行計算是內(nèi)存的信息吞吐量巨大,4個內(nèi)存之間的信息交換有故障,這個在正常使用電腦時顯示不出來,只有內(nèi)存出入大量數(shù)據(jù)時才會出現(xiàn)問題。
HP-MPI的并行機制計算慢一些,但貌似減少這種錯誤的發(fā)生,我的問題出在硬件上,沒辦法只能取下兩個條子,現(xiàn)在是2*4單通道的8G內(nèi)存,我的問題就基本解決了。
當(dāng)然,不同的人出現(xiàn)這個錯誤原因可能不一樣,這個帖子就是想貼出我的排查過程,供各種蟲們參考參考
截止12月沒有出現(xiàn)報錯,問題解決

開放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:fluent并行錯誤errno = 10054的解決辦法 Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進(jìn)行在線報名,我們會及時給您回復(fù)電話,謝謝!
驗證碼

全國服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com