1. Ishni bajarishdan maqsad: Parallelashtirishning zamonaviy instrumental vositasi hisoblangan Openmp kutubxonasi imkoniyatlarini o'rganish va uning yordamida parallel dasturlar tuzush ko'nikmasini hosil qilish. Nazariy qisim
Download 0.5 Mb.
|
2-amaliy ish
- Bu sahifa navigatsiya:
- 1.Ishni bajarishdan maqsad
O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI Telekommunikatsiyalar fakulteti 417-20 guruh talabasi Qurbonov Temurning Kompyuter arxitekturasi fanidan 2-amaliy ishi. Bajardi: Qurbonov Temur Qabul qildi: Raximov Mehriddin TOSHKENT-2023 Mavzu:OpenMP parallellashtirish kutubxonasi bilan tanishish va uning yordamida parallel dasturlar tuzush. 1.Ishni bajarishdan maqsad: Parallelashtirishning zamonaviy instrumental vositasi hisoblangan OpenMP kutubxonasi imkoniyatlarini o'rganish va uning yordamida parallel dasturlar tuzush ko'nikmasini hosil qilish. 2.Nazariy qisim: OpenMP (Open Multi - Processing) – ko’p oqimli ilovalarni yaratish uchun mo’ljallangan amaliy dasturlashning interfeysi bo’lib, asosan umumiy xotiraga ega bo’lgan parallel hisoblash tizimlari uchun ishlab chiqilgan. OpenMP kompilyatorlar va maxsus funksiyalar kutubxonasi uchun direktivalar to’plamidan iborat. OpenMP standarti yaqin 15 yil ichida umumiy xotiraga ega arxitekturalarga qo’llanilgan holda yaratilgan.So’nggi yillarda taqsimlangan xotirali parallel hisoblash tizimlari uchun OpenMP standartining kengaytirilgan holda ishlab chiqilmoqda. 2005 - yilning oxirida Intel kompaniyasi Cluster OpenMP mahsulotini taqdim etdi, unda kengaytirilgan OpenMP ishlab chiqilgan bo’lib taqsimlangan xotirali parallel hisoblash tizimlari uchun mo’ljallangan. OpenMP spetsifikatsiyasini hisoblash va dasturlash texnikasi bo’yicha bir nechta yirik ishlab chiqaruvchi kompaniyalar (Intel, Hewlett-Packard, Silicon Graphics, Sun, IBM, Fujitsu, Hitachi, Siemens, Bull) yaratishmoqda, ularni OpenMP Architecture Review Board(ARB) deb nomlangan notijorat korxonasi tomonidan boshqariladi. OpenMP ko’p oqimli ilovalarni tez va yengil yaratishni Fortran va C/C++ algoritmik tillarda amalga oshiradi. OpenMP ning birinchi versiyasi 1997 - yilda Fortran tili uchun yaratilgan. C/C++ dasturlash tillari uchun esa 1998 - yilda yaratilgan. 2008 - yilda esa OpenMP ning 3.0 versiyasi taqdim etildi. OpenMP da parallel va ketma – ketlik . Parallel muhitga kirilgandan so’ng yangi OMP_NUM_THREADS-1 oqimlar yaratiladi, har bir oqim o’zining unikal nomeriga ega bo’ladi, bunda dastlabki oqim 0 nomer bilan belgialanadi va u bosh oqim (master) bo’ladi. Qolgan oqimlar raqam sifatida butun sonlar 1 dan OMP_NUM_THREADS – 1gacha bo’ladi. Oqimlar soni belgilangan parallel muhitda bajariladi va ushbu muhitdan chiqib ketishgacha o’zgarmay qoladi. Parallel muhitdan chiqib ketgandan so’ng sinxronizatsiya yordamida bosh oqimdan boshqa barcha oqimlar yo’q qilinadi. MISOL: //example4.c: add all elements in an array in parallel #include int main() { const int N=100;
//initialize for (int i=0; i < N; i++) a[i] = i; //compute sum int local_sum, sum; #pragma omp parallel private(local_sum) shared(sum) { local_sum =0; //the array is distributde statically between threads #pragma omp for schedule(static,1) for (int i=0; i< N; i++) { local_sum += a[i]; } //each thread calculated its local_sum. ALl threads have to add to //the global sum. It is critical that this operation is atomic. #pragma omp critical sum += local_sum; } printf("sum=%d should be %d\n", sum, N*(N-1)/2); } NATIJA: Download 0.5 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling