ข้ามไปที่เนื้อหา

ขั้นตอนการบิลด์ด้วย 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 --build . --target install

รายการตัวเลือก 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
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

การบิลด์โดยใช้ GPU

เมื่อระบุ NVIDIA HPC SDK (nvc/nvc++/nvfortran) เป็นคอมไพเลอร์ CMake จะเพิ่มแฟล็กต่อไปนี้โดยอัตโนมัติ

แฟล็ก คำอธิบาย
-acc เปิดใช้งาน OpenACC
-Minfo=accel แสดงข้อมูลการถ่ายโอนงานไปยัง GPU ขณะคอมไพล์
-gpu=ccnative,mem:managed ตรวจหา GPU ในสภาพแวดล้อมบิลด์โดยอัตโนมัติเพื่อกำหนดเป้าหมาย และใช้ Unified Memory

สำหรับขั้นตอนโดยละเอียดของการบิลด์ GPU ด้วย OpenACC โปรดดู การบิลด์โดยใช้ GPU

AI-assisted translation May contain errors Official docs Status