Iterativ stencil looplari - Iterative Stencil Loops

7-nuqta 3D shakli fon Neyman uslubdagi shablon.

Iterativ stencil looplari (ISL) - bu raqamli ma'lumotlarni qayta ishlash echimi[1]qaysi yangilanish massiv elementlari shablon deb nomlangan ba'zi bir sobit naqshga ko'ra.[2] Ular eng ko'p uchraydi kompyuter simulyatsiyalari, masalan. uchun suyuqlikning hisoblash dinamikasi ilmiy va muhandislik qo'llanmalari kontekstida. Boshqa muhim misollarga hal qilish kiradi qisman differentsial tenglamalar,[1] The Jakobi yadro, Gauss-Zeydel usuli,[2] tasvirni qayta ishlash[1] va uyali avtomatlar.[3] Massivlarning muntazam tuzilishi shablon texnikasini, kabi boshqa modellashtirish usullaridan ajratib turadi Cheklangan element usuli. Ko'pchilik cheklangan farq kodlari muntazam tarmoqlarda ishlaydigan ISL sifatida shakllantirilishi mumkin.

Ta'rif

ISLlar berilgan massiv orqali ketma-ketlik (vaqt oralig'i deb nomlanadi) bajaradi.[2] Odatda bu 2 yoki 3 o'lchovli muntazam panjara.[3] Massiv elementlari ko'pincha kataklar deb ataladi. Har bir vaqt oralig'ida barcha massiv elementlari yangilanadi.[2] Qo'shni qator elementlaridan sobit shaklda (stencil) foydalanib, har bir katakning yangi qiymati hisoblab chiqiladi. Ko'pgina hollarda chegara qiymatlari o'zgarishsiz qoldiriladi, ammo ba'zi hollarda (masalan, LBM kodlari ) hisoblash paytida ham ularni moslashtirish kerak. Shablon har bir element uchun bir xil bo'lganligi sababli, ma'lumotlarga kirish naqshlari takrorlanadi.[4]

Rasmiy ravishda biz ISL-larni a deb belgilashimiz mumkin 5-karra quyidagi ma'no bilan:[3]

  • indekslar to'plami. U massiv topologiyasini belgilaydi.
  • har bir hujayra istalgan vaqt oralig'ida qabul qilishi mumkin bo'lgan holatlarning (cheklangan bo'lishi shart emas) to'plamidir.
  • tizimning 0 holatidagi dastlabki holatini belgilaydi.
  • shablonning o'zi va mahallaning haqiqiy shaklini tavsiflaydi. Lar bor shablondagi elementlar.
  • qo'shnilariga qarab hujayraning yangi holatini aniqlash uchun ishlatiladigan o'tish funktsiyasi.

Beri Men a k- o'lchovli butun sonli interval, massiv har doim cheklangan muntazam panjaraning topologiyasiga ega bo'ladi. Massiv simulyatsiya maydoni deb ham ataladi va individual kataklar ularning indekslari bilan aniqlanadi . Shablon - bu buyurtma qilingan to'plam nisbiy koordinatalar. Endi har bir hujayra uchun olishimiz mumkin qo'shnilarining indekslari

Ularning holatlari grafani xaritalash orqali berilgan holatlarning tegishli katakchasiga , qayerda quyidagicha belgilanadi:

Keyingi vaqt bosqichlari uchun tizimning holatini aniqlashimiz kerak bo'lgan narsa bilan :

Yozib oling belgilanadi va faqat emas chunki chegara shartlari ham o'rnatilishi kerak. Ba'zan toroidal topologiyalarni amalga oshirish uchun simulyatsiya makonining o'lchovi vektor qo'shilishi moduli bilan aniqlanishi mumkin:

Bu amalga oshirish uchun foydali bo'lishi mumkin davriy chegara shartlari, bu ma'lum jismoniy modellarni soddalashtiradi.

Misol: 2 o'lchovli Jakobi takrorlanishi

2D qatoridagi tanlangan katakchaning ma'lumotlarga bog'liqligi.

Rasmiy ta'rifni ko'rsatish uchun biz qanday qilib ikki o'lchovli ekanligini ko'rib chiqamiz Jakobi takrorlashni aniqlash mumkin. Yangilash funktsiyasi hujayraning to'rtta qo'shnisining o'rtacha arifmetikasini hisoblab chiqadi. Bu holda biz 0 boshlang'ich eritmasi bilan yo'lga chiqdik. Chap va o'ng chegara 1 ga, yuqori va pastki chegaralar 0 ga o'rnatildi. Etarli miqdordagi takrorlashdan so'ng tizim egar shakliga yaqinlashadi.

S_0
S_200
S_400
S_600
S_800
S_1000
2D Jacobi takrorlash Array

Shablonlar

Yangilanishlar paytida ishlatiladigan mahalla shakli dasturning o'ziga bog'liq. Eng keng tarqalgan shablonlar - ning 2D yoki 3D versiyalari fon Neyman mahallasi va Mur mahallasi. Yuqoridagi misolda 2D von Neumann shablonidan foydalanilgan bo'lsa, LBM kodlari odatda uning 3D variantidan foydalanadi. Konveyning "Hayot o'yini" 2D Mur mahallasidan foydalanadi. Ya'ni, boshqa shablonlar, masalan, seysmik to'lqinlarning tarqalishi uchun 25 ballli shablon[5] ham topish mumkin.

9 punktli shablon
9-punktli 2D shablon
5 ballli shablon
5-punktli 2D shablon
6 punktli shablon
7-punktli 3D shablon
25-punktli shablon
25-punktli 3D shablon
Turli xil ilmiy qo'llanmalarda ishlatiladigan shablonlar to'plami.

Amalga oshirish masalalari

Ko'pgina simulyatsiya kodlari tabiiy ravishda ISL sifatida shakllantirilishi mumkin. Hisoblash vaqti va xotira iste'moli massiv elementlari soniga qarab chiziqli ravishda o'sib borganligi sababli, ISL-larning parallel tatbiq etilishi tadqiqot uchun juda muhimdir.[6] Bu juda qiyin, chunki hisoblashlar bir-biri bilan chambarchas bog'langan (hujayraning yangilanishi tufayli qo'shni katakchalarga bog'liq) va ko'pgina ISLlar xotiraga bog'langan (ya'ni xotiraga kirishning hisob-kitoblarga nisbati yuqori).[7] ISLlarni samarali bajarish uchun deyarli barcha amaldagi parallel arxitekturalar o'rganilgan;[8] hozirgi paytda GPGPUlar eng samarali ekanligi isbotlangan.[9]

Kutubxonalar

Ikkala ISL ning ahamiyati tufayli kompyuter simulyatsiyalari va ularning yuqori hisoblash talablari, olimlarni stencil asosida hisoblashda qo'llab-quvvatlash uchun qayta ishlatiladigan kutubxonalar yaratishga qaratilgan bir qator harakatlar mavjud. Kutubxonalar asosan parallellashtirish bilan shug'ullanadi, lekin boshqa muammolarni ham hal qilishi mumkin, masalan, IO, boshqarish va nazorat punkti. Ular API bo'yicha tasniflanishi mumkin.

Yamoqqa asoslangan kutubxonalar

Bu an'anaviy dizayn. Kutubxona to'plamni boshqaradi n- foydalanuvchi dasturi yangilanishlarni amalga oshirishi mumkin bo'lgan o'lchovli skalar massivlari. Kutubxona chegaralarni sinxronlashtirish bilan shug'ullanadi (sharpa zonasi yoki halo deb nomlangan). Ushbu interfeysning afzalligi shundaki, foydalanuvchi dasturi massivlar bo'ylab tsikl qilishi mumkin, bu esa eski kodni birlashtirishni osonlashtiradi [10]. Kamchiliklari shundaki, kutubxona keshlarni blokirovkalashga qodir emas (chunki bu halqalar ichida bajarilishi kerak)[11]) yoki tezlatgichlar uchun API-chaqiruvlarni o'rash (masalan, CUDA yoki OpenCL orqali). Amalga oshirish kiradi Kaktus, fizika muammolarini hal qilish muhiti va waLBerla.

Uyali kutubxonalar

Ushbu kutubxonalar interfeysni bitta simulyatsiya katakchalarini yangilashga yo'naltiradi: faqat joriy katak va uning qo'shnilari ta'sir qiladi, masalan. getter / setter usullari orqali. Ushbu yondashuvning afzalligi shundaki, kutubxona qaysi kataklarning qaysi tartibda yangilanishini qattiq nazorat qilishi mumkin, bu nafaqat keshni bloklashni amalga oshirish uchun foydalidir,[9] bir xil kodni ko'p yadroli va grafik protsessorlarda ishlatish uchun.[12] Ushbu yondashuv foydalanuvchidan manba kodini kutubxona bilan birgalikda qayta kompilyatsiya qilishni talab qiladi. Aks holda har bir hujayraning yangilanishi uchun funktsiya chaqiruvi talab qilinadi, bu esa ishlashni jiddiy ravishda buzadi. Bu kabi usullar bilan amalga oshiriladi sinf shablonlari yoki metaprogramma, shuningdek, ushbu dizayn faqat yangi kutubxonalarda mavjud bo'lishining sababi. Misollar Fitoz va LibGeoDecomp.

Shuningdek qarang

Adabiyotlar

  1. ^ a b v Rot, Jerald va boshq. (1997) SC'97 materiallari: yuqori samarali tarmoq va hisoblash. Yuqori mahsuldorlikdagi shablonlarni to'plash Fortran.
  2. ^ a b v d Sloot, Piter M.A va boshq. (2002 yil 28-may) Hisoblash fanlari - ICCS 2002: Xalqaro konferentsiya, Amsterdam, Niderlandiya, 2002 yil 21-24 aprel. Ish yuritish, I qism. Sahifa 843. Nashriyot: Springer. ISBN  3-540-43591-3.
  3. ^ a b v Fey, Dietmar va boshq. (2010) Grid-hisoblash: Eine Basistechnologie für Computational Science. Sahifa 439. Nashriyot: Springer. ISBN  3-540-79746-7
  4. ^ Yang, Lorens T.; Guo, Minyi. (2005 yil 12-avgust) Yuqori samarali hisoblash: paradigma va infratuzilma. Sahifa 221. Nashriyotchi: Wiley-Interscience. ISBN  0-471-65471-X
  5. ^ Micikevicius, Paulius va boshq. (2009) CUDA-dan foydalangan holda grafik protsessorlarda 3D sonli farqni hisoblash Grafika ishlov berish birliklarida umumiy maqsadlarda ishlash bo'yicha 2-seminarning materiallari ISBN  978-1-60558-517-8
  6. ^ Datta, Kaushik (2009) Keshga asoslangan ko'p yadroli platformalar uchun shablon kodlarini avtomatik sozlash Arxivlandi 2012-10-08 da Orqaga qaytish mashinasi, T.f.n. Tezis
  7. ^ Wellein, G va boshq. (2009) Ko'p yadroli to'lqinli oldingi paralelizatsiya orqali stencil hisoblash uchun samarali vaqtinchalik blokirovka, 33-yillik IEEE Xalqaro kompyuter dasturlari va ilovalari konferentsiyasi, COMPSAC 2009
  8. ^ Datta, Kaushik va boshq. (2008) Shablonlarni hisoblashni optimallashtirish va zamonaviy ko'p yadroli arxitekturalarda avtomatik sozlash, SC '08 Supercomputing bo'yicha 2008 yil ACM / IEEE konferentsiyasi materiallari
  9. ^ a b Schäfer, Andreas and Fey, Dietmar (2011) GPGPUlar uchun yuqori mahsuldorlik stencil kodi algoritmlari, Hisoblash fanlari bo'yicha xalqaro konferentsiya materiallari, ICCS 2011
  10. ^ S. Donat, J. Gyots, C. Feyhtinger, K. Iglberger va U. Ryud (2010) waLBerla: Minglab protsessorlarga ega Itanium asosidagi tizimlar uchun optimallashtirish, Fan va muhandislik sohasida yuqori samarali hisoblash, Garching / Myunxen 2009
  11. ^ Nguyen, Entoni va boshq. (2010) Zamonaviy CPU va GPU-larda stencil hisoblash uchun 3,5-o'lchovli blokirovka qilishni optimallashtirish, SC '10 Yuqori samarali hisoblash, tarmoq, saqlash va tahlil qilish bo'yicha 2010 yilgi ACM / IEEE xalqaro konferentsiyasining materiallari.
  12. ^ Naoya Maruyama, Tatsuo Nomura, Kento Sato va Satoshi Matsuoka (2011) Fizika: Katta hajmli GPU tezlashtirilgan superkompyuterlarda stencil hisoblash uchun aniq parallel dasturlash modeli, SC '11 2011 yilgi yuqori samarali hisoblash, tarmoq, saqlash va tahlil qilish bo'yicha ACM / IEEE xalqaro konferentsiyasining materiallari.

Tashqi havolalar