ขั้นตอนการบิลด์ด้วย CMake¶
หน้านี้อธิบายขั้นตอนตั้งแต่การดาวน์โหลดซอร์สโค้ดของ FrontISTR ไปจนถึงการบิลด์และติดตั้ง สำหรับรายละเอียดของไลบรารีที่ต้องพึ่งพา โปรดดู ไลบรารีที่จำเป็นและไลบรารีทางเลือก
การดาวน์โหลดซอร์สโค้ด¶
สามารถดาวน์โหลดซอร์สโค้ดของ FrontISTR ได้จาก GitLab หรือ GitHub
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub(มิเรอร์)
git clone https://github.com/FrontISTR/FrontISTR.git
ขั้นตอนการบิลด์¶
FrontISTR ใช้การบิลด์แบบแยกไดเรกทอรีต้นทางและไดเรกทอรีบิลด์ เป็นหลัก (ห้ามบิลด์โดยตรงที่รากของโครงสร้างซอร์ส) ให้สร้างไดเรกทอรี build แล้วรัน cmake ภายในไดเรกทอรีนั้น
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
หลังบิลด์แล้วสามารถรันโดยตรงเป็น /path/to/FrontISTR/build/fistr1/fistr1 ได้ หากต้องการติดตั้งลงในพาธของระบบ (CMAKE_INSTALL_PREFIX) ให้รันคำสั่งต่อไปนี้เพิ่มเติม
รายการตัวเลือก CMake¶
ตัวเลือกที่ระบุว่า “ON เมื่อตรวจพบ” จะเปิดใช้งานโดยอัตโนมัติหากพบไลบรารีนั้นในระบบขณะรัน cmake และสามารถปิดได้โดยระบุ -DWITH_XXX=OFF อย่างชัดเจน
| ตัวเลือก | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|
WITH_MPI | ON | เปิดใช้งานการประมวลผลขนานด้วย MPI |
WITH_OPENMP | ON เมื่อตรวจพบ | เปิดใช้งานการประมวลผลขนานแบบเธรดด้วย OpenMP |
WITH_METIS | ON เมื่อตรวจพบ | เปิดใช้งานการแบ่งโดเมนด้วย METIS |
METIS_VER_4 | OFF | ใช้ METIS v4 (OFF ใช้ v5) |
WITH_MUMPS | ON เมื่อตรวจพบ | เปิดใช้งานโซลเวอร์วิธีตรงแบบขนาน MUMPS |
WITH_MKL | ON เมื่อตรวจพบ | เปิดใช้งาน Intel MKL (รวม PARDISO) |
WITH_LAPACK | ON เมื่อตรวจพบ | เปิดใช้งานการประมาณค่า เลขสภาวะ ด้วย LAPACK |
WITH_ML | ON เมื่อตรวจพบ | เปิดใช้งานพรีคอนดิชัน AMG ด้วย Trilinos ML |
WITH_REFINER | ON เมื่อตรวจพบ | เปิดใช้งานการทำเมชให้ละเอียดขึ้นด้วย REVOCAP_Refiner |
WITH_REVOCAP | ON เมื่อตรวจพบ | เปิดใช้งานการวิเคราะห์แบบควบคู่ด้วย REVOCAP_Coupler |
WITH_TOOLS | ON | บิลด์ชุดเครื่องมือที่รวมมาด้วย |
WITH_DOC | OFF | สร้างเอกสาร API ด้วย Doxygen |
WITH_NETCDF | ON เมื่อตรวจพบ | เปิดใช้งานการส่งออกรูปแบบ Exodus II (NetCDF) |
WINDOWS | OFF | เปิดใช้งานการบิลด์สำหรับ Windows |
CMAKE_BUILD_TYPE | RELEASE | ชนิดการบิลด์ (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | ไดเรกทอรีปลายทางการติดตั้ง |
DEBUG_EXTRA | OFF | เปิดใช้งานการตรวจสอบ หน่วยความจำรั่ว (สำหรับ GCC, -fsanitize=address) |
การบิลด์ DEBUG¶
เมื่อระบุ CMAKE_BUILD_TYPE=DEBUG จะเพิ่มแฟล็กดีบักต่อไปนี้ตามคอมไพเลอร์
| คอมไพเลอร์ | แฟล็กเพิ่มเติม |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
การบิลด์โดยใช้ GPU¶
เมื่อระบุ NVIDIA HPC SDK (nvc/nvc++/nvfortran) เป็นคอมไพเลอร์ CMake จะเพิ่มแฟล็กต่อไปนี้โดยอัตโนมัติ
| แฟล็ก | คำอธิบาย |
|---|---|
-acc | เปิดใช้งาน OpenACC |
-Minfo=accel | แสดงข้อมูลการถ่ายโอนงานไปยัง GPU ขณะคอมไพล์ |
-gpu=ccnative,mem:managed | ตรวจหา GPU ในสภาพแวดล้อมบิลด์โดยอัตโนมัติเพื่อกำหนดเป้าหมาย และใช้ Unified Memory |
สำหรับขั้นตอนโดยละเอียดของการบิลด์ GPU ด้วย OpenACC โปรดดู การบิลด์โดยใช้ GPU