Параллельді есептеуіште таратылған жадтар жүйесін ұйымдастыру


Жұмыс түрі:  Дипломдық жұмыс
Тегін:  Антиплагиат
Көлемі: 91 бет
Таңдаулыға:   
МАЗМҰНЫ

Глоссарий3

КІРІСПЕ4

1 ПАРАЛЛЕЛЬДІ ЕСЕПТЕУ, ПАРАЛЛЕЛЬДІ КОМПЬЮТЕР ЖӘНЕ АППАРАТТЫҚ ҚАМТАМАСЫЗДАНДЫРУ7

1. 1 Параллелизм, параллелизм деректері, параллелизм есебі және параллелизмді қолдану7

1. 2 Параллельді есептеуіш жүйелердің классификациясы12

1. 3 Параллельді компьютерлердің типтері және жаңа таксономия22

жасау тәсілдері22

2 ПАРАЛЛЕЛЬДІ БАҒДАРЛАМАЛАУ ОРТАСЫ29

2. 1 Параллельді бағдарламалаудың технологиясы29

2. 2 OpenMP параллельді бағдарламалау технологиясын С++ алгоритмдік тілде қолдану35

2. 3 Параллельді бағдарламалаудың бағалану тиімділігі60

3. OPENMP ПАРАЛЛЕЛИЗМ ҰЙЫМДАСТЫРУДА ҚОЛДАНУ67

3. 1 Тізбектелген әдіспен Дирихле есебін шығару67

3. 2 Параллельді есептеуіште жалпы жадтар жүйесін ұйымдастыру70

3. 3 Параллельді есептеуіште таратылған жадтар жүйесін ұйымдастыру86

ҚОРЫТЫНДЫ96

ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ97

Глоссарий

call pvmfexit( info ) - PVM жұмысын аяқтайды.

call pvmfkill( tid, info ) - tid - идентификаторымен жұмысты аяқтайды.

call pvmfspawn( task, flag, where, ntask, tids, numt ) task - орындалатын файл аты;

INTEGER ntask - орындалатын программалар саны;

INTEGER tids - мәндер массиві.

INTEGER flag - іске қосу опциясы;

MPI(Message Passing Interface ) - хабарламаларды беру интерфейсі.

MPI_Comm_rank - процесстер рангісін анықтайды.

MPI_Comm_size - процесстер санын анықтайды.

MPI_Recv - хабарламаның блокталынып алынуы.

MPI_Send - хабарламаның блокталынып берілуі.

msgtag - осы хабарлама тэгі;

nlnts - бүтін сандар саны;

PVM _Recv - блоктап алау.

PVM _Send - тағайындалған процесске хабарламаның асинхронды берілуі

PVM параллельді виртуальды машина.

PVM_initsend (int encoding) - үнсіз келісім бойынша инициализациялайды;

PVM_pkint - бүтін сандарды жинау.

PVM_rnkbuf (int encoding) - хабарламаны орналастыратын жаңа буфер құрып, идентификаторды қайтарады;

PVM_setsbuf (int bufid) - ағымдағы буферді хабарлама жіберуге дайындайды;

PVM_upkint - жиналған бүтін сандарды қайта ашу.

startAddress - бірінші бүтін сан адресі;

tid - хабарлама жіберетін есеп идентификаторы;

where - іске қосылатын орын;


КІРІСПЕ

Параллельді есептеулер (параллельді өңдеу) - бір бағдарламаның (бір жобаның) әр түрлі бөліктерін бір уақытта орындау үшін бірнеше немесе көптеген есептеу құрылғыларын пайдалану.

Параллельді есептеулер-бағдарлама параллель жұмыс істейтін өзара әрекеттесетін есептеу процестерінің жиынтығы ретінде әзірленетін компьютерлік есептеулерді ұйымдастырудың тәсілі.

Параллельді есептеулер-процесспен туындайтын көптеген әрекеттерді бір уақытта орындау мүмкіндігін пайдалана отырып, көппроцессорлық жүйелерде іске асыруға болатын есептеулер бір немесе көп есептерді шешу. Параллель есептеулердің негізгі мақсаты-есепті шешу уақытын азайту. Тәжірибе қажеттілігі үшін көптеген қажетті міндеттерді нақты уақытта шешу қажет немесе оларды шешу үшін өте үлкен есептеу қажет.

Процессорлар санының артуы міндетті түрде мәселені шешу уақытының азаюына әкелмейді. (Егер кішкентай шұңқыр бір уақытта 10 адамды қазуға тырысса, онда олар тек бір-біріне кедергі жасайды. )

Деректерді параллель өңдеуді пайдалану-есептеу жылдамдығын арттырудың жалғыз жолы емес. Тағы бір тәсіл-процессорлық құрылғылардың қуатын арттыру. Мұндай тәсілдің шектеулері:

1. Ауысу жылдамдығының шектеулілігі. Тіпті ең жылдам коммуникацияларда - оптикалық - ауысу жылдамдығы жарық жылдамдығынан аспайды.

2. Қосқыш өлшемдерінің шектеулілігі. Құрылғы компоненттерінің мөлшері аз болса, құрылғы жылдам жұмыс істей алады. Алайда, олардың молекулалық және атомдық құрылысымен байланысты компоненттер өлшеміне физикалық шек бар.

3. Экономикалық шектеулер. Процессордың жылдамдығын, қаптаманың тығыздығын, кристалдағы қабаттар санын арттыру үшін күрделенетін барлық ғылыми, инженерлік, өндірістік проблемаларды шешуге тура келеді. Сондықтан процессорлардың әрбір жаңа ұрпағы қымбат. Әрқашан үлкен тапсырмалар бар, оларды шешу үшін параллель компьютердің қуатын қажет етеді.

Параллельді есептеулердің міндеті-көппроцессорлық есептеуіш техниканы пайдаланудың барынша тиімділігіне қол жеткізу мақсатында есептерді шешу процестерінде параллелизм ресурсын құру (параллельді алгоритм алу) және осы параллелизмнің жүзеге асырылуын басқару.

Есепті шешудің параллельдік алгоритмін қолда бар тізбекті алгоритмді параллель шешу жолымен немесе жаңа параллельді алгоритмді өңдеу жолымен алуға болады. Мүмкін, параллельді шешу үшін тапсырманы шешу алгоритмін ауыстыру немесе түрлендіру керек (мысалы, операциялар арасындағы кейбір тәуелділікті жою) .

Параллельді есептеулердің терминологиясын қалыптасқан деп санауға болмайды, сондықтан төменде келтірілген ұғымдардың кейбірі басқа түсіндірмелерге жол беруі мүмкін.

Суперкомпьютер - қазіргі компьютерлердің көпшілігінен айтарлықтай асып түсетін есептеуіш машина.

Кластер - жергілікті есептеу желісіне біріктірілген және бірыңғай есептеу ресурсы ретінде жұмыс істеуге қабілетті компьютерлер тобы.

Кластер тек жергілікті есептеу желісіне қарағанда жоғары сенімділік пен тиімділікті болжайды. Кластер типтік аппараттық және бағдарламалық шешімдерді пайдаланады және сондықтан параллельді есептеу жүйелерінің басқа үлгілерімен салыстырғанда айтарлықтай төмен құны бар.

Таратылған есептеулер - параллельді есептеуіш жүйеге біріктірілген бірнеше компьютерлерді пайдалана отырып, көп еңбекті қажет ететін есептеуіш есептерді шешу тәсілі. Әлсіз байланысқан, гетерогенді есептеу жүйелері бөлінген жүйелердің жеке тобына - Grid бөледі. [Уикипедия]

Таратылған есептеулер - есептеуіш желімен немесе интернетпен біріктірілген көптеген компьютерлердің арасында үлкен міндет үлестірілетін деректерді өңдеу технологиясы.

Бұлтты есептеулер - компьютерлік ресурстар мен қуаттар интернет-сервис ретінде берілетін деректерді өңдеу технологиясы.

Осылайша, таратылған және бұлтты есептеулер параллельді есептеулердің жеке жағдайы болып табылады. Параллельді есептеулер бір компьютерде (суперкомпьютерде немесе көп ядролы компьютерде), сондай-ақ көптеген компьютерлерде де жүргізілуі мүмкін. Бір компьютерде бөлінген және бұлтты есептеулер жүргізілмейді.

Параллельді тапсырмалар - бір мезгілде (міндетті түрде тәуелсіз емес) орындауға рұқсат беретін тапсырмалар.

Параллельді алгоритм - операциялары бір мезгілде орындалуы мүмкін алгоритм (міндетті емес тәуелсіз) ; анық немесе анық емес түрде бір мезгілде орындалатын операциялар немесе көптеген операциялар көрсетілгені түсініледі. Параллель алгоритмнің қатаң түсінігі енгізілген жоқ.

Параллельді бағдарлама - параллельді архитектураның есептеуіш жүйелеріне бағытталған кейбір бағдарламалау жүйесінде жазылған параллельді алгоритм.

Деректер бойынша параллелизм. Функционалдық параллелизм. Егер кейбір есептерді шешу кезінде процессорлар есептеудің бірдей бірізділігін орындаса, бірақ әртүрлі мәліметтерді қолданса, онда деректер бойынша параллелизм туралы айтады. Мысалы, деректер базасы бойынша іздеу кезінде әрбір процессор деректер базасының өз бөлігімен жұмыс істей алады. Егер процессорлар бір тапсырманың әр түрлі тапсырмаларын орындап, әр түрлі функцияларды орындайды, функционалдық параллелизм туралы айтады.

Операция деректерін конвейерлік өңдеу (операция деңгейіндегі конвейерлік параллелизм) . Операция микро операцияға бөлінсін. Микрооперацияны орындау тәртібімен орналастырамыз және әрбір орындау үшін құрылғының жеке бөлігін бөлектеңіз. Бірінші кезеңде кіріс деректер өңдеу үшін бірінші бөлімге түседі. Бірінші микрооперацияны орындағаннан кейін бірінші бөлім өзінің екінші бөлігінің жұмыс нәтижелерін береді, ал өзі жаңа деректерді алады. Кіріс аргументтері барлық өңдеу кезеңдерінен өткенде, құрылғының шығуында операцияны орындау нәтижесі пайда болады. Осылайша, функционалдық параллелизм жүзеге асырылады. Құрылғының әр бөлігі конвейер баспалдағымен, ал сатылардың жалпы саны конвейердің ұзындығы деп аталады.

Табиғи параллелизм. Алгоритм табиғи параллелизмге ие, егер оны орындалатын бөліктерге бөлуге болады.

Ішкі параллелизм. Алгоритм ішкі параллелизмге ие, егер оны орындалатын бөліктерге параллель бөлуге болады (бірақ міндетті емес) .

Параллельдеу . Бір мезгілде орындалуы мүмкін операцияларды немесе тізбектей алгоритмнің көптеген операцияларын анықтау (көрсету) .

Статикалық параллельдеу. Алгоритмді (бағдарламаны) орындау басталғанға дейін жүзеге асырылатын параллельдеу.

Динамикалық параллельдеу. Алгоритмді (бағдарламаны) орындау кезінде жүзеге асырылатын параллельдеу.

1 ПАРАЛЛЕЛЬДІ ЕСЕПТЕУ, ПАРАЛЛЕЛЬДІ КОМПЬЮТЕР ЖӘНЕ АППАРАТТЫҚ ҚАМТАМАСЫЗДАНДЫРУ 1. 1 Параллелизм, параллелизм деректері, параллелизм есебі және параллелизмді қолдану

Параллельді есептеуіш жүйелер - ол физикалық компьютерлер, және де көптеген есептеуіш түйіндерде әртүрлі әдістермен мәліметтерді параллельді өңдеуді жүзеге асыратын бағдарламалық жүйелер. Есептерді қайта параллельдеу ойы көптеген есептердің бір уақытта шешілуі мүмкін кіші есептердің жиынтығына негізделеді. Әдетте параллельді есептеулер әрекеттердің координациясын талап етеді. Параллельді есептеулер бірнеше формаларда бар: биттер деңгейіндегі параллелизм, нұсқаулықтар негізіндегі параллелизм, мәліметтердің параллелизмі, есептердің параллелизмі. Параллельді есептеулер көп жылдар бойы жоғары өнімді есептерде қолданылды, бірақ соңғы кездерде оларға процессорлардың тактілік жиілігінің көбеюіне физикалық шектеулердің бар болуынан сұраныс көбейді. Параллельді есептеулер компьютерлер сәулеті негізінде көпядролы процессорлар формасында доминирлеуші парадигма болды.

Бірнеше әрекеттің бір мезгілде орындалуы үшін жүргізілетін мәліметтерді параллель өңдеудің екі түрі бар: конвейерлік және параллелизмдік.

Параллельді өңдеу. Егер бір құрылым бір уақыт бірлігінде бір операция орындаса, онда мың операцияны мың бірлікте орындайды. Егер осындай бір мезгілде жұмыс жүргізетін бір-біріне тәуелсіз бес құрылым болса, онда жүйе мың операцияны мың уақыт бірлігінде емес, екі жүз уақыт бірлігінде орындайды. Осыған ұқсас Ν құрылымды жүйе осындай жұмысты шамамен 1000/ Ν уақыт бірлігінде орындайды,

Конвейерлік өңдеу. Құбылмалы үтір формасында берілген екі заттық сандарды қосу үшін не қажет? Көптеген операциялар жиынтығы қажет. Алғашқы компьютерлердің процессорлары мұндай майда операцияларды соңына жеткенше бірінен соң бірін орындайды, содан соң ғана келесі қосылғыштарды орындауға көшетін.

Конвейерлік өңдеудің мәні жалпы операцияларды орындаудың жекелеген кезеңдерін бөлу, әрбір кезең өзіне жүктелген жұмысты орындап болып, нәтижесін келесі кезеңге береді де, өзі жаңа мәліметтерді қабылдайды. Мұндай операцияларды біріктіру арқылы өңдеу жылдамдығын арттырамыз. Мысалы, операцияда бес шағын операцияларды бөлсек, олардың әрқайсысын орындауға уақыт бірлігі кетеді. Егер бөлінбейтін тізбекті құрылым болса, онда 100 жұп аргументтерді ол 500 бірлікте орындайды. Егер әрбір шағын операцияны конвейерлік құрылымның жеке кезеңдеріне бөлсек, онда уақыттың бесінші бірлігінде алғашқы 5 жұп аргумент болады, әрбір келесі аргумент-алдыңғыдан бір бірліктен соң келіп тұрады, яғни тізбекті құрылыммен салыстырғанда жылдамдық бес есе жоғары болады.

Жалпы жағдайда да осыған ұқсас болады. Егер конвейерлік құрылымда басқышы l болса, онда әрбір басқыш бәр уақыт бірлігінде жұмысқа қосылады, онда өңдеу уақыты n тәуелсіз операцияларын өңдеу уақыты , құрады. Егер құрылымды тізбекті режимде пайдаланса, өңдеу уақыты құрайды. Нәтижесінде конвейерлік өңдеуді пайдалану есебінен жылдамдық 1 есе жоғары болады.

Конвейерлік өңдеуді қарапайым параллель өңдеумен ауыстыруға болар еді. Алайда алынатын жүйе құны мен күрделіліг конвейрелік нұсқасының құны мен күрделігімен салыстыруға келмейді, ал өнімділігі бірдей деңгейде.

Параллелизм бағдарламаны жазу үшін онда бір мезгілде есептелетін операциялар тобын анықтау қажет және қандай процессормен, қандай құрылыммен, конвейердің қандай басқасында орындалғанына байланыссыз екендігін анықтау керек.

Бұл мүмкіндік бағдарламада нақты ақпараттық тәуелділік бар не жоқтығымен анықталады. Бағдарламаның екі операциясы бір операцияны орындау үшін аргумент ретінде екіншісі қолданылса, ақпараттық тәуелділік деп аталады. Егер операция В А операциясына ақпараттық тәуелділік болса, онда В операциясы А операциясы орындалған соң ғана орындалады. Бір жағынан, егер А және В операциялары ақпараттық тәуелді болса, онда алгоритм олардың орындалу тәртібіне ешқандай шектеу қоя алмайды. Сонымен, бағдарламаны параллель жүргізу одан тәуелсіз операциялардың санын жеткілікті түрде табуға әкеледі, оларды есептеу құрылымдары арасында тарату, синхрондылықты қамтамасыз ету болып табылады.

Ақпараттық тәуелсіздік ұғымын ендіру қарапайым түрде болады, ал ақпараттық тәуелсіздіктің барлық жиынтығыны зерттеу нақты бағдарламада күрделі міндет болып табылады. Бірнеше мыңдаған операторлардан тұратын бағдарламаныны елестету жеткілікті және әрбір циклі көптеген операциялардан тұрады десек, туындайтын мәселелер күрделене түседі. Міндеттер мен талдауды оңайлату үшін ақпараттық тәуелсіздік графасы ұғымын енгізу қажет.

Мұндай графалардағы ең биік тұғыр бағдарламаның кейбір операциялары танылады, егер екі операция арасында ақпараттық тәуелділік болса, бұл операцияларға сәйкес келетін биіктер доғамен байланыстырылады, оның бастапқысы ретінде ақпарат-жеткізуші биіктік, соңы ретінде-ақпарат-тұтынушы биіктік танылады. Графты зерттеуді оңайлату үшін доға саны аз тұғырлық граф айқындалады, егер графтың екі биіктігі жолмен байланысса оны тәуелділіктің ең аз графы деп атайды. Ең аз граф тәуелсіздігінің көмегімен шешілуі тиіс барлық тапсырмалар шешімін табады. Егер биіктіктерге бағдарлама операторларының жеке қосылулары сәйкес келсе, мұндай граф бағдарламаны орындаудың ақпараттық тарихы деп аталады. Ақпараттық тарих талдау жасалатын бағдарламаның ақпараттық тәуелділігі құрылымы туралы толық мәлімет береді, сондықтан бағдарламаға талдау жасауда параллельдеу мақсатымен ақпараттық тарих қолданылады. Алайда талдау жасаудың күрделілігі мынада, қарапайым жағдайда алынатын графты қолмен құруға және талдауға болатын болса, ал үлкен нақты бағдарламаларда бағдарламалық құралдар қажет.

Бағдарламаны орындаудың негізгі құрауыштары орталық процессор, кэш және жады болып табылады. Біртекті процессордың архитектурасын жақсартудың түрлі әдістері бар:

  1. Жинақтаушының төрт модулін қолдану, орталық процессордың ішкі бөлімінің біреуінің орнына қосушы;
  2. Өткізу жолағын үлкейту үшін екі немесе одан да көп жады блоктарын орталық процессорге қосу;
  3. Бір мезгілде орындалатын командалар санын көбейту үшін екі немесе

бірнеше процессорларды қосу;

  1. Барлық компьютерлердің жұмысы бірге бір бағдарламаны шешуге

бағытталуы үшін толық компьютерді қосу.

Параллелизм түрлі деңгейлерге жіктелуі мүмкін:

  • тапсырма деңгейінің параллелизмі;
  • бағдарлама деңгейінің параллелизмі;
  • команда деңгейінің параллелизмі;
  • арифметикалық - теңестіру параллелизмі.

Тапсырма деңгейінің параллелизмі - параллелизмдіктің ең жоғарғы деңгейі. Мысалы, зертханалық немесе компьютерлік орталықта берілген уақыт кезеңінің тапсырмаларын орындайды. Бұл үлкен компьютерлік жүйелерді сатып алумен қол жеткізетін нәрсе, сондықтан көптеген тапсырмаларды орындау үшін қолданушының кез келген тапсырмасы басқаларға қарағанда жылдамырақ орындалады.

Тапсырма деңгейінің параллелизмділігі бір компьютер деңгейінде де қолданылады. Орталық процессордың және енгізу-шығару жүйесі арқылы параллельді жұмыс атқарады.

Параллелизмдіктің берілген түрінің үлгісі - бірнеше тапсырмалар тұрақты жадында бір уақытта сақталады, тек біреуі кез келген уақытта орындалады. Егер бұл тапсырма енгізу-шығару типіндегі қызметті керек етсе, онда операция басталып, тапсырма тоқтатылып, ал басқа тапсырма орындалу жағдайына орналастырылады. Келесіде енгізу-шығару операциясы аяқталып, берілген деректерге қол жеткізген соң басқару бастапқы тапсырмаға кері барып, орындау жалғасады.

Бағдарлама деңгейінің параллелизмі - бағдарлама деңгейінің параллелизмділігі бір бағдарламаның құрамы бөліктерге бөлінген кезде жүзеге асады. Мысалы, С=АхВ матрицасының қорытындысы матрицаларды квадраттарға бөлу жолы арқылы есептелуі мүмкін:

С 11
С 11
=
А 11
А12
х
В 11
В 12
С 21
С 22
А 21
А 22
В 21
В 22

Бағдарлама деңгейінің параллелизмділігі екі жолмен анықталады:

  • берілген бағдарламаны дербес бөліктерге бөлумен;
  • итерациялар арасындағы ешқандай тәуелді емес кезде циклдің жеке дара итерацияларын пайдалану;

Параллелизмдіктің бұл типі көптеген процессорлармен немесе көптеген функциялық модульдермен қолданылуы мүмкін.

Бағдарлама деңгейіндегі параллелизмдіктің қарапайым мысалы, қосындыларды анықтау. Төменде екі массивтің элементтерінің қосындысын анықтау коды берілген:

For (i=0; i<N; i++)

A[j] = B[i] +C[i] ;

Қосындылар дербес, яғни B[i] +C[i] есептеуі кез келген j<I үшін B[j] +C[j] дербес. Олар кез келген тәртіппен анықталуы мүмкін екенін білдіреді және әсіресе көппроцессорлы машиналарды есептеген кезде барлық деректерін бір мезгілде орындауы мүмкін.

Команда деңгейінің параллелизмі - команда деңгейінің параллелизмділігі архитектураның төменгі деңгейі және компьютерді ұйымдастыру шеңберіне жатады. Бұл параллелизмдіктің типін іске асырудың ең жалпылай әдісі - конвейерлер.

Бұл жағдайда жеке командалар жабылып, берілген команда бірнеше операцияларға бөлінуі мүмкін, олар өз кезегінде жабылады. Бірінші жағдайда, мысалы, орталық процессордың ішкі жадындағы мағынасын көшіретін қондыру командасын табады. Екінші жағдайда, арифметикалық өңдеудің тірегі болған барлық жерде жүретін конвейерлер арқылы көрсетілуі мүмкін.

Ең маңыздысы, компиляторлардың сапасы жүйеден жүйеге өткенде жылдам өзгереді және мүмкін компилятор құралдарын жоғары деңгейде қолдануы үшін кодын түрлі әдістермен құрастыру керек болады. Мысалы, Cray фирмасының супер ЭЕМ өте сапалы, олардың векторларының ұзындығы - 64 бит немесе одан аз және жұмысты жақсартатын үйлестіру бағдарламалары сапалы.

Арифметикалық- биттік- теңестіруші параллелизм - параллелизмдіктің ең төменгі деңгейі. Параллелизмдіктің бұл деңгейі орталық процессордағы арифметикалық-логикалық қондырғыларға жатады. Мысалы, 64 биттің қосындысы екі әдіспен анықталуы мүмкін:

  1. барлық 64 битті бір мезгілде қосу.
  2. операцияны 4 биттен бөліктерге бөлуге және 16 циклден толық қосындыны есептеуге болады.

Параллельді бағдарламалауды қамтамасыз ететін талаптар қалыптасқан:

  • параллелизмдік - көптеген іс-әрекетті бір мезгілде орындау қабілеті;
  • масштабтық (әмбебап) - процессорлардың көбею санына икемділік

қабілеті;

  • жергілікті - локальдық жадының жойылған жадыға қатынасының

жоғары коэффициентін көрсетеді;

  • модульдік - күрделі нысандардың қарапайым құрауыштарға бөлінуі.

Тізбектік модель.

  • командаларды тізбектеуді орындауға қабілетті процессор.
  • команда оқылатын немесе жадыға жазылатын берілген өлшемнің адресін, немесе келесі орындалатын команданың адресін анықтай алады.

Қазіргі таңда компьютерді осы негізгі модельдің терминдерімен машина тілімен бағдарламалауға болады. Берілген әдістің кемшілігі: біз жадының миллиондаған ұяшықтарын қарауға және машинаның мыңдаған командаларын орындауды ұйымдастыруға болады. Бағдарламалауды қарапайым құрал етудің бір әдісі - ол модульды бағдарламалаудың процедура, циклдеу үлгісін басым пайдалану қажет.

Параллельді модель. Есептеу үрдісі каналдармен(бағыттар) байланысқан тапсырмалар жинағын шешуден тұрады.

Тапсырма бағдарламаны және локальды жадыны инкапсулдайды және қоршаған ортамен өзара әрекеттестікті анықтайтын порттардың жинағын анықтайды.

Канал - жіберуші хабарлама орналастыратын хабарламалар реті және алушы хабарламаны жоя алады, егер хабарламалар қол жетерлік болмаса, онда канал оны алуға қарсылық жасайды.

Параллельді модельдеуді қарастырған кезде кейбір абстракциялауды қабылдау қажет. Параллельді бағдарламалауды қамтамасыз етуде мықты талаптарды қолдану келесі абстракцияларды қабылдауды жүктейді:

  • Параллельді есептеу бір немесе бірнеше есептерді шешуден тұрады. Тапсырмалар бір мезгілде орындалады. Тапсырмалар саны бағдарламаны орындау кезінде өзгеруі мүмкін;
  • Тапсырма тізбектік бағдарламаны және жергілікті жадыны жіктейді. (Шындығында, бұл Фон Нейманның виртуалды машинасы) . Сонымен қатар, ішкі порттар (Outport) мен алыс порттардың (import) жиынтығы оның қоршаған ортамен өзара әрекетін анықтайды;
  • Жергілікті жады оқуға және жазуға қосымша ретінде төрт негізгі әрекет орындай алады: алыс орналасқан портқа хабарлама жіберу, ішкі портқа хабарлама қабылдау, сондай-ақ жаңа тапсырмалар құру және оларды орындау;
  • Хабарлама беру операциясы үйлесімсіз болып табылады, яғни бұл операция тез арада аяқталады. Қабылдау операциясы үйлесімді, яғни ол хабарлама жетпеген кезде тапсырмаларды қол жеткісіз етеді;
  • Outport/import жұптары хабарлама ретімен байланысып, каналдар деп аталады. Каналдар құрылуы, жойылуы мүмкін және сондай-ақ каналдарға сілтемелер хабарламаларға қосылуы мүмкін, яғни байланыс қызметі өзгеріп отырады;
  • Тапсырмалар физикалық процессорларға түрлі әдістермен көрініс беруі мүмкін, қолданылған көрініс бағдарламаның семантикасына әсер етпейді. Көптеген тапсырмалар бірпроцессорлы компьютерге де қабылданады.

Бағдарламалаудың түрлі параллелизмдік моделдері қалыптасқан, олар тапсырмалардың өзара әрекеті механизмі, тапсырмаларды бөлшектеу сатылары, орналасуы, әмбебаптығы және модульдығы арқылы айқындалады:

- Хабарлама жіберу;

- Деректердің параллелизмділігі;

- Жалпыға жетерлік жады.

Хабарлама жіберу бағдарламалары әрқайсысында жергілікті деректері бар көптеген тапсырмаларды құрайды. Әр тапсырма басқа тапсырмалармен өзара әрекеттесіп, аталған тапсырмалардан хабарлама алып және жіберіп отырады.

Деректер параллелизмділігі бөлінген есептеулерде қолданады, олар бір қосымшадан және бір операцияның деректер құрылымының көптеген элементтерінен шығады. Әр деректер элементінің әр операциясы туралы дербес тапсырма ретінде ойлау керек.

Жалпыға жететіндей жадыда модель мен тапсырмалар бағдарламалауда жалпы адрестік кеңістікті бірге қолданады, олар оны оқиды және үйлесімсіз жазады. Ол кезде жалпыға жететіндей жадыға қол жеткізуді басқару үшін түрлі механизмдер қолданады.

1. 2 Параллельді есептеуіш жүйелердің классификациясы

М. Флинн есептеуіш жүйесінің классификациясы

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Параллельді программалау
Астрофизикалық құбылыстарды моделдеу үшін cuda қолдану
Ақпаратты шығару перифериялық құрылғылары
Мс және амс мәліметтері бойынша, ауа температурасына салыстыру
RFID технологиясының даму тарихы
Мәліметтер жинау
Жады қалай жұмыс жасайды? Жады элементтері
Туристік қызмет көрсету сапасының мәні
Экономика жағдайы
Сигналдарды тарату амалдары
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz