Bỏ qua

Quy trình biên dịch bằng CMake

Trang này mô tả quy trình từ khi lấy mã nguồn FrontISTR đến khi biên dịch và cài đặt. Để biết chi tiết về các thư viện phụ thuộc, hãy xem Các thư viện phụ thuộc bắt buộc và tùy chọn.

Lấy mã nguồn

Có thể lấy mã nguồn FrontISTR từ GitLab hoặc GitHub.

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub (bản sao)
git clone https://github.com/FrontISTR/FrontISTR.git

Quy trình biên dịch

FrontISTR giả định sử dụng kiểu biên dịch ngoài cây nguồn (không được phép biên dịch trực tiếp trong thư mục gốc của cây nguồn). Hãy tạo thư mục build và chạy cmake trong thư mục đó.

cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)

Sau khi biên dịch, có thể chạy trực tiếp chương trình tại /path/to/FrontISTR/build/fistr1/fistr1. Nếu muốn cài đặt vào đường dẫn hệ thống (CMAKE_INSTALL_PREFIX), hãy chạy thêm lệnh sau.

cmake --build . --target install

Danh sách tùy chọn CMake

Các tùy chọn có giá trị mặc định ghi là "ON khi phát hiện" sẽ tự động được bật nếu thư viện tương ứng được tìm thấy trên hệ thống khi chạy cmake. Có thể tắt rõ ràng bằng cách chỉ định -DWITH_XXX=OFF.

Tùy chọn Mặc định Mô tả
WITH_MPI ON Bật song song MPI
WITH_OPENMP ON khi phát hiện Bật song song luồng OpenMP
WITH_METIS ON khi phát hiện Bật phân chia miền bằng METIS
METIS_VER_4 OFF Sử dụng METIS v4 (OFF để dùng v5)
WITH_MUMPS ON khi phát hiện Bật bộ giải trực tiếp song song MUMPS
WITH_MKL ON khi phát hiện Bật Intel MKL (bao gồm PARDISO)
WITH_LAPACK ON khi phát hiện Bật ước lượng số điều kiện bằng LAPACK
WITH_ML ON khi phát hiện Bật tiền điều kiện AMG bằng Trilinos ML
WITH_REFINER ON khi phát hiện Bật tinh chỉnh lưới bằng REVOCAP_Refiner
WITH_REVOCAP ON khi phát hiện Bật phân tích liên hợp bằng REVOCAP_Coupler
WITH_TOOLS ON Biên dịch các công cụ đi kèm
WITH_DOC OFF Tạo tài liệu API bằng Doxygen
WITH_NETCDF ON khi phát hiện Bật xuất dữ liệu ở định dạng Exodus II (NetCDF)
WINDOWS OFF Bật biên dịch cho Windows
CMAKE_BUILD_TYPE RELEASE Kiểu biên dịch (RELEASE / DEBUG)
CMAKE_INSTALL_PREFIX /usr/local Thư mục cài đặt
DEBUG_EXTRA OFF Bật kiểm tra rò rỉ bộ nhớ (dành cho GCC, -fsanitize=address)

Biên dịch DEBUG

Khi chỉ định CMAKE_BUILD_TYPE=DEBUG, các cờ gỡ lỗi sau sẽ được thêm tùy theo trình biên dịch.

Trình biên dịch Cờ bổ sung
GCC -fbounds-check -fbacktrace
Intel -check uninit,bound -traceback
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

Biên dịch với GPU

Khi chỉ định NVIDIA HPC SDK (nvc/nvc++/nvfortran) làm trình biên dịch, CMake sẽ tự động thêm các cờ sau.

Cờ Mô tả
-acc Bật OpenACC
-Minfo=accel Hiển thị thông tin về việc chuyển tải sang GPU trong lúc biên dịch
-gpu=ccnative,mem:managed Tự động phát hiện GPU của môi trường biên dịch để xác định đích và sử dụng Unified Memory

Để biết quy trình chi tiết về biên dịch GPU bằng OpenACC, hãy xem Biên dịch với GPU.

AI-assisted translation May contain errors Official docs Status