Skip to content

በ 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 Trilinos ML የሚጠቀም AMG ቅድመ-ሁኔታ አዘጋጅን ያነቃል
WITH_REFINER ሲገኝ ON REVOCAP_Refiner የሚጠቀም የሜሽ ማጥራትን ያነቃል
WITH_REVOCAP ሲገኝ ON REVOCAP_Coupler የሚጠቀም የተያያዘ ትንተናን ያነቃል
WITH_TOOLS ON አብረው የሚቀርቡ መሳሪያዎችን ይገነባል
WITH_DOC OFF በ Doxygen የ API ሰነድ ይፈጥራል
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 በመጠቀም መገንባት ይመልከቱ።