3) ASYNC - mintaqani asinxron bajarish imkoniyati.
Hududni istalgan rejimda (sinxron, asinxron) ishga tushirishda, agar IN, OUT, LOCAL, INOUT, INLOCAL bandlari ushbu (oldin ishga tushirilgan) mintaqa tomonidan ishlatiladigan ma'lumotlarni o'zgartirish zarurligini ko'rsatsa, avval ishga tushirilgan hududning tugashini kutish sodir bo'ladi. yoki ma'lumotlardan foydalanish (yozish yoki o'qish) zarurati , bu (oldin ishga tushirilgan) mintaqa tomonidan o'zgartirilgan (OUT, INOUT, LOCAL, INLOCAL).
Joriy hudud bajarishni tugatmaguncha, boshqaruv sinxron mintaqadan keyingi bayonotga o'tmaydi. Boshqarish asinxron mintaqadan keyingi bayonotga uning tugashini (yoki hatto boshlanishini) kutmasdan o'tishi mumkin.
Hududni bajarishning to'liq tsikli quyidagilarni o'z ichiga oladi:
1) tezlatgichlarda yangi o'zgaruvchilar uchun joy bo'shatish (hostdagi o'zgaruvchilarni avtomatik yangilash mumkin),
2) tezlatgichlarda yangi o'zgaruvchilar uchun xotirani ajratish;
3) kalkulyatorlarga zarur bo'lgan dolzarb ma'lumotlarni yuklab olish;
4) kompyuterlarda bajariladigan operatorlarni bajarish.
nol yoki undan ortiq ketma-ket tuzilmalar:
1) Parallel DVM tsikli
Parallel DVM-loop hisoblash mintaqasining eng muhim qismidir.
!DVM$ PARALLEL bandi {, band}
DVM-sikl bandlariga qo'shimcha ravishda, quyidagilar ham bandlar sifatida belgilanishi mumkin:
a) PRIVATE(massiv_yoki_skalar {, massiv_yoki_skalar})
Shaxsiy o'zgaruvchini e'lon qiladi (halqaning har bir iteratsiyasi uchun mahalliy), uni tsiklning qo'shuvchi hududida e'lon qilish shart emas (bundan tashqari, agar u boshqa usulda ishlatilmasa, uni mintaqada e'lon qilish kerak emas).
b) CUDA_BLOCK(X [, Y [, Z]])
CUDA hal qiluvchi uchun ip blokining o'lchamini belgilash. Butun son ifodasi ko'rsatilishi mumkin - keyin blok bir o'lchovli deb qabul qilinadi, vergul bilan ajratilgan ikki yoki uchta butun sonli ifoda ko'rsatilishi mumkin - shunga mos ravishda blok belgilangan o'lchamga ega bo'ladi.
Do'stlaringiz bilan baham: |