4-Laboratoriya ishi



Yüklə 51,51 Kb.
səhifə1/2
tarix19.12.2023
ölçüsü51,51 Kb.
#185297
  1   2
4-amaliy ish

    Bu səhifədəki naviqasiya:
  • MAVZU


Muhammad Al-Xorazmiy nomidagi
Toshkent axborot texnologiyalari universiteti

4-Laboratoriya ishi

Mavzu: OpenMP PAKET TARKIBINI VA ISHLASHINI O‘RGANISH



Talaba:Axrorov Xurshid
Tekshirdi: Boburxon To’rayev

TATU - 2023


MAVZU: OpenMP PAKET TARKIBINI VA ISHLASHINI O‘RGANISH
Ishdan maqsad: OpenMP paketini va uning ishlash algoritmlarini o‘rganish va shaxsiy kompyuterda OpenMP kutubxonasini sozlash hamda undan foydalana olish ko‘nikmasiga ega bo‘lish.
Nazariy qism
OpenMP faqat kompilyatsiya vaqtida ishlaydi, u preprotsessor ko‘rsatmalarini mahalliy Fortran/C/C++ kodiga o‘zgartiradi, keyin esa bajariladiganga kompilyatsiya qilinadi. Bu OpenMP-ga unumdorlikni yo‘qotmasdan “foydalanuvchiga qulay” interfeysni taqdim etish imkonini beradi. C/C++ dasturlash tillarida dasturning parallel muhitda aniqlangan static o‘zgaruvchilar umumiy (shared) o‘zgaruvchi hisoblanadi. Dinamik ajratilgan xotira ham umumiy hisoblanadi, ammo ko‘rsatgich ham umumiy, ham lokal bo‘lishi mumkin. OpenMP da parallel muhitdagi o‘zgaruvchilar 2 turga bo‘linadi: shared (umumiy, hamma oqimlar ushbu turdagi o‘zgaruvchilarni ko‘radi) va private (lokal, har bir oqim o‘zgaruvchining nusxasini o‘zida ko‘radi).
Umumiy o‘zgaruvchi hamma qismlar uchun har doim faqat bitta nusxada bo‘ladi va barcha oqimlarga bitta nomda bo‘ladi.Lokal o‘zgaruvchilar e’lon qilinganda, har bir oqim uchun bir xil tipdagi va o‘lchamdagi nusxalari yaratiladi. Bitta oqimdagi lokal o‘zgaruvchining qiymati o‘zgarsa ham qolgan oqimlardagi nusxalariniki o‘zgarmaydi.Bundan tashqari dasturning kod qismida har bir kvadrat matritsa ustida parallelashtirish amallari qo‘llanilgan. For siklida oqimlarga ajratish #pragma omp parallel for diriktivasi bilan amalga oshiriladi.
Parallel direktivasi yordamida parallel muhit hosil qilinadi. C/C++ dasturlash tilida quyidagicha ko‘rinishda bo‘ladi:
#pragma omp parallel [shart [[,] shart ]…] pragma omp parallel {
#pragma omp for
for (int i = 1; i < size; ++i)
x[i] = (y[i - 1] + y[i + 1]) / 2; }



Yüklə 51,51 Kb.

Dostları ilə paylaş:
  1   2




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin