Derivatning OpenMP ning har qanday versiyasini qo'llab-quvvatlashini tekshirish uchun, shartli derleme ko'rsatmalarini #i fdef yoki #if n def yozib olish kifoya. C va Fortran dasturlarida shartli kompilyatsiya qilishning eng oddiy misollari misolda keltirilgan. #include int main(){ # if def _OPENMP print f( " Open MP is supported! \n " ) ; #endi f } - Derivatning OpenMP ning har qanday versiyasini qo'llab-quvvatlashini tekshirish uchun, shartli derleme ko'rsatmalarini #i fdef yoki #if n def yozib olish kifoya. C va Fortran dasturlarida shartli kompilyatsiya qilishning eng oddiy misollari misolda keltirilgan. #include int main(){ # if def _OPENMP print f( " Open MP is supported! \n " ) ; #endi f }
OpenMP da parallelizatsiya dasturiy matnga maxsus ko'rsatmalar kiritilishi va yordamchi funktsiyalarni chaqirish orqali aniq amalga oshiriladi. OpenMP dan foydalanilganda, parallel dasturlashtirilgan SPMD (Single Program Multiple Data) parallel dasturiy modeli qabul qilinadi, uning ichida bir xil kod barcha parallel iplar uchun ishlatiladi.Dastur navbatdagi maydon bilan boshlanadi - birinchi navbatda, bir jarayon (parrak) ishi, parallel maydonga kirgandan keyin yana bir necha protsedura hosil bo'ladi, bu kodning ayrim qismlari o'rtasida taqsimlanadi. Parallel mintaqa tugagandan so'ng, bitta (ustunli master) tashqari barcha iplar tugatiladi va navbatdagi hudud boshlanadi. Dastur parallel va navbatdagi hududlarning har qanday sonini bo'lishi mumkin. Bundan tashqari, parallel joylar ham ichki bo'lishi mumkin. Tugallanmagan jarayonlardan farqli o'laroq, bug'doy hosilasi nisbatan tez operatsiya hisoblanadi, shuning uchun tez-tez o'sib chiqadigan va iplarning bekor qilinishi dasturning ish vaqtiga juda ta'sir qilmaydi. - OpenMP da parallelizatsiya dasturiy matnga maxsus ko'rsatmalar kiritilishi va yordamchi funktsiyalarni chaqirish orqali aniq amalga oshiriladi. OpenMP dan foydalanilganda, parallel dasturlashtirilgan SPMD (Single Program Multiple Data) parallel dasturiy modeli qabul qilinadi, uning ichida bir xil kod barcha parallel iplar uchun ishlatiladi.Dastur navbatdagi maydon bilan boshlanadi - birinchi navbatda, bir jarayon (parrak) ishi, parallel maydonga kirgandan keyin yana bir necha protsedura hosil bo'ladi, bu kodning ayrim qismlari o'rtasida taqsimlanadi. Parallel mintaqa tugagandan so'ng, bitta (ustunli master) tashqari barcha iplar tugatiladi va navbatdagi hudud boshlanadi. Dastur parallel va navbatdagi hududlarning har qanday sonini bo'lishi mumkin. Bundan tashqari, parallel joylar ham ichki bo'lishi mumkin. Tugallanmagan jarayonlardan farqli o'laroq, bug'doy hosilasi nisbatan tez operatsiya hisoblanadi, shuning uchun tez-tez o'sib chiqadigan va iplarning bekor qilinishi dasturning ish vaqtiga juda ta'sir qilmaydi.
Do'stlaringiz bilan baham: |