Kompyuter arxitekturasi”-fanidan


Download 26.25 Kb.
Sana06.04.2023
Hajmi26.25 Kb.
#1332505

O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
FARGONA FELIALI


KAMPYUTER INJINERING FAKULTETI
III-BOSQICH SIRTQI 712-20_ GURUH TALABASINING
KOMPYUTER ARXITEKTURASI”-fanidan
MUSTAQIL ISHI


Bajardi: SATINBOYEV T.
Qabul qildi: MIRKOMILOV D.

FARGONA-2023
KIRISH
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 1-jadval. Direktivalar O’zgaruvchan muhit Ishlash vaqti muhiti Parallel maydon Oqimlar soni Oqimlar soni Ishni taqsimlash Jadvallar Oqimlar ID Moslashtirish O’zgaruvchan oqimlarni tartibga solish O’zgaruvchan oqimlarni tartibga solish Ma’lumotlar ko’lami sifatlari(private, firstprivate, lastprivate, shared, reduction) Parallelashtirishni qurish Parallelashtirishni qurish Umumlashtirish Vaqtni hisoblash Bloklash uchun API 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: oddiy parallel dasturlash uchun kompilyator direktifi MPI: kutubxonaning yuqori samarali taşınabilirliğini amalga oshirish uchun muntazam Java: etakchi dasturiy tilida bir vaqtda kelishuv Muhokamani iloji boricha aniqroq qilish uchun har bir tanlov uchun taniqli dasturning parallel versiyasi taqdim etiladi. Bu to'rtburchak formulasidan foydalanib odatiy raqamli integratsiya va integral funktsiyasi va integral chegaralari tanlanadi, shunda 'n' raqami matematik jihatdan to'g'ri natija hisoblanadi. Ushbu vazifa parallel dasturlashda "salom dunyosi" dasturining analogiyasidir. Maqolaning oxirida ish va o'qish uchun parallel dasturiy ko'rsatmani tanlash bo'yicha qisqacha tushuntirish berilgan. OpenMP [omp] - umumiyxotirakompyuterlariuchun parallel dasturlarniyaratishuchunsanoatstandartibo'lgan API. OpenMPningasosiymaqsadi - aylanishyo'naltirilgandasturlarniyozishniosonlashtirishdir. Bundaydasturlartez-tezyuqorisamaralihisoblashuchunyaratiladi. Bundantashqari, komponentlarOpenMPtarkibiga SPMD, "master and workflow", quvurliniyasikabi parallel usullariniqo'llab-quvvatlashuchunkiritilgan. OpenMPjudamuvaffaqiyatli parallel dasturlashtiligaaylandi. U bozorgakiradiganharbirxotiraalmashadigankompyuterdamavjud. Bundantashqari, Intel yaqindaKlasterlarniqo'llab-quvvatlashuchunOpenMPversiyasiniyaratdi. OpenMPparallelizminmavjudketma-ketlikdasturi parallel holgakelgunichaastasekinqo'shilgandasturlashuslubiniqo'llab-quvvatlaydi. Biroq, buafzallikOpenMPningengzaifnuqtasidir. Agar muvozanatasta-sekinqo'shilsa, dasturchidasturnikengmiqyosdaqaytaqurishqilaolmaydi, buko'pinchamaksimalishlashuchunzarurbo'ladi. OpenMPdoimiyrivojlanayotganstandartdir. OpenMP Architecture Review Board deb nomlangansanoatguruhiushbutilgayangikengaytmalarkiritishuchunmuntazamuchrashuvlaro'tkazadi. OpenMP ning keyingi versiyasi (3.0 versiyasi) vazifanavbatinitashkiletishqobiliyatinio'zichigaoladi. Bu esa, OpenMP-gayanadakengboshqaruvtuzilmalariniboshqarishvaumumiyumumiyrecursivalgoritmlardanfoydalanishimkoniniberadi.Kompyuterningoperatsiontizimining (OS) ko'rinishibittadasturlirejimdanko'pdasturli (ko'pdasturli) ishrejimigao'tishgaimkonberdi. Operatsiontizimodatdabirnechtavazifanibirvaqtningo'zidabajarayotganigaishonib, ko'pishlarnitalabqiladi. C # dasturchisinuqtainazaridan OS uchunvazifa - budasturyokiloyiha.Turlixiloperatsiontizimlarbirxilyokio'xshashtushunchalaruchunturliatamalardanfoydalanadi. Bundantashqari, OS haqidagapirganda, Windows operatsiontiziminiyoddatutamizva biz bu OS operatsionterminologiyasiniishlatamiz. Ilovamizningharbirbajarilganloyihasiuchunoperatsiontizimbirjarayonniyaratadi. Kompyuterhardoimishlayotganvaqtda, OS turlijarayonlarbilanishlaydi, ularningaksariyatirasmiyhisoblanadi. Antivirus dasturlari kabi ushbu jarayonlarning ba'zilari kompyuterimda doimo mavjud bo'lib, kompyuteryoqilgandaboshlanadi. OpenMPdasturida parallel dasturdirektivalaryordamidamaxsustayinlangandastur - parallel qismlar - dasturiykodnibirnechaalohidabuyruqlaroqimlariga (iplar) bo'linishimumkinbo'lgandasturhisoblanadi. Umumanolganda, dasturdasturkodiningketma-ket (birnusxadagi) va parallel (ko'pqismli) qismlarimajmuasisifatidaifodalanadi (4.2-rasmga qarang). Shunita'kidlashjoizki, threadlarorasidagihisob-kitoblarnitaqsimlashtegishliOpenMPdirektivalaritomonidanboshqariladi. Hisoblagichyukinimuvozanatlashning (yuknimuvozanatlash) muntazamtaqsimoti - parallel dasturnibajarishningmumkinbo'lganmaksimaltezlashuviniolishuchunjudamuhimahamiyatgaega. Mavzularturlixilprotsessorlarda (protsessoryadrosi) bajarilishimumkinyokibittahisoblashelementidabajarilishiuchunguruhlanganbo'lishimumkin (buholdaularvaqtnialmashishrejimidaamalgaoshiriladi). Cheklashjarayonida parallel dasturniamalgaoshirishuchunbittaprotsessorqo'llanilishimumkin - odatda, buusul parallel dasturningto'g'riliginidastlabkitekshirishuchunishlatiladi. Iplarsoni parallel dasturqismlarinibajarishboshidaaniqlanadivaodatdatizimdagimavjudhisoblashelementlariningsonigato'g'rikeladi; Yaratilganiplarsoninio'zgartirishturliOpenMPvositalaridanfoydalanganholdaamalgaoshirilishimumkin. Dasturning parallel qismlaridabarchaoqimlarnavbatbilan 0 dan np - 1 gaqaytanumaralandırılır, buerda np, jamioqimsoni. OqimningraqaminiOpenMPfunktsiyasidanfoydalanib ham olishmumkin. ParallelizmnitashkilqilishuchunOpenMPishlariniqo'llashko'pprotsessorlihisoblashtizimlariningafzalliklariniumumiyxotirabilanbirgalikdako'ribchiqishgaimkonberadi. Avvalo, birxil parallel dasturningiplariumumiymanzillarmaydonidaishlaydi, bu parallel holdaishlaydiganishzarrachalaruchunumumiyma'lumotlardanfoydalanishgaimkonberadi (tarqalganxotiralitizimlaruchun MPI texnologiyasidagijarayonlardanfarqlio'laroq). Bundantashqari, ishlarniboshqarish
(yaratish, to'xtatibqo'yish, faollashtirish, tugatish) jarayonlarganisbatan OS uchunkamroqishhaqitalabqiladi. Yuqoridata'kidlabo'tilganidek, iplar parallel dasturningumumiymanzilmaydonidaamalgaoshiriladi. Natijada, parallel oqimlarningo'zarota'siribarchaoqimlaruchunmavjudbo'lganumumiyma'lumotlardanfoydalanishorqalitashkilqilinishimumkin. Oddiyvaziyat - faqato'qiladiganma'lumotlardanfoydalanish. Umumiyma'lumotlarbirnechtaoqimlardao'zgarishimumkinbo'lganhollarda, to'g'rio'zaromunosabatlarnitartibgasolishuchunmaxsusharakatlartalabetiladi. Aslida, ikkitaiplarbirxildasturkodinibajarishikerak n = n + 1; umumiyo'zgaruvchan n uchun. Keyinchalik, ijroetilishsharoitlarigaqarab, buoperatsiyani (buto'g'rinatijagaerishishgaolibkeladigan) amalgaoshirishmumkinyokiharikkalaoqimbirvaqtningo'zidao'zgarmaydigan n qiymatinio'qishimumkin, birvaqtningo'zidabuo'zgaruvchigayangiqiymatnioshiradivayozadi (natijadanoto'g'riqiymatolinadi). Shungao'xshashvaziyat, agar hisob-kitoblarnatijasioqimlarningbajarilishigabog'liqbo'lsa, irqishartlarini (poygasharoitini) oladi. Rassomniistisnoqilishuchunumumiyo'zgaruvchanqiymatlardagio'zgarishlarnibirvaqtningo'zidabittabittaoqimbilanamalgaoshirilishinita'minlashkerak - ya'niumumiyma'lumotbilanishlashdaoqimlarnio'zaroajratibolishnita'minlashkerak. OpenMPdaajralmas (atom) operatsiyalari, tanqidiybo'linishlarmexanizmi (kritikbo'limlar) yokisemaforqulflarningmaxsusturi (qulflar) yordamidao'zarotenglashtirilishimumkin. Shunita'kidlashkerakki, o'zaromutlaqotashkillashnitashkiletishmasalalarni parallel ravishdaamalgaoshirishimkoniyatinikamaytiradi - umumiyo'zgaruvchanlargabirvaqtningo'zidakirishimkoniyatiniberadi, ulardanfaqatbittasiishlashnidavomettirishimumkin, boshqabarchamasalalarbloklanadivaumumiyma'lumotlartarqalishinikutadi. Ta'kidlashjoizki, umumiyma'lumotbilanishlashdao'zarohisobdanchiqarishnitashkiletishmajburiyhisoblanadi, biroqishzarrachalariningpaydobo'lishkechikishi (tiqilibqolishi) o'zvaqtidakambo'lishikerak.
OpenMPtuzilishi: • Direktivlar • Funksiyalarkutubxonasi • Birqatoro'zgaruvchilari. UshbutartibdaOpenMPtexnologiyasiningimkoniyatlariko'ribchiqiladi. Ushbustandart C90, C99, C ++, Fortran 77, Fortran 90 va Fortran 95 algoritmlariuchunOpenMPfoydalanishnita'minlaydi. OpenMPdirektivasiningformatinivabarchadasturlarningmisollaridan C da taqdimetiladi; Fortran tiliuchunOpenMPtexnologiyasidanfoydalanishxususiyatlari 5.8.1-bandda keltirilgan. EngumumiyshaklidaOpenMPdirektivasiningformatiquyidagichaifodalanishimumkin:

#pragma omp [


[[,]
] ...] Direktivningboshlang'ichqismi (#pragma omp) sobitbo'ladi, direktivaningturiuningnomi (Direktiv_yeni) bilanbelgilanadi, harbirdirektivo'zboshimchalikbilanparametrlarsonibilanbirgabo'lishimumkin (ingliztilida, OpenMPdirektivasiningparametrlariatamalarjumlasidanfoydalanadi).
Misoluchun, biz birko'rsatmagamisolkeltiramiz:
#pragma omp parallel default (shared) \ Shaxsiy (beta, pi) Misol, ko'rsatmalarnio'rnatishuchundasturningbirnechtayo'nalishidanfoydalanishmumkinliginiko'rsatadi - davometishmavjudliginibelgisi "\" teskarisi. Birinchi parallel dasturmisoli Juda muhimnuqtata'kidlabo'taylik - shunianglashmumkinki, OpenMPtexnologiyasiningimkoniyatlariniqisqachako'ribchiqishoddiy, ammo parallel dasturlarniishlabchiqishuchunetarli. Yangidasturlashtillarini - "SalomDunyo"
degansalomyo'linichiqadigandasturniishlabchiqishdadastlabamaldastandartdasturishlabchiqaylik. Shundayqilib:
#include main () { / * Parallel parchanitanlash * / #pragma omp parallel {printf ("SalomDunyo! \ n"); } / * Parallel parchani * / }

odatda belgilanmaganbo’ladi va uning qiymati falsega teng bo’ladi.omp_in_parallel() funksiyasi 1 qiymatni qaytaradi, agar aktiv holatdagiparallel muhitdan chaqirilgan bo’lsa. Quyidagi misolda omp_in_parallel() funksiyasi qo’llanilgan. Mode funksiyasiqaysi muhitdan chaqirilishiga qarab, “parallel muhit” yoki “ketma - ket muhit”qatorlarini chop etishda qo’llaniladi.#include "stdafx.h"#include using namespace System;void mode(void){if(omp_in_parallel())Console::WriteLine("parallel muhit");elseConsole::WriteLine("ketma - ket muhit");}int main(array ^args){mode();#pragma omp parallel{#pragma omp master{mode();}}return 0; } C/C++ dasturlash tillarida yuqoridagi barcha shartlar single direktivasi bilanbirgalikda e’lon qilinadi.Dasturning belgilangan qismini qaysi oqim bajarishi tavsiflanmaydi. Agardanowait sharti e’lon qilinmasa, bitta oqim belgilangan fragmentni bajaradi, qolganoqimlar uning ishini tugashini kutib turadi. Single direktivasi umumiyo’zgaruvchilar bilan ishlaganda kerak.Master direktivasi kodning ma’lum bir qismini faqat bosh oqim bajarishi
Download 26.25 Kb.

Do'stlaringiz bilan baham:




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