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.
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 |
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.