البناء باستخدام 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 |
لإجراءات البناء التفصيلية باستخدام OpenACC وGPU، راجع البناء باستخدام GPU.