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 આપમેળે શોધીને લક્ષ્ય નક્કી કરે છે અને યુનિફાઇડ મેમરી વાપરે છે |
OpenACC દ્વારા GPU બિલ્ડની વિગતવાર પ્રક્રિયા માટે GPU નો ઉપયોગ કરીને બિલ્ડ જુઓ.