پرش به محتویات

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

برای مراحل تفصیلی ساخت GPU با OpenACC به ساخت با استفاده از GPU مراجعه کنید.