GPU yordamida qurish¶
FrontISTR NVIDIA HPC SDK ning OpenACC imkoniyatidan foydalanib GPU da ishlashi mumkin. Ushbu sahifada GPU yoqilgan FrontISTR ni qurish va ishga tushirish usuli tushuntiriladi.
Talab qilinadigan kutubxonalar haqida Majburiy va ixtiyoriy bog‘liqliklar ga qarang.
Qurish tartibi¶
NVIDIA HPC SDK kompilyatorlaridan (nvc, nvc++, nvfortran) foydalaning. HPC klaster muhitida qurishdan oldin muhit qo‘llanmasiga muvofiq NVIDIA HPC SDK ni yuklash kerak (masalan, module load nvhpc).
METIS, MUMPS, MKL kabi ixtiyoriy kutubxonalar GPU ni qo‘llab-quvvatlamagani sababli quyidagi buyruq misollarida ular o‘chirilgan (WITH_METIS=OFF va boshqalar).
CMake yordamida qurish tartibi da aytilganidek, kompilyator sifatida NVIDIA HPC SDK (nvc, nvc++, nvfortran) ko‘rsatilganda CMakeLists.txt da -gpu=ccnative,mem:managed o‘rnatiladi. ccnative qurish muhitidagi GPU ni avtomatik aniqlab, eng mos targetni tanlaydigan parametr bo‘lib, har bir muhit uchun qo‘lda o‘zgartirish talab qilinmaydi. mem: GPU xotirasiga ishlov berish usulini belgilovchi parametrdir; FrontISTR ning GPU amalga oshirilishi Unified Memory ga tayanganligi sababli uni ko‘rsatish shart. mem:managed CPU va GPU alohida xotiraga ega bo‘lgan odatiy muhitlar uchun sukut bo‘yicha sozlamadir.
Izoh: Miyabi (GH200) kabi CPU va GPU NVLink orqali birlashtirilgan arxitekturalarda
mem:managedo‘rnigamem:unifiedishlatiladi; foydalanilayotgan muhitga qarab sozlamani o‘zgartiring (-gpu=ccnative,mem:unified).
OpenACC + OpenMP (MPI siz)¶
mkdir build
cd build
CC=nvc CXX=nvc++ FC=nvfortran cmake \
-DWITH_MPI=OFF -DWITH_OPENMP=ON \
-DWITH_METIS=OFF -DWITH_MUMPS=OFF \
-DWITH_MKL=OFF -DWITH_LAPACK=OFF \
-DWITH_ML=OFF -DWITH_REFINER=OFF -DWITH_REVOCAP=OFF \
..
make -j
OpenACC + OpenMP + MPI¶
MPI ishlatilganda MPI wrapper kompilyatorlari (mpicc va boshqalar) ichkarida NVIDIA HPC SDK kompilyatorlarini (nvc va boshqalar) chaqiradigan qilib sozlangan bo‘lishi kerak. Ko‘p HPC klaster muhitlarida NVIDIA HPC SDK va MPI kutubxonalarini module load kabi buyruqlar bilan yuklash bu konfiguratsiyani avtomatik ta’minlaydi. Biroq tavsiya etilgan versiyalar va yuklash tartibi muhitga qarab farq qiladi, shuning uchun tafsilotlar uchun har bir muhitning foydalanuvchi qo‘llanmasi va boshqa hujjatlariga qarang.
mkdir build
cd build
CC=mpicc CXX=mpic++ FC=mpif90 cmake \
-DWITH_MPI=ON -DWITH_OPENMP=ON \
-DWITH_METIS=OFF -DWITH_MUMPS=OFF \
-DWITH_MKL=OFF -DWITH_LAPACK=OFF \
-DWITH_ML=OFF -DWITH_REFINER=OFF -DWITH_REVOCAP=OFF \
..
make -j
Ishga tushirish¶
GPU build ni ishga tushirish tartibi asosan CPU holatidan farq qilmaydi. Umumiy ishga tushirish tartibi uchun Ishga tushirish qo‘llanmasi ga qarang.
Profillash¶
NVIDIA Nsight Systems (nsys) yordamida profillash ma’lumotlarini yig‘ish mumkin.