ไลบรารีที่จำเป็นและไลบรารีเสริม¶
หน้านี้อธิบายไลบรารีที่จำเป็นต่อการบิลด์ FrontISTR และไลบรารีเสริมที่ใช้ขยายความสามารถ สำหรับขั้นตอนการติดตั้งแต่ละไลบรารี โปรดดูเอกสารของไลบรารีนั้น
ไลบรารีที่จำเป็น¶
เครื่องมือและไลบรารีต่อไปนี้จำเป็นสำหรับการบิลด์ FrontISTR
| ไลบรารี | ข้อกำหนดเวอร์ชัน | การใช้งาน |
|---|---|---|
| CMake | ≥ 3.13.4 | ระบบบิลด์ |
| คอมไพเลอร์ C/C++/Fortran | — | คอมไพล์ซอร์สโค้ด |
| MPI | — | ไลบรารีการสื่อสารแบบขนาน (OpenMPI, IntelMPI เป็นต้น) |
ไลบรารีเสริม¶
ไลบรารีต่อไปนี้เป็นตัวเลือก และสามารถเปิดใช้งานระหว่างการบิลด์ตามความสามารถที่ต้องการ สำหรับตัวเลือก CMake ที่สอดคล้องกัน โปรดดู ขั้นตอนการบิลด์ด้วย CMake
| ไลบรารี | ตัวเลือก CMake | การใช้งาน | แหล่งที่มา |
|---|---|---|---|
| METIS (v4/v5) | WITH_METIS | การแบ่งโดเมนด้วยการแบ่งกราฟ | Karypis Lab |
| MUMPS + ScaLAPACK | WITH_MUMPS | ตัวแก้โดยตรงแบบขนาน | MUMPS-Solver.org / Netlib |
| Intel oneAPI MKL | WITH_MKL | ตัวแก้โดยตรง (PARDISO), BLAS/LAPACK | Intel |
| OpenBLAS / LAPACK | WITH_LAPACK | พีชคณิตเชิงเส้นเชิงตัวเลข (การประมาณ condition number) | OpenBLAS.net / Netlib |
| Trilinos ML | WITH_ML | การปรับสภาพล่วงหน้าแบบ AMG | Trilinos Project |
| REVOCAP_Refiner | WITH_REFINER | การทำเมชให้ละเอียดขึ้น | หน้าดาวน์โหลด FrontISTR |
| REVOCAP_Coupler | WITH_REVOCAP | การวิเคราะห์แบบควบคู่ | หน้าดาวน์โหลด FrontISTR |
| NetCDF | WITH_NETCDF | เอาต์พุตในรูปแบบ Exodus II | Unidata |
| Doxygen | WITH_DOC | สร้างเอกสาร API | Doxygen.nl |
เครื่องมือเพิ่มเติมที่จำเป็นสำหรับการบิลด์ GPU¶
การเร่งด้วย GPU ของ FrontISTR ติดตั้งโดยใช้ OpenACC และในปัจจุบันมีการตรวจสอบการทำงานกับการกำหนดค่าที่ใช้ NVIDIA HPC SDK การบิลด์สำหรับ GPU ต้องใช้เครื่องมือต่อไปนี้เพิ่มเติมจากไลบรารีที่จำเป็นข้างต้น
| เครื่องมือ | การใช้งาน | แหล่งที่มา |
|---|---|---|
NVIDIA HPC SDK (nvc, nvc++, nvfortran) | คอมไพล์ OpenACC GPU offload | NVIDIA |
สำหรับรายละเอียดขั้นตอนการบิลด์สำหรับ GPU รวมถึงการจัดการไลบรารีที่ไม่รองรับ โปรดดู การบิลด์โดยใช้ GPU