Kompyuter arxitekturasi”-fanidan
Download 26.25 Kb.
|
- Bu sahifa navigatsiya:
- KOMPYUTER ARXITEKTURASI”-fanidan MUSTAQIL ISHI Bajardi: SATINBOYEV T. Qabul qildi: MIRKOMILOV D. FARGONA-2023
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 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 Download 26.25 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling