
ALAMODE 是基于第一性原理計(jì)算晶格動(dòng)力學(xué)和熱導(dǎo)率的開源工具。很多做聲子、熱導(dǎo)率、非諧效應(yīng)的材料計(jì)算研究者都會(huì)在 VASP 之外配套一個(gè)力常數(shù)和聲子計(jì)算程序ALAMODE 是這類工具里比較有針對(duì)性的一套。這篇文章要解決的是在 Ubuntu 20.04 上使用 Intel oneAPI 編譯器從零編譯安裝 ALAMODE并完成環(huán)境驗(yàn)證和基礎(chǔ)測(cè)試。先說結(jié)論ALAMODE 本身不依賴 GPU用 CPU 編譯和運(yùn)行。難點(diǎn)集中在依賴庫(kù)的拼裝上尤其是 FFTW、LAPACK 和 Eigen 三個(gè)底層庫(kù)。只要把 Intel 編譯器環(huán)境、MKL 數(shù)學(xué)庫(kù)和 Eigen 頭文件準(zhǔn)備到位剩下的configure make make install流程不算復(fù)雜。整個(gè)安裝過程適合在本地工作站或小型計(jì)算節(jié)點(diǎn)上完成通常不會(huì)出現(xiàn)“缺依賴導(dǎo)致無法繼續(xù)”的致命問題最多是在路徑配置上多花一點(diǎn)時(shí)間。本文會(huì)從 ALAMODE 的核心能力、適用場(chǎng)景、環(huán)境準(zhǔn)備、依賴庫(kù)編譯、源碼配置、功能測(cè)試、資源占用和常見問題幾個(gè)方面展開。每一節(jié)都會(huì)給出可復(fù)制的命令和配置示例方便你直接照著操作。如果你已經(jīng)裝過 Phonopy那么這篇文章的很多思路是相通的只是 ALAMODE 在非諧力常數(shù)和導(dǎo)熱率計(jì)算上更進(jìn)一步。1. ALAMODE 核心能力速覽能力項(xiàng)說明項(xiàng)目類型原子級(jí)材料計(jì)算開源軟件主要用于晶格動(dòng)力學(xué)與熱導(dǎo)率模擬開發(fā)語(yǔ)言Fortran 與 C/C 混合主要功能諧波/非諧力常數(shù)擬合、聲子色散、聲子態(tài)密度、聲子壽命、晶格熱導(dǎo)率計(jì)算硬件要求不需要 GPU純 CPU 計(jì)算內(nèi)存大小與超胞規(guī)模、原子數(shù)和振動(dòng)模式數(shù)相關(guān)支持操作系統(tǒng)Linux、macOS本文以 Ubuntu 20.04 為例編譯器支持Intel ifort/icc、GCC/gfortran本文采用 Intel oneAPI 編譯器關(guān)鍵依賴Intel MKL或 LAPACK/BLAS、FFTW、Eigen、MPI可選啟動(dòng)方式命令行工具安裝后生成alm和anphon兩個(gè)可執(zhí)行文件是否支持批量任務(wù)支持可通過 shell/Python 腳本批量處理多個(gè)輸入結(jié)構(gòu)也可以借助 MPI 并行適合場(chǎng)景基于 VASP 等第一性原理計(jì)算的聲子計(jì)算和晶格熱導(dǎo)率研究從表中可以看到ALAMODE 不屬于那種“下載即用”的軟件。它需要你提前準(zhǔn)備好一套科學(xué)計(jì)算編譯鏈。對(duì) Ubuntu 20.04 用戶來說最省心的方式是安裝 Intel oneAPI Base Toolkit 和 HPC Toolkit里面已經(jīng)包含了 ifort/icx 編譯器、Intel MPI 和 MKL。這樣 LAPACK 和 BLAS 可以直接從 MKL 獲取FFTW 也可以用 MKL 自帶的兼容接口只有 Eigen 需要單獨(dú)下載。2. 適用場(chǎng)景與使用邊界ALAMODE 主要適合做凝聚態(tài)物理和材料物理中與聲子相關(guān)的研究。典型使用場(chǎng)景包括從第一性原理計(jì)算得到的原子受力和能量出發(fā)擬合諧波力常數(shù)計(jì)算聲子色散和聲子態(tài)密度計(jì)算三階非諧力常數(shù)進(jìn)一步分析聲子-聲子散射、聲子壽命和模式群速度結(jié)合聲子玻爾茲曼輸運(yùn)方程計(jì)算材料的晶格熱導(dǎo)率模擬溫度變化對(duì)聲子頻率和色散關(guān)系的影響用于高溫相穩(wěn)定性分析。這些功能意味著 ALAMODE 通常需要和 VASP、QE 等第一性原理軟件配合使用。你需要先準(zhǔn)備好 DFPT 或有限位移法計(jì)算所需的超胞、位移構(gòu)型以及對(duì)應(yīng)的原子受力和總能數(shù)據(jù)。ALAMODE 本身不執(zhí)行電子結(jié)構(gòu)計(jì)算只負(fù)責(zé)從這些數(shù)據(jù)中提取力常數(shù)并做聲子相關(guān)的后處理。從邊界上看ALAMODE 不是萬(wàn)能的。它不擅長(zhǎng)處理強(qiáng)關(guān)聯(lián)電子體系或者包含明顯非諧局域模式的復(fù)雜體系。對(duì)于大超胞、高對(duì)稱性和更多位移構(gòu)型的任務(wù)計(jì)算量會(huì)快速增長(zhǎng)。此外ALAMODE 的編譯安裝對(duì) Fortran 編譯器版本和數(shù)學(xué)庫(kù)兼容性有一定要求如果你使用的編譯器是老版本 GCC 或者系統(tǒng)自帶的基礎(chǔ)庫(kù)在鏈接階段可能會(huì)遇到一些難以排查的錯(cuò)誤。使用 ALAMODE 處理實(shí)驗(yàn)或文獻(xiàn)數(shù)據(jù)時(shí)還要注意軟件許可和數(shù)據(jù)合規(guī)問題。ALAMODE 本身是開源許可證可以自由使用和修改但如果你用 VASP 生成輸入數(shù)據(jù)必須確保 VASP 的授權(quán)覆蓋你的研究場(chǎng)景。涉及未發(fā)表的結(jié)構(gòu)數(shù)據(jù)、合作方材料數(shù)據(jù)或商業(yè)項(xiàng)目時(shí)也要確認(rèn)數(shù)據(jù)使用邊界避免出現(xiàn)版權(quán)或保密問題。3. 環(huán)境準(zhǔn)備與前置條件在 Ubuntu 20.04 上編譯 ALAMODE建議先在干凈的系統(tǒng)環(huán)境下做一遍完整性檢查避免依賴沖突。下面是最小前置條件Ubuntu 20.04 操作系統(tǒng)內(nèi)核更新到最新補(bǔ)丁至少 8 GB 內(nèi)存磁盤剩余空間 5 GB 以上GCC、gfortran 和 make 已安裝Intel oneAPI Base Toolkit 和 HPC Toolkit 已安裝網(wǎng)絡(luò)可訪問 ALAMODE 源碼倉(cāng)庫(kù)和 Eigen 官網(wǎng)。如果還沒有安裝 Intel oneAPI可以通過以下命令檢查環(huán)境source /opt/intel/oneapi/setvars.sh which ifort which icc如果沒有找到ifort說明 HPC Toolkit 沒有安裝到位。需要注意的是Intel 已經(jīng)用ifx逐步替代ifort但 ALAMODE 的編譯腳本目前對(duì)ifort的支持更成熟。如果系統(tǒng)里只有ifx可以嘗試將FCifx傳入 configure但更穩(wěn)妥的路徑是安裝完整 HPC Toolkit它通常同時(shí)包含ifort和icx。系統(tǒng)基礎(chǔ)編譯工具也建議提前裝好sudo apt update sudo apt install -y build-essential gfortran wget git cmake接下來檢查是否已經(jīng)有mkl環(huán)境變量。通常安裝 Intel oneAPI 后setvars.sh會(huì)設(shè)置MKLROOTecho $MKLROOT如果輸出為空確認(rèn)setvars.sh是否正確 source。到這里基礎(chǔ)環(huán)境已經(jīng)準(zhǔn)備好下一步開始準(zhǔn)備 ALAMODE 的依賴庫(kù)。4. 依賴庫(kù)編譯準(zhǔn)備4.1 Intel MKL 的 LAPACK 支持ALAMODE 的alm和anphon核心功能需要大量線性代數(shù)運(yùn)算例如特征值分解、矩陣求逆、最小二乘擬合等。Intel MKL 提供了完整的 LAPACK 和 BLAS 實(shí)現(xiàn)性能上比 OpenBLAS 和系統(tǒng)自帶的 LAPACK 更好也能和 Intel 編譯器無縫配合。在 configure 階段可以使用--with-lapack$MKLROOT或者通過 LDFLAGS 顯式指定鏈接庫(kù)。MKL 的典型鏈接參數(shù)如下export LDFLAGS-L$MKLROOT/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core如果你的編譯器是ifort還需要確保lmkl_blacs_intelmpi_lp64等 MPI 相關(guān)庫(kù)存在。只做串行編譯時(shí)上面三件套已經(jīng)夠用。4.2 FFTW 的獲取方式ALAMODE 依賴 FFTW 進(jìn)行快速傅里葉變換這主要是為了在倒空間插值和聲子計(jì)算時(shí)提高效率。FFTW 有兩個(gè)常見來源獨(dú)立安裝的 FFTW或者使用 Intel MKL 自帶的 FFTW 兼容接口。獨(dú)立安裝 FFTW 的方式更通用尤其當(dāng)你可能還會(huì)把 ALAMODE 和 GCC 編譯器一起使用時(shí)。FFTW 3.x 的編譯很簡(jiǎn)單wget http://www.fftw.org/fftw-3.3.10.tar.gz tar -zxvf fftw-3.3.10.tar.gz cd fftw-3.3.10 ./configure --prefix$HOME/fftw --enable-shared --enable-single make -j$(nproc) make install這里--enable-single表示單精度 FFTW。ALAMODE 通常需要雙精度 FFTW如果你不確定可以去掉這個(gè)選項(xiàng)默認(rèn)就是雙精度。安裝完成后include目錄下會(huì)有fftw3.hlib目錄下會(huì)有l(wèi)ibfftw3.a或.so。如果不想額外編譯 FFTW也可以使用 MKL 的 FFTW 接口。在 configure 時(shí)可能需要配置--with-fftw$MKLROOT并確保頭文件路徑和庫(kù)文件路徑正確。不同版本的 MKL 對(duì)這個(gè)接口的封裝略有差異如果遇到找不到fftw3.h的問題建議直接安裝獨(dú)立 FFTW省時(shí)省力。4.3 Eigen 頭文件獲取Eigen 是一個(gè)純頭文件的 C 模板庫(kù)不需要編譯安裝過程只是解壓并放置到合適位置。ALAMODE 在擬合力常數(shù)時(shí)用到了 Eigen 的線性代數(shù)模板。從 Eigen 官網(wǎng)或 GitHub 下載最新穩(wěn)定版例如 3.4.0cd $HOME wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz tar -zxvf eigen-3.4.0.tar.gz mv eigen-3.4.0 eigen這樣$HOME/eigen目錄下就能看到Eigen和unsupported兩個(gè)子目錄。configure 時(shí)可用--with-eigen$HOME/eigen指定路徑。Eigen 只需頭文件不參與編譯所以后面 ALAMODE 編譯時(shí)不會(huì)產(chǎn)生額外的.o文件。4.4 可選的 MPI 環(huán)境如果你的計(jì)算任務(wù)需要處理大超胞或多位移構(gòu)型建議安裝 Intel MPI。Intel oneAPI HPC Toolkit 通常會(huì)捆綁 Intel MPI安裝后運(yùn)行source /opt/intel/oneapi/setvars.sh which mpiifort如果函數(shù)正常返回說明 MPI 環(huán)境可用。ALAMODE 的 configure 腳本會(huì)自動(dòng)檢測(cè) MPI但如果沒有檢測(cè)到也不會(huì)影響串行編譯。你可以在 configure 參數(shù)中顯式禁用 MPI--without-mpi不過多數(shù)材料計(jì)算場(chǎng)景還是建議保留 MPI 支持因?yàn)闊釋?dǎo)率計(jì)算涉及大量聲子模式并行化能顯著縮短等待時(shí)間。5. ALAMODE 源碼下載與編譯配置5.1 下載源碼ALAMODE 的源碼托管在 GitHub 或官方網(wǎng)站上。建議下載最新 release 版本而不是直接 clone master 分支這樣能保證穩(wěn)定性和可復(fù)現(xiàn)性。以 tar.gz 包為例cd $HOME wget https://github.com/ttadano/alamode/releases/download/v1.4.0/alamode-v1.4.0.tar.gz tar -zxvf alamode-v1.4.0.tar.gz cd alamode-v1.4.0這里的版本號(hào)只是一個(gè)示例實(shí)際下載時(shí)請(qǐng)以官方倉(cāng)庫(kù)的 release 為準(zhǔn)。如果 GitHub 訪問速度慢也可以通過官方主頁(yè)下載。解壓后目錄下會(huì)有configure、Makefile.in、examples、src等文件。5.2 設(shè)置 Intel 編譯環(huán)境進(jìn)入源碼目錄后先 source Intel oneAPI 環(huán)境再顯式設(shè)置編譯器變量source /opt/intel/oneapi/setvars.sh export CCicc export CXXicpc export FCifort export F77ifort export FCFLAGS-O2 -xHost export CFLAGS-O2 -xHost如果你的 oneAPI 版本較新icx已經(jīng)替代iccifx也已經(jīng)出現(xiàn)。此時(shí)可以嘗試export CCicx export CXXicpx export FCifort但請(qǐng)注意ALAMODE 的某些 Fortran 代碼可能與ifx存在兼容性差異如果編譯報(bào)錯(cuò)回退到ifort是更穩(wěn)妥的方案。-xHost表示針對(duì)本機(jī) CPU 架構(gòu)優(yōu)化如果后續(xù)需要遷移到其他機(jī)器建議換成-marchcore-avx2等通用指令集。5.3 configure 生成 Makefile配置命令要根據(jù)上一節(jié)準(zhǔn)備的依賴路徑來寫。下面的示例假設(shè) FFTW 安裝到$HOME/fftwEigen 在$HOME/eigenMKL 使用系統(tǒng)默認(rèn)環(huán)境./configure --prefix$HOME/alamode \ --with-fftw$HOME/fftw \ --with-lapack$MKLROOT \ --with-eigen$HOME/eigen \ --with-mpiyes--with-mpiyes表示啟用 MPI。如果你沒有安裝 Intel MPI可以用--with-mpino關(guān)閉。configure 腳本會(huì)輸出檢查到的編譯器、庫(kù)路徑和功能狀態(tài)。關(guān)鍵看是否有checking for FFTW... yes、checking for LAPACK... yes、checking for Eigen... yes之類的結(jié)果。如果某個(gè)依賴顯示no需要回到上一步檢查路徑和頭文件。5.4 編譯與安裝configure 沒問題后直接執(zhí)行編譯make -j$(nproc) make installmake install會(huì)把可執(zhí)行文件安裝到--prefix指定的目錄下默認(rèn)產(chǎn)生$HOME/alamode/bin目錄其中包含alm和anphon兩個(gè)可執(zhí)行程序。安裝完成后將安裝目錄加入PATHexport PATH$HOME/alamode/bin:$PATH為了讓每次登錄自動(dòng)生效可以寫入~/.bashrc。這一步之后ALAMODE 就算安裝完成了。6. 功能測(cè)試與效果驗(yàn)證安裝完成后不要急著跑大體系先用程序自帶的幫助信息和示例數(shù)據(jù)做一次完整性驗(yàn)證。6.1 檢查可執(zhí)行文件which alm which anphon如果能正常返回路徑說明bin目錄已經(jīng)生效。再執(zhí)行alm --help anphon --help如果輸出幫助信息沒有出現(xiàn)error while loading shared libraries說明動(dòng)態(tài)庫(kù)鏈接正常。6.2 使用自帶示例驗(yàn)證流程ALAMODE 源碼包通常帶有examples目錄。比如常見的硅模型、金剛石模型等。你可以進(jìn)入某個(gè)示例目錄查看輸入文件格式然后嘗試運(yùn)行cd examples/si alm這里不一定會(huì)輸出一個(gè)完整的計(jì)算結(jié)果因?yàn)椴煌姹臼纠妮斎胛募煌?。更通用的?yàn)證方式是用mkalmt或anphon直接執(zhí)行一個(gè)簡(jiǎn)單任務(wù)。但為了不依賴特定示例文件你可以在自己已經(jīng)準(zhǔn)備好的第一性原理數(shù)據(jù)上測(cè)試。初次使用時(shí)建議選擇一個(gè)小超胞例如 2x2x2 的硅晶體這樣幾分鐘內(nèi)就能跑完便于快速確認(rèn)程序和依賴庫(kù)是否正常工作。6.3 判斷編譯成功的關(guān)鍵指標(biāo)編譯成功的判斷標(biāo)準(zhǔn)有幾個(gè)alm和anphon可以正常執(zhí)行沒有段錯(cuò)誤程序可以讀取你的力常數(shù)或位移輸入文件并給出力常數(shù)擬合報(bào)告聲子色散計(jì)算能輸出頻率數(shù)據(jù)數(shù)值在半導(dǎo)體的合理范圍比如硅的光學(xué)聲子頻率接近 16 THz日志文件末尾沒有出現(xiàn)NaN或Inf數(shù)值。如果輸出中有大量NaN通常不是編譯問題而是輸入數(shù)據(jù)質(zhì)量問題可能是位移構(gòu)型不完整或受力數(shù)據(jù)精度不夠。這種情況需要回到第一性原理計(jì)算階段檢查 VASP 設(shè)置。6.4 MPI 并行測(cè)試如果你的 ALAMODE 啟用了 MPI可以用 MPI 方式運(yùn)行示例mpirun -np 4 anphon觀察程序是否正常啟動(dòng)并利用多核計(jì)算。如果這步報(bào)錯(cuò)比如找不到libmpi.so說明 MPI 庫(kù)鏈接不完整需要檢查L(zhǎng)D_LIBRARY_PATH是否包含 Intel MPI 的 lib 目錄。7. 資源占用與性能觀察ALAMODE 是純 CPU 計(jì)算程序運(yùn)行時(shí)主要關(guān)注 CPU 使用率、內(nèi)存占用和并行效率。下面給出一些觀察方法和調(diào)優(yōu)思路。在終端用htop或top查看進(jìn)程信息。串行運(yùn)行時(shí)CPU 使用率應(yīng)該在一個(gè)核上接近 100%。并行運(yùn)行時(shí)多個(gè)核的 CPU 使用率都會(huì)升高。如果并行之后 CPU 使用率仍然只有 100%說明 MPI 沒有真正生效需要檢查命令行是否使用了mpirun以及程序啟動(dòng)時(shí)有沒有加載 MPI 庫(kù)。內(nèi)存方面ALAMODE 的內(nèi)存需求主要集中在力常數(shù)矩陣求解和聲子模式對(duì)角化。超胞原子數(shù)越多矩陣規(guī)模越大內(nèi)存占用越高。以常見 2x2x2 硅超胞為例內(nèi)存占用通常不超過 2 GB。如果你的超胞超過 100 個(gè)原子建議內(nèi)存至少 16 GB 以上。要臨時(shí)降低內(nèi)存峰值可以關(guān)閉并行環(huán)境變量中的超線程或者使用更緊湊的矩陣存儲(chǔ)模式。性能調(diào)優(yōu)可以參考以下幾點(diǎn)使用OMP_NUM_THREADS控制 OpenMP 線程數(shù)配合 MPI 做混合并行編譯時(shí)使用-O2或-O3優(yōu)化但不要盲目使用最高優(yōu)化級(jí)別某些優(yōu)化可能導(dǎo)致數(shù)值誤差使用 MKL 提供的多線程版本并設(shè)置MKL_NUM_THREADS參數(shù)在超算或服務(wù)器上盡量將計(jì)算任務(wù)綁定到物理核心避免 CPU 頻繁切換。8. 常見問題與排查方法在 Ubuntu 20.04 下編譯 ALAMODE最容易遇到的問題集中在編譯器環(huán)境、數(shù)學(xué)庫(kù)路徑和鏈接參數(shù)上。下表整理了常見現(xiàn)象、可能原因和解決方案。問題現(xiàn)象可能原因排查方式解決方案configure 報(bào)No Fortran compiler found未安裝 ifort或環(huán)境變量未設(shè)置執(zhí)行which ifort安裝 Intel oneAPI HPC Toolkit并source setvars.sh找不到fftw3.hFFTW 路徑配置錯(cuò)誤或未安裝 FFTW查看$HOME/fftw/include/fftw3.h是否存在重裝 FFTW或重新指定--with-fftw鏈接時(shí)報(bào)cannot find -lmkl_sequentialMKL 庫(kù)路徑未添加到 LDFLAGS檢查$MKLROOT/lib/intel64是否有對(duì)應(yīng)文件在 configure 前設(shè)置 LDFLAGSEigen 相關(guān)編譯報(bào)錯(cuò)Eigen 頭文件路徑錯(cuò)誤或版本過舊檢查Eigen/Core是否可訪問下載新版 Eigen并通過--with-eigen指定路徑alm啟動(dòng)時(shí)報(bào)libiomp5.so找不到Intel OpenMP 運(yùn)行庫(kù)未加載執(zhí)行l(wèi)dd alm/ldd anphon重新 source oneAPI 環(huán)境并設(shè)置LD_LIBRARY_PATH編譯過程中internal compiler error編譯器版本過舊或優(yōu)化級(jí)別過高查看編譯器版本重試降低優(yōu)化級(jí)別更新 Intel oneAPI 到最新版或改用-O1編譯MPI 并行程序報(bào)錯(cuò)MPI_Init失敗MPI 環(huán)境未正確加載或網(wǎng)絡(luò)接口不匹配運(yùn)行mpirun --version重新source setvars.sh或指定--mca參數(shù)計(jì)算結(jié)果全部為 NaN輸入數(shù)據(jù)或力常數(shù)擬合異常不一定是編譯問題檢查輸入文件格式和第一性原理輸出的受力精度增加 VASP 受力收斂標(biāo)準(zhǔn)重新生成輸入數(shù)據(jù)如果 configure 階段碰到LAPACK library not found可以手動(dòng)用 MKL 鏈接一個(gè)簡(jiǎn)單的 Fortran 測(cè)試程序來驗(yàn)證。比如寫一個(gè)只調(diào)用zheev的小程序用ifort配合 LDFLAGS 編譯能跑通就說明 MKL 環(huán)境正常。這樣能把編譯問題快速定位到 ALAMODE 本身還是系統(tǒng)數(shù)學(xué)庫(kù)上。9. 最佳實(shí)踐與使用建議編譯安裝完成后建議把一次完整的安裝流程記錄下來包括依賴版本、configure 參數(shù)、環(huán)境變量形成一份安裝筆記。后續(xù)換機(jī)器或者給同事復(fù)現(xiàn)時(shí)可以節(jié)省大量排查時(shí)間。在項(xiàng)目管理上推薦把源碼、依賴庫(kù)和計(jì)算結(jié)果分目錄存放。比如$HOME/ ├── alamode_src/ # ALAMODE 源碼 ├── fftw/ # 獨(dú)立編譯的 FFTW ├── eigen/ # Eigen 頭文件 ├── alamode_install/ # ALAMODE 安裝目錄 └── calc/ # 實(shí)際計(jì)算任務(wù)每個(gè)計(jì)算任務(wù)目錄下單獨(dú)放輸入文件、腳本和輸出結(jié)果避免多個(gè)項(xiàng)目混用同一個(gè)工作目錄。這樣即便要重新編譯 ALAMODE也不會(huì)影響正在跑的計(jì)算任務(wù)。使用 ALAMODE 時(shí)建議先小規(guī)模測(cè)試再上大規(guī)模任務(wù)。第一性原理計(jì)算和聲子計(jì)算都是重資源任務(wù)如果直接在幾百個(gè)原子的超胞上運(yùn)行后期可能會(huì)因?yàn)檩斎霐?shù)據(jù)問題浪費(fèi)大量機(jī)時(shí)。先跑一個(gè)小體系確認(rèn)程序、流程和結(jié)果合理性再擴(kuò)大范圍。對(duì)于需要長(zhǎng)期運(yùn)行的批量任務(wù)建議寫一個(gè)簡(jiǎn)單的 shell/python 包裝腳本自動(dòng)遍歷不同結(jié)構(gòu)、不同溫度或不同位移幅度并記錄每次運(yùn)行的日志。批量任務(wù)要設(shè)置超時(shí)和失敗重試機(jī)制避免某個(gè)計(jì)算任務(wù)卡住影響整個(gè)隊(duì)列。輸出文件夾也要包含清晰的命名比如結(jié)構(gòu)名、溫度、位移大小等。涉及第三方材料數(shù)據(jù)、未發(fā)表結(jié)構(gòu)或商業(yè)合作項(xiàng)目時(shí)務(wù)必確認(rèn)數(shù)據(jù)授權(quán)范圍。ALAMODE 的開源許可只覆蓋軟件本身不覆蓋你輸入的原子結(jié)構(gòu)和第一性原理計(jì)算結(jié)果。如果使用 VASP 等商業(yè)軟件生成數(shù)據(jù)還需要遵守對(duì)應(yīng)軟件的許可條款。10. 總結(jié)與下一步ALAMODE 在 Ubuntu 20.04 上的 Intel 版編譯安裝核心路徑是準(zhǔn)備好 Intel oneAPI 編譯環(huán)境編譯或配置好 FFTW、LAPACK/BLAS、Eigen 三個(gè)依賴庫(kù)然后運(yùn)行configure生成 Makefile最后make make install。整個(gè)過程不依賴 GPU主要考驗(yàn)的是編譯環(huán)境和路徑配置。最容易踩的坑有三個(gè)一是沒有 source Intel oneAPI 環(huán)境導(dǎo)致找不到 ifort二是 FFTW 路徑錯(cuò)誤導(dǎo)致 configure 檢測(cè)失敗三是 LAPACK 鏈接參數(shù)不完整導(dǎo)致編譯能通過但鏈接階段報(bào)錯(cuò)。如果你第一次安裝失敗優(yōu)先檢查這三處。安裝成功后先跑一個(gè)最小示例驗(yàn)證alm和anphon是否正常。如果小體系能輸出正確的聲子頻率說明整套流程已經(jīng)打通后面可以開始處理你自己的材料結(jié)構(gòu)。建議接下來的方向是先用簡(jiǎn)單體系做一次聲子色散計(jì)算逐步熟悉 ALAMODE 的輸入文件格式再嘗試計(jì)算三階非諧力常數(shù)和聲子壽命最后再做晶格熱導(dǎo)率分析。如果計(jì)算規(guī)模比較大可以嘗試 MPI 并行并對(duì)比不同并行方案對(duì)效率的影響。