
發布
注冊
/
登錄Intel Fortran 編譯器的案例
DEFORM二次開發編譯工具最新介紹
Absoft & Intel Fortran兩種編譯器編譯的FEM引擎計算效率的對比:
案例一:Spike forging–120K tet 和 FourTee forging–1M tet
該案例在Windows 10、AMD 5900X CPU環境下進行計算對比,不同求解器計算效率如下圖所示:
圖3 FEM引擎計算效率對比
由上圖可知:Intel Fortran相比Absoft編譯器編譯的FEM引擎CG 求解器計算速度提高了20 ~ 130%;MUMPS求解器計算速度提高了10~30%;Spooles求解器計算速度提高了約5%。
案例二:在Windows 10、i7-11700KF CPU環境下,三種算例均采用 MUMPS 求解器
圖4 FEM引擎計算效率對比
由上圖可知:1)碾環—20K, 60K六面體網格,計算速度提高了50 ~ 70%;2)ALE型軋—20K, 200K 六面體網格,計算速度提高了20 ~ 60%;3)自由鍛—200K, 600K 四面體網格,計算速度提高了15 ~ 50%。
綜上述,Intel Fortran相比Absoft編譯器編譯的FEM引擎具有更高計算效率。SFTC公司目前已經完成DEFORM軟件Intel Fortran FEM引擎的開發,針對于二次開發編譯器短期將同時支持Intel Fortran和Absoft編譯器,而Intel Fortran編譯器將成為趨勢。
展開 PGI Fortran 編譯器
PGI Fortran 是與 Intel Visual Fortran 起名的著名編譯器產品,由隸屬于英偉達(NVIDIA)下的 Portland Group 小組開發,優化能力堪比IVF。
世界領先的獨立的高性能計算技術編譯器及開發工具供應商Portland Group?(PGI),PGI Visual Fortran?(PVF?)全面銷售。PVF將 PGI的高性能64位及32位Fortran并行編譯器及開發工具套件與Microsoft Visual Studio 整合在一起,為科學工作者和工程師從32位升級到64位Microsoft Windows平臺提供一套高效的系統開發解決方案。
科研工作者將PGI編譯器及開發工具廣泛用于內置英特爾和AMD高性能微處理器的64位和32位 Linux工作站、服務器和集群器上。該版軟件使Portland Group對運行在Windows平臺上的64位和32位Fortran應用程序的開發支持擴展到英特爾和AMD的64位和32位微處理器,新軟件運行在深受市場歡迎的Microsoft Visual Studio 2005集成開發環境(IDE)。PGI Visual Fortran 套件整合了多種兼容性能,使從現有的支持Windows的32位Fortran升級到64位平臺變得十分簡單,具體兼容功能包括支持Windows 32位應用編程接口(API)、調用規則、匯編命令以及公認的標準實用工具庫。
Microsoft Visual Studio是世界上應用最廣泛的集成開發環境。Visual Studio 工具及技術( 包括一個并行調試器 )使開發人員可以利用他們現有的Windows開發技能及經驗開發在Windows Compute Cluster Server 2003平臺上運行的HPC(高性能計算)應用程序。
展開 在未安裝Fortran編譯器的機器上運行Marc子程序
image_process=/format,webp" data-initial-src="https://img.jishulink.com/202504/attachment/1cb31e9133fc40768bec18ee09091863.png">
</figure>
</figure><div contenteditable="false" width="100%">
<hr>
</div><p><br></p><p><br></p><p>以下是命令行操作方法:</p><p>第一步,在配置和關聯好編譯器的機器上執行以下命令:</p><p><br></p><pre class="ql-syntax" spellcheck="false">call "C:\Program Files\MSC.Software\Marc\2024.1.0\marc2024.1\tools\run_marc.bat" -j job.bat -u gearpair.f -sa yes -b no
</pre><p>第二步,將生成的exe文件移動到另一臺未配置編譯器的機器上并執行以下命令:</p><p><br></p><pre class="ql-syntax" spellcheck="false">call "C:\Program Files\MSC.Software\Marc\2024.1.0\marc2024.1\tools\run_marc.bat" -j job.bat -pr gearpair.exe -b no
</pre><p><br></p><p>將上述命令中求解文件run_marc.bat的路徑替換為相應機器下求解文件所在的路徑即可。</p>
展開 設計仿真 | MSC Nastran用戶子程序功能的使用方法
如 D:\MSC.Software\SDK\2022.3\Tools;
2) Python 3.6或更高版本;
3) Windows SDK (10.0.18362);
4) VS (vs_community_2019.16.11.exe,選擇C++桌面開發);
5) 傳統的Intel Fortran編譯器(Intel MPI 2019 Update 4)或者Intel oneAPI 編譯器。
注意:采用傳統的Intel Fortran編譯器需要有license(本機或從license服務器獲取);而Intel oneAPI 編譯器是免費的,但MSC Nastran2022.2及其后續版本才支持。
3
用戶子程序應用與運行命令
MSC Nastran用戶子程序功能的使用通常涉及以下方面:
?標識調用用戶子程序的少量選項;
?用戶子程序采用FORTRAN或C++語言編寫;
?將用戶子程序鏈接到MSC Nastran。
展開 
設計仿真 | MSC Nastran用戶子程序功能的使用方法
如 D:\MSC.Software\SDK\2022.3\Tools;
2) Python 3.6或更高版本;
3) Windows SDK (10.0.18362);
4) VS (vs_community_2019.16.11.exe,選擇C++桌面開發);
5) 傳統的Intel Fortran編譯器(Intel MPI 2019 Update 4)或者Intel oneAPI 編譯器。
注意:采用傳統的Intel Fortran編譯器需要有license(本機或從license服務器獲取);而Intel oneAPI 編譯器是免費的,但MSC Nastran2022.2及其后續版本才支持。
3
用戶子程序應用與運行命令
MSC Nastran用戶子程序功能的使用通常涉及以下方面:
?標識調用用戶子程序的少量選項;
?用戶子程序采用FORTRAN或C++語言編寫;
?將用戶子程序鏈接到MSC Nastran。
展開 MSC Nastran用戶子程序功能的使用方法
如 D:\MSC.Software\SDK\2022.3\Tools;
2) Python 3.6或更高版本;
3) Windows SDK (10.0.18362);
4) VS (vs_community_2019.16.11.exe,選擇C++桌面開發);
5) 傳統的Intel Fortran編譯器(Intel MPI 2019 Update 4)或者Intel oneAPI 編譯器。
注意:
采用傳統的Intel Fortran編譯器需要有license(本機或從license服務器獲取);而Intel oneAPI 編譯器是免費的,但MSC Nastran2022.2及其后續版本才支持。
用戶子程序應用與運行命令
MSC Nastran用戶子程序功能的使用通常涉及以下方面:
?標識調用用戶子程序的少量選項;
?用戶子程序采用FORTRAN或C++語言編寫;
?將用戶子程序鏈接到MSC Nastran。
為了讓用戶掌握用戶子程序的使用功能,在用MSC Nastran 的手冊中有一些實際例子,比如在手冊“Demonstration Problems Manual- Implicit Nonlinear”中就有兩個詳細的例子,分別是第43章的定義剛體運動的用戶子程序和第44章的定義材料失效準則的用戶子程序(具體章的編號不同版本有所不同,此處是2022.3版本的編號)。下面以第43章的例題為例介紹用戶子程序的具體用法。
該例主要演示MSC Nastran熱機械耦合分析以及用戶子程序功能的使用,它模擬了考慮塑性功生熱和摩擦生熱效應的圓柱體鐓粗過程,并將分析結果與實驗結果進行比較。
展開 Simufact 2024子程序環境配置 ¥29.9
在 Windows? 系統上,建議先裝好 Visual Studio?,再安裝 Intel? Fortran 編譯器。這樣 Intel? 編譯器的安裝腳本就能正確找到 Visual Studio? 的安裝位置(尤其是它不在默認路徑的時候)。
把上面這些軟件裝好之后,就可以在 Simufact Forming 2024.3 里用用戶子程序來編譯和運行任務了。
安裝時建議按下面的順序來:
1、安裝 Simufact Forming 2024.3
2、Windows 系統:安裝 Microsoft? Visual Studio? 2022,記得勾選“通用 Windows 平臺開發”組件,再手動勾選可選的 C++ 通用 Windows 平臺工具。
展開 避坑abaqus+VS+Fortran子程序關聯問題
image_process=/format,webp" data-initial-src="https://img.jishulink.com/202602/attachment/cf9098b561244a699652bd86f64b523e.png">
</figure>
</figure><p><br></p><p>只是運行abaqus子程序,只需要安裝Fortran編譯器就行了,但是Intel Fortran編譯器需要集成VS開發環境,所以需要先裝Visual studio。筆者就只安裝了上圖中Fortran Compiler,同樣可以關聯VS和abaqus,并成功運行子程序。Intel官方也提供了Fortran Compiler單獨的安裝包。如下圖,只有335M,下載安裝很方便。
展開 Abaqus2021+oneAPI2021+VS2019關聯配置方法
abaqus子程序需要調用Fortran編譯器,常用的Fortran編譯器就是intel visual Fortran,fortran編譯器又需要編譯環境,因此我們在運用abaqus子程序仿真之前都需要必備三款軟件:
1 abaqus——計算環境
2 IVF——Fortran編譯器
3 Visual studio ——fortran編譯環境
在2020之前,IVF是屬于Intel Parallel Studio EX 工具包中的一部分,從Intel Parallel Studio EX 2020版本之后,intel取消了該平臺,轉而開發了Intel oneAPI Tookit工具包,Fortran 編譯器也轉移到新的平臺。
對于只用到子程序開發的仿真人員來說,平臺的改變最大的變化就是,濃眉大眼的intel居然把它免費了!雖然abaqus2021+ Parallel Studio EX 2020+VS2019依然可行,但是oneAPI是未來的趨勢,在intel 官方搜索Parallel Studio都會自動跳轉到oneAPI去,遲早都得換。
何況免費正版他不香嗎?
目前網上abaqus+oneAPI+VS的配置教程不多,根據少量的資料和自己探索,簡單說下配置流程。好吧,廢話有點多了,下面進入正題。
---------------------------------------------------------------------------------------------------------------
安裝順序和之前是一致的,最底層的當然得最先安裝。
展開 LS-DYNA的材料模型二次開發過程
選擇編譯器
原來的編譯器設置是和主程序一致的,LINUX系統一般是INTEL或者PGI的Fortran編譯器,這些商業編譯器的執行代碼一般來說效率比較高。在LS-DYNA新的編譯環境下,用戶子程序的編譯器不要求和主程序一致,本文采用開源的gfortran來演示編譯過程。編譯環境為:
Linux系統:OpenSUSE LEAP 42.1
編譯器:gfortran 4.8.5
MPI: platformmpi Community Edition 9.1.2
( http://www-03.ibm.com/systems/platformcomputing/products/mpi/ )
將Makefile中的編譯變量設置為
MY_FLAG = -g -fPIC -fcray-pointer -I/opt/platform_mpi/include
FC = /usr/bin/gfortran
LD = /usr/bin/gfortran -shared
export MPI_F77 := /usr/bin/gfortran
MY_TARGET = gnu.so
其中-g是讓編譯的用戶模塊帶源程序的調試跟蹤信息。這些變量的詳細解釋請參閱上期的“LS-DYNA用戶子程序的編譯和連接”一節。
4.用make命令編譯,生成gnu.so,就完成了編輯和連接。
2)UMAT子程序的調用
上面編譯好的gnu.so可以做為開發好的用戶模塊配合模型使用。這個模塊和LS-DYNA主執行程序是分開的,即使將來LS-DYNA主程序的版本升級也不影響這個模塊。調用的方法是在模型的.k文件里面加入三行
*MODULE_LOAD
myumat41
gnu.so
其中:第一行是關鍵字,第二行是這個模塊在這個模型的id,第三行是這個模塊的編譯后文件。
展開 LS -DYNA的二次開發環境及應用 附LS-DYNA面中文教程下載
LS-DYNA 用戶子程序的編譯和連接
在新的用戶子程序開發環境中,LS-DYNA的主程序與用戶子程序完全分開,二次開發包中也不包含LS-DYNA主程序的OBJ文件。因此,新的二次開發包的文件很小,全部打包壓縮后只有165KB,極大地提高了用戶子程序的編譯和連接速度,使得二次開發更加方便。
二次開發包中包括以下三部分內容:
1)各個用戶子程序的模板,是FORTRAN的源程序,包括dyn21.f和dyn21b.f等;
2)頭文件,也是源程序,包含LS-DYNA中各個COMMON BLOCK參數,供二次開發使用;
3)編譯腳本文件,Makefile,用于編譯和連接。
前兩部分的源程序與用戶子程序的具體功能相關。腳本文件 Makefile 是一個純文本文件,可以用普通的文本編輯器修改,主要內容包括以下幾個變量的設置:
其中:
MY_FLAG是FORTRAN編譯器的標準選項。如果用戶的FORTRAN編譯器和LS-DYNA主程序的編譯器的版本一樣,不建議更改這些標準選項。
FC指定MPP的FORTRAN編譯器,此例中給出的是platform_mpi的編譯器。
LC指定MPP的連接器,此例中給出的是platform_mpi的連接器。
Export MPI_F77是用來指定真正的FORTRAN編譯器,MPP編譯器會調用這個編譯器來編譯FORTRAN源程序。此例中指定了Intel FORTRAN編譯器的版本及其安裝路徑。
展開 
LS -DYNA的二次開發環境及應用
Export MPI_F77是用來指定真正的FORTRAN編譯器,MPP編譯器會調用這個編譯器來編譯FORTRAN源程序。此例中指定了Intel FORTRAN編譯器的版本及其安裝路徑。FC,LC,MPI_F77中指定的程序都包含有安裝路徑。如果用戶機器上安裝路徑或版本與此不同,則需要修改相應的變量,否則不能正確編譯連接。
MY_TARGET是指定動態連接庫的名稱,在LINUX系統下一般以.so作為后綴,而Windows系統以.dll作為后綴
MY_OBJS包含LS-DYNA的所有模板子程序的FORTRAN源碼。有些模版源碼可能沒有用上,手工去掉或保留都可以,不影響真正開發部分的源碼的執行。用戶可以在這個變量里加入自己的源程序文件。
MY_INC包含LS-DYNA用戶開發包的所有的頭文件,用戶可以添加自己的頭文件,但不建議刪除已有的頭文件。
當這些變量都設置好后,在當前目錄下運行LINUX系統的命令“make”來執行這個編譯腳本文件,自動完成編譯和連接過程,并產生 MY_TARGET所指定的動態連接庫。如果源程序有錯誤,則打印相應的錯誤信息,并終止編譯連接過程。用戶在修改相應的源程序后,可以再次執行“make”命令來重試編譯和連接。另外,新的開發環境僅支持LINUX的單機或集群系統,對Windows系統暫時還不能支持。
在用戶子程序開發過程中,經常需要對源程序進行跟蹤和調試。用戶只需將Makefile中的MY_FLAG變量里的優化選項“-O2”改為“-g”,就可以關掉編譯器的優化功能并在動態連接庫中加入源程序信息,方便對源碼調試。
展開