來點(diǎn)硬核的!以standalone模式在服務(wù)器上跑Forcite計(jì)算任務(wù)
Materials studio以下簡稱MS,是一款優(yōu)秀的計(jì)算模擬軟件,其中Dmol3、CASTEP、Forcite等模塊被廣泛用于學(xué)術(shù)研究中。MS擁有獨(dú)特的Client-Server運(yùn)行模式,通過客戶端準(zhǔn)備輸入文件和查看輸出文件,計(jì)算由連接的遠(yuǎn)程服務(wù)器(也可以是本機(jī))完成。
一般情況我們可以通過Tools-Server Console添加遠(yuǎn)程服務(wù)器,然后在計(jì)算時(shí)候通過Job control選項(xiàng)卡直接調(diào)用遠(yuǎn)端服務(wù)器做計(jì)算。這是最簡單也是最推薦的方式。
但是,我們時(shí)常會(huì)遇到遠(yuǎn)端服務(wù)器防火墻抽風(fēng)、服務(wù)器權(quán)限管理升級(jí)、網(wǎng)絡(luò)故障等問題導(dǎo)致的提交任務(wù)不流暢甚至無法提交的情況。那么面對(duì)這種問題該如何解決?
A放個(gè)假出去玩幾天B買臺(tái)服務(wù)器自己用,不再受制于超算平臺(tái)的管理C打電話給超算管理員求幫忙解決D使用standalone mode提交任務(wù)本題為多選題,答案為BCD皆可。
A是錯(cuò)誤答案,因?yàn)榭蒲悬h這個(gè)時(shí)候是沒心情出去玩的,愁都愁死了。
B選項(xiàng),想購買服務(wù)器的可以聯(lián)系我們,四種配置:低配、中配、高配、定制,滿足您的計(jì)算所需。想要詳細(xì)了解的小伙伴,可以點(diǎn)擊下方鏈接跳轉(zhuǎn),了解更多詳情:
唯理計(jì)算服務(wù)器定制您的專屬“利器”,助您的計(jì)算快人一步!mp.weixin.qq.com/s/P_P2dt7IoI0XEfFCk3tsqg

C選項(xiàng)請(qǐng)了解一下唯理超算租賃,24小時(shí)都有技術(shù)小哥哥幫你解決問題,這種端口問題更是分分鐘解決。超算租賃具體詳情可以點(diǎn)擊下方藍(lán)字跳轉(zhuǎn):
【福利】租超算送課程,就在唯理計(jì)算,還有2400核時(shí)免費(fèi)試用
D選項(xiàng)請(qǐng)看今天的文章:
本文參考了https://nusit.nus.edu.sg/services/hpc/application-software/material-studio/?文中內(nèi)容可能不是最簡單的,但一定是可以讓任務(wù)順利運(yùn)行起來的。歡迎大家批評(píng)指正。
說到standalone mode,其中Dmol3和CASTEP這兩個(gè)模塊原生就對(duì)standalone mode支持特別好,基本沒有難點(diǎn),教程也寫得很詳細(xì),具體參見官方教程中:CASTEP > CASTEP jobs > Running CASTEP in standalone modeDMol3 > DMol3 jobs > Running DMol3 in standalone mode
如果這兩個(gè)模塊還是有困難,歡迎大家進(jìn)入“唯理計(jì)算服務(wù)群”,群里探討。進(jìn)群方式見文末
跑Forcite計(jì)算任務(wù),不用愁,我一步步來教你
今天主要談一下Forcite這類需要調(diào)用RunMatScript.sh的計(jì)算模塊的standalone mode。我自己搜了很久網(wǎng)上很少提到Forcite以及Mesocite這類模塊的調(diào)用方式,今天算是補(bǔ)個(gè)坑吧。官方教程在:Materials Visualizer > Working with client-server systems > Working with jobs > Running jobs in standalone mode
但是講得很不好理解,我這里就用一個(gè)小計(jì)算的操作流程來說明一下怎么做,其他希望大家舉一反三。
比如我要做一個(gè)叫做goodjob的任務(wù),其中我已經(jīng)用其他手段搭建好了用來計(jì)算的晶胞叫做goodjob.xsd,也做過退火優(yōu)化等操作(確保不會(huì)因?yàn)轶w系有問題而報(bào)錯(cuò))
此時(shí)打開Forcite Calculation對(duì)話框,將需要對(duì)goodjob.xsd做計(jì)算的參數(shù)調(diào)整好,然后點(diǎn)擊Run按鈕右邊的小三角標(biāo)志,出現(xiàn)Copy Script標(biāo)志,點(diǎn)擊后貼到記事本中,假設(shè)是下面這樣
my $results = Modules->Forcite->Dynamics->Run($doc, Settings(CurrentForcefield => 'COMPASSII',ChargeAssignment => 'Use current',TrajectoryRestart => 'No',appendTrajectory => 'Yes',Ensemble3D => 'NPT',Pressure => 0.0001,NumberOfSteps => 20000,TimeStep => 0.5,TrajectoryFrequency => 10000,Thermostat => 'NHL',Barostat => 'Parrinello',EnergyDeviation => 5e+008,StressXX => -0.0001,StressYY => -0.0001,StressZZ => -0.0001));my $outTrajectory = $results->Trajectory;
此時(shí)在這些代碼前面添上幾行
#!perluse strict;use Getopt::Long;use MaterialsScript qw(:all);my %Args;GetOptions(\%Args, "Structure=s");my $doc = $Documents{"goodjob.xsd"};
然后把這個(gè)記事本保存為goodjob.pl
此時(shí)你已經(jīng)有了goodjob.pl和goodjob.xsd兩個(gè)計(jì)算需要的文件。如果是本地的服務(wù)器,此時(shí)直接到服務(wù)器上MS安裝路徑下找到$MS_PATH/etc/Scripting/bin/RunMatScript.sh
然后在goodjob.pl和goodjob.xsd所在的目錄下運(yùn)行$MS_PATH/etc/Scripting/bin/RunMatScript.sh [-h] [-np number of cores] [-q queue name] [-project] scriptname [ -- script arguments ... ]
對(duì)后面那些可自定義的參數(shù)有疑問或者感興趣的同學(xué)可以參考官方教程中的Scripting in Materials Studio > Running scripts on a server > Running MaterialsScript in standalone mode
當(dāng)然我們今天主要講的是超算上使用。如果您有Forcite的授權(quán),可以提供授權(quán)文件和安裝包,唯理計(jì)算技術(shù)小哥哥會(huì)幫你在服務(wù)器上安裝好。那么請(qǐng)看一下唯理超算租賃提供的腳本ForciteByWeili.sh:
#!/bin/bashNUM_NODES=1PROCS_PER_NODE=64xsdNAME=`lsgoodjob.xsd`BASENAME=${xsdNAME%.xsd*}MS_PATH=/test/MaterialsStudio #這里是ms的路徑,換成自己的ms路徑NUM_PROCS=`expr $NUM_NODES \* $PROCS_PER_NODE`$MS_PATH/etc/Scripting/bin/RunMatScript.sh -np $NUM_PROCS -project $BASENAME -- $xsdNAME
此時(shí)我們手里有ForciteByWeili.sh、 goodjob.pl和goodjob.xsd三個(gè)文件。直接將三個(gè)文件放在超算同一個(gè)路徑下,然后正常submit就可以了。
如果計(jì)算很快終止了,并且報(bào)“沒有找到goodjob.xsd”的錯(cuò)誤。此時(shí)可以在當(dāng)前文件夾中新建一個(gè)叫做goodjob_Files 的文件夾,然后在goodjob_Files 文件夾中再建立一個(gè)Documents文件夾,然后把goodjob.xsd復(fù)制到Documents文件夾中,再回到上上層目錄,直接submit就不會(huì)報(bào)錯(cuò)了。