Mavzu: Openmp paketi asosida algoritmlarni bajarish Bajardi: Qabul qildi: tuit 2020 Mavzu: Openmp paketi asosida algoritmlarni bajarish Ishdan maqsad



Download 276,1 Kb.
bet2/3
Sana24.01.2022
Hajmi276,1 Kb.
#406769
1   2   3
Bog'liq
2222-mutaqil ishi

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.


Download 276,1 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish