በ 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 | 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 |
GPU በመጠቀም መገንባት¶
NVIDIA HPC SDK (nvc/nvc++/nvfortran) እንደ ኮምፓይለር ሲገለጽ፣ CMake የሚከተሉትን ፍላጎቶች በራስ-ሰር ይጨምራል።
| ፍላጎት | መግለጫ |
|---|---|
-acc | OpenACCን ያነቃል |
-Minfo=accel | ስለ GPU ማስወረድ መረጃ በማጠናቀር ጊዜ ያሳያል |
-gpu=ccnative,mem:managed | በግንባታ አካባቢው ያለውን GPU በራስ-ሰር ፈልጎ ዒላማውን ይወስናል፣ እና Unified Memory ይጠቀማል |
በ OpenACC የ GPU ግንባታ ዝርዝር ሂደት ለማየት GPU በመጠቀም መገንባት ይመልከቱ።