
發(fā)布
注冊
/
登錄PGI Fortran 編譯器的案例
PGI Fortran 編譯器
PGI Fortran 是與 Intel Visual Fortran 起名的著名編譯器產(chǎn)品,由隸屬于英偉達(NVIDIA)下的 Portland Group 小組開發(fā),優(yōu)化能力堪比IVF。
世界領(lǐng)先的獨立的高性能計算技術(shù)編譯器及開發(fā)工具供應(yīng)商Portland Group?(PGI),PGI Visual Fortran?(PVF?)全面銷售。PVF將 PGI的高性能64位及32位Fortran并行編譯器及開發(fā)工具套件與Microsoft Visual Studio 整合在一起,為科學(xué)工作者和工程師從32位升級到64位Microsoft Windows平臺提供一套高效的系統(tǒng)開發(fā)解決方案。
科研工作者將PGI編譯器及開發(fā)工具廣泛用于內(nèi)置英特爾和AMD高性能微處理器的64位和32位 Linux工作站、服務(wù)器和集群器上。該版軟件使Portland Group對運行在Windows平臺上的64位和32位Fortran應(yīng)用程序的開發(fā)支持?jǐn)U展到英特爾和AMD的64位和32位微處理器,新軟件運行在深受市場歡迎的Microsoft Visual Studio 2005集成開發(fā)環(huán)境(IDE)。PGI Visual Fortran 套件整合了多種兼容性能,使從現(xiàn)有的支持Windows的32位Fortran升級到64位平臺變得十分簡單,具體兼容功能包括支持Windows 32位應(yīng)用編程接口(API)、調(diào)用規(guī)則、匯編命令以及公認(rèn)的標(biāo)準(zhǔn)實用工具庫。
Microsoft Visual Studio是世界上應(yīng)用最廣泛的集成開發(fā)環(huán)境。Visual Studio 工具及技術(shù)( 包括一個并行調(diào)試器 )使開發(fā)人員可以利用他們現(xiàn)有的Windows開發(fā)技能及經(jīng)驗開發(fā)在Windows Compute Cluster Server 2003平臺上運行的HPC(高性能計算)應(yīng)用程序。
展開 在未安裝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>第一步,在配置和關(guān)聯(lián)好編譯器的機器上執(zhí)行以下命令:</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文件移動到另一臺未配置編譯器的機器上并執(zhí)行以下命令:</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的路徑替換為相應(yīng)機器下求解文件所在的路徑即可。</p>
展開 LS-DYNA的材料模型二次開發(fā)過程
選擇編譯器
原來的編譯器設(shè)置是和主程序一致的,LINUX系統(tǒng)一般是INTEL或者PGI的Fortran編譯器,這些商業(yè)編譯器的執(zhí)行代碼一般來說效率比較高。在LS-DYNA新的編譯環(huán)境下,用戶子程序的編譯器不要求和主程序一致,本文采用開源的gfortran來演示編譯過程。編譯環(huán)境為:
Linux系統(tǒng):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中的編譯變量設(shè)置為
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是讓編譯的用戶模塊帶源程序的調(diào)試跟蹤信息。這些變量的詳細解釋請參閱上期的“LS-DYNA用戶子程序的編譯和連接”一節(jié)。
4.用make命令編譯,生成gnu.so,就完成了編輯和連接。
2)UMAT子程序的調(diào)用
上面編譯好的gnu.so可以做為開發(fā)好的用戶模塊配合模型使用。這個模塊和LS-DYNA主執(zhí)行程序是分開的,即使將來LS-DYNA主程序的版本升級也不影響這個模塊。調(diào)用的方法是在模型的.k文件里面加入三行
*MODULE_LOAD
myumat41
gnu.so
其中:第一行是關(guān)鍵字,第二行是這個模塊在這個模型的id,第三行是這個模塊的編譯后文件。
展開