روش ساخت با 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 | اطلاعات offload به GPU را هنگام کامپایل نمایش میدهد |
-gpu=ccnative,mem:managed | GPU محیط ساخت را خودکار شناسایی کرده، هدف را تعیین میکند و از Unified Memory استفاده میکند |
برای مراحل تفصیلی ساخت GPU با OpenACC به ساخت با استفاده از GPU مراجعه کنید.