GPU dəstəyi ilə qurma¶
FrontISTR NVIDIA HPC SDK-nın OpenACC imkanından istifadə edərək GPU üzərində işləyə bilər. Bu səhifədə GPU dəstəyi aktiv olan FrontISTR-in qurulması və icrası izah edilir.
Tələb olunan kitabxanalar üçün Məcburi və istəyə bağlı asılılıqlar bölməsinə baxın.
Qurma proseduru¶
NVIDIA HPC SDK kompilyatorlarından(nvc, nvc++, nvfortran)istifadə edin. HPC klaster mühitində qurma başlamazdan əvvəl mühitin təlimatına uyğun olaraq NVIDIA HPC SDK yüklənməlidir(məsələn, module load nvhpc).
METIS, MUMPS və MKL kimi istəyə bağlı kitabxanalar GPU-nu dəstəkləmədiyinə görə aşağıdakı komanda nümunələrində onlar söndürülüb(məsələn, WITH_METIS=OFF).
CMake ilə qurma proseduru bölməsində izah edildiyi kimi, kompilyator kimi NVIDIA HPC SDK(nvc, nvc++, nvfortran)göstərildikdə CMakeLists.txt-də -gpu=ccnative,mem:managed təyin edilir. ccnative qurma mühitindəki GPU-nu avtomatik aşkarlayıb optimal hədəfi seçən seçimdir, buna görə hər mühit üçün əl ilə dəyişiklik tələb olunmur. mem: GPU yaddaşının necə idarə olunacağını təyin edən seçimdir və FrontISTR-in GPU reallaşdırması vahid yaddaşı (Unified Memory) nəzərdə tutduğuna görə onun göstərilməsi məcburidir. mem:managed CPU və GPU-nun ayrı yaddaşa malik olduğu ümumi mühitlər üçün standart parametrdir.
Qeyd: Miyabi(GH200)kimi CPU və GPU-nun NVLink vasitəsilə inteqrasiya olunduğu arxitekturalarda
mem:managedəvəzinəmem:unifiedistifadə edilir; istifadə olunan mühitə uyğun olaraq parametri dəyişin(-gpu=ccnative,mem:unified).
OpenACC + OpenMP(MPI olmadan)¶
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 istifadə edilərkən MPI wrapper kompilyatorları(məsələn, mpicc)daxildə NVIDIA HPC SDK kompilyatorlarını(məsələn, nvc)çağıracaq şəkildə konfiqurasiya edilməlidir. Bir çox HPC klaster mühitində NVIDIA HPC SDK və MPI kitabxanaları module load kimi komandalarla yükləndikdə bu konfiqurasiya avtomatik təmin edilir. Lakin tövsiyə olunan versiyalar və yükləmə prosedurları mühitdən asılı olaraq dəyişir, buna görə təfərrüatlar üçün hər mühitin istifadəçi təlimatına və ya digər sənədləşməsinə baxın.
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
İcra üsulu¶
GPU qurmasının icra proseduru əsasən CPU qurması ilə eynidir. Ümumi icra prosedurları üçün İcra təlimatı bölməsinə baxın.
Profilləşdirmə¶
NVIDIA Nsight Systems(nsys)vasitəsilə profilləşdirmə verilənləri toplana bilər.