1.3. Fortran DVMH kompilyatori
Fortran DVMH kompilyatori manba dasturini ish vaqtini qo'llab-quvvatlash tizimining (Lib-DVM kutubxonasi) funktsiyalariga qo'ng'iroqlar bilan parallel Fortran dasturiga aylantiradi. Bundan tashqari, kompilyator har bir manba dastur uchun yana ikkita modul yaratadi: biri C CUDA tilida [2] va ikkinchisi Fortran CUDA tilida [3].
Xususan, mintaqadan parallel sikl uchun kompilyator C CUDA tilida ishlov beruvchi funktsiyasini va Fortran CUDA tilida GPUda hisoblash uchun yadroni, shuningdek Fortran tilida bajarish uchun ishlov beruvchi protsedurasini yaratadi. xost mashinasi. Ishlovchi - bu ma'lum bir qurilmada parallel tsiklning bir qismini ishlov beradigan pastki dastur. Argument sifatida qurilma va parallel halqa qismlari uchun tutqichni oladi. Ishlovchi qismni bajarish uchun (pastga chegaralari va qadami), parallel ishlov berish konfiguratsiyasini (torlar soni), qisqartirish o'zgaruvchilarini ishga tushirishni so'raydi va qisman bajarilgandan so'ng qisman qisqartirish natijasini qo'llab-quvvatlash tizimiga o'tkazadi. CUDA ishlov beruvchisi bo'lsa, u sikl qismlarini qayta ishlash uchun Fortran CUDA tilida maxsus yaratilgan yadroni chaqiradi. CUDA yadrosi GPUda ishlaydi, hisob-kitoblarni amalga oshiradi
Odatiy bo'lib, mintaqa barcha turdagi kompyuterlarda bajarilishi mumkin deb taxmin qilinadi va kompilyator xost mashinasi va CUDA dvigateli uchun ishlov beruvchilarni yaratadi. Foydalanuvchi REGION direktivasining TARGETS bandi orqali mintaqa qaysi kompyuterlarda bajarilishi kerakligini belgilashi mumkin. Uning ko'rsatmalariga ko'ra, kompilyator u yoki bu ishlov beruvchini yaratadi.
Tugunlar orasidagi o'zaro ta'sir uchun qo'llab-quvvatlash tizimi MPI kutubxonasidan foydalanadi.
Parallel dasturni bajarish modelini amalga oshirish bo'yicha asosiy ishlar (masalan, ma'lumotlar va hisob-kitoblarni taqsimlash) dinamik ravishda amalga oshiriladi. Bu
DVMH dasturlarini ishga tushirishda (qayta kompilyatsiya qilmasdan) dinamik konfiguratsiyani parallel kompyuter konfiguratsiyasiga (protsessorlar, tezlatgichlar soni, ularning ishlashi va turi, shuningdek, aloqa kanallarining kechikishi va o'tkazuvchanligi) imkonini beradi. Shunday qilib, dasturchi turli xil konfiguratsiyadagi ketma-ket va parallel kompyuterlarda bajarish uchun dasturning bitta versiyasiga ega bo'lish imkoniyatini oladi.
Do'stlaringiz bilan baham: |