انتقل إلى المحتوى

البناء باستخدام 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

لإجراءات البناء التفصيلية باستخدام OpenACC وGPU، راجع البناء باستخدام GPU.