OMP_NUM_THREADS.
Shuni ta'kidlash kerakki, ishlab chiquvchi sinxronizatsiya uchun javobgardir
oqimlar va ma'lumotlar o'rtasidagi bog'liqlik. Kompilyatsiya qilish uchun
OpenMP-ni qo'llab-quvvatlaydigan dastur haqida kompilyatorga xabar berish kerak qo'shimcha kalit:
icc –openmp prog.c
ifc –openmp prog.f
Umumiy xotira modelida iplar o'zaro ta'sir qiladi
umumiy o'zgaruvchilar orqali. Bunday ehtiyotsizlik bilan muomala qilishda
dasturdagi o'zgaruvchilar, poyga xatolar yuzaga kelishi mumkin (poyga
holat). Bu iplar parallel ravishda ishlaganligi sababli sodir bo'ladi.
va shunga mos ravishda umumiy o'zgaruvchilarga kirish ketma-ketligi
dasturning bir ishidan ikkinchisiga farq qilishi mumkin.
Raqobat xatolarini nazorat qilish uchun iplarning ishi bo'lishi kerak
sinxronlash. Buning uchun quyidagi sinxronizatsiya primitivlaridan foydalaniladi
muhim bo'limlar, to'siqlar, atom operatsiyalari va qulflar kabi. Xarajatlar
E'tibor bering, sinxronizatsiya dasturni talab qilishi mumkin
qo'shimcha yuk va yaxshiroq o'ylash va ajratish
ma'lumotlar sinxronizatsiya nuqtalari soni bo'lishi uchun
minimallashtirilgan.
8.2. OpenMP asoslari
Sintaksis. Asosan, OpenMP konstruksiyalari direktivalardir
kompilyator C/C++ direktivalari quyidagi shaklga ega:
#pragma omp konstruktsiyasi [shart [shart]...]
OpenMP konstruksiyalari direktivalar bo'lgani uchun
ularni tushunmaydigan kompilyator ularni o'tkazib yuboradi va hali ham OpenMP ni yaratadi
dastur, garchi izchil.
119