Zbekiston respublikasi raqamli texnologiyalar vazirligi muhammad al-xorazmiy nomidagi



Yüklə 291,61 Kb.
səhifə1/2
tarix13.12.2023
ölçüsü291,61 Kb.
#149005
  1   2
5 Amaliy ish Arxitektura


O’ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Q
ARSHI FILIALI

KOMPYUTER INJINIRING” FAKULTETI


KI 11-21 guruh talabasining
“KOMPYUTER ARXITEKTURASI” fanidan


5-AMALIY ISH


Bajardi: Kenjayev Og’abek
Qabul qildi: Xõjaqõlov N.
QARSHI – 2023

5-Amaliy ish
Mavzu: OpenMP paketi asosida algoritmlarni bajarish
Ishdan maqsad: OpenMP paketini o’rganish, OpenMP paketi orqali algoritmlarni bajarishni tahlil qilish.

OpenMP paketlarining ishlash prinsipi
OpenMP API (Application Program Interface) bu o’zida umumiy xotirali
parallelashgan C, C++ va Fortran dasturlari uchun komplyator diektivalarini,
kutubxonalarni va o’zgaruvchilar tavsifini jamlangan paket hisoblanadi.
C, C++ va Fortran tillarida direktivalar bitta dasturda bir nechta ma’lumotlar
(SPMD-single program multiple data) tuzilmasi, vazifalar tuzilmasi, qurilma
tuzilmasi, ish almashish tuzilmasi va moslashtirish tuzilmasini umumiy xotiraga
o’zlashtirib beradi. Vazifasi ishlash vaqtini nazorat qilish, kutubxona va
o’zgaruvchilar bilan ta’minlab berishdir.
OpenMP ning asosiy komponentalari


OpenMP paketining kamchiliklari.
OpenMP API yagona foydalanuvchi uchun mo’ljallangan. OpenMP dasturga
bog’liq bo’lgan ma’lumotlar bog’liqligini, ma’lumotlar qarama-qarshiligini,
muammoli holatlarni tekshirishni talab qilmaydi. Shu bilan birgalikda dasturdagi
kodlar ketma-ketligini xam tekshirishni talab qilmaydi. Dasturchilar OpenMP API
to’g’ri foydalanib dastur tuzishlari kerak. OpenMP API faqatgina murojaat
qilgandan keyingina ishlaydi.

OpenMP infratuzilmasi C, C++ va Fortran da parallel dasturlash texnologiyalarini samarali amalga oshirish imkonini beradi. 4.2 versiyasining GNU Compiler Collection (GCC) kompilyatori openmp 2.5 spetsifikatsiyasini qo'llab – quvvatlaydi va 4.4 versiyasining GCC versiyasi OpenMP 3 ning eng yangi xususiyatidir. Microsoft ® Visual Studio kabi boshqa kompilyatorlar ham OpenMP-ni qo'llab-quvvatlaydi. Ushbu maqola sizga openmp kompilyatorining pragmalaridan foydalanishni o'rgatadi; shuningdek, ba'zi OpenMP API-lari haqida ma'lumot beradi va OpenMP yordamida parallel hisoblash usullarini ochib beradi. Ushbu maqolaning barcha misollari gcc kompilyatoridan foydalanadi 4.2.


Birinchi OpenMP ilovasini yaratish
Salom, dunyo oddiy ilovasini yozishdan boshlaylik!, qo'shimcha pragma o'z ichiga oladi. Ushbu dastur kodi 1 listingida taqdim etiladi.

Jadval 1. OpenMP yordamida yozilgan "Salom dunyo" dasturi



1
2
3
4
5
6
7
8

#include
int main()
{
#pragma omp parallel
{
std::cout << "Hello World!\n";
}
}

G++ yordamida ushbu kodni kompilyatsiya qilish va ishga tushirgandan so'ng, ekranda "Hello", "World" yozuvini ko'rasiz!. Endi kodni variant bilan qayta kompilyatsiya qilamiz-fopenmp. Dasturning natijasi 2-jadvalda keltirilgan.
Jadval 2. Variantni ishlatib kodni kompilyatsiya qilish va ishga tushirish

1
2
3
4
5
6
7
8
9
10

tintin$ g++ test1.cpp -fopenmp
tintin$ ./a.out
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!

Nima yuz berdi? Kompilyator opsiyasidan foydalanganda-fopenmp, #pragma omp parallel direktivasi ishga tushadi. Kompilyatsiya jarayonida GCC ichki mexanizmlari tizimning optimal yuklanishi (apparat va operatsion tizim konfiguratsiyalariga qarab) amalga oshirilishi mumkin bo'lgan parallel oqimlar hosil qiladi, har bir oqim pragmadan keyin blokda joylashgan kodni amalga oshiradi. Bunday xatti-harakatlar bevosita parallelizatsiya deb ataladi va OpenMP yadrosi sizni turli xil kod qismlarini yozishdan xalos qiluvchi kuchli pragmalar to'plamidan iborat (qiziqish uchun siz ushbu kodni POSIX oqimlari [pthreads] bilan bir xil vazifani bajarish bilan taqqoslashingiz mumkin). Men 7 jismoniy yadrosi bilan Intel ® Core i4 protsessor bilan ishlaydigan kompyuterni har birida 2 mantiqiy yadrosi bilan ishlataman, bu 2 (8 oqimlari = 8 mantiqiy yadrolari) ro'yxatida olingan natijalarni tushuntiradi.





Yüklə 291,61 Kb.

Dostları ilə paylaş:
  1   2




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

    Ana səhifə