- •«Параллель есептеулер» пәні бойынша 050602-Информатика мамандығының студенттері үшін лекциялар жинағы
- •Шымкент- 2009
- •1. Паралель программалау дамуының хронологиясы
- •Параллелизм. Программалау модельдері: параллель және тізбекті. Деректер параллелизмі мен есептер параллелизмі. Программалаудың негізгі параллель модельдері.
- •2 Параллелизм
- •2.1. Деректер параллелизмі мен есептер параллелизмі
- •Программалау модельдері: параллель және тізбекті
- •Программалаудың негізгі параллель модельдері
- •Параллель компьютерлер. Жылдам әрекеттесуші аппараттық жасау.
- •3.1. Параллель компьютерлердің типтері
- •3.1.1. Жалпы қатынау жадылы көппроцессорлы жүйелерге (бөлінетін жадылы)
- •3.1.2. Хабар беру мультикомпьтері және үлестірілген жадылы мультикомпьютерлер
- •Параллель компьютерлер типтері. Флинн таксономиясы. Жаңа таксономия құру спецификациясы.
- •4.1. Флинн таксономиясы
- •6.Процесстер және синхрондау
- •7.1 “Өндіруші –пайдаланушы” типті синхрондау
- •Параллель алгоритмдер. Параллель алгоритмдерді өңдеу: декомпозиция (сегменттеу), коммуникацияларды жобалау, үлкейту. Есептеулерді жобалау. Параллель сұрыптау алгоритмдері.
- •8.1. Ранг әдісімен сұрыптау
- •8.2. Салыстыру-және-ауыстыру
- •8.2.1 Деректерді бөлу
- •Сандық өрістерді параллельдеу: тік және итерациялық сызықтық теңдеулер жүйесінің шешу әдістері.
- •9.1 Сандық әдістерді параллельдеу
- •9,1.1. Матрицаларды көбейту
- •9.1.2. Сызықтық алгебралық теңдеулер жүйесін шешу
- •Параллель программалау. Ағындар мен деректерді өңдеу.
- •10. Параллель программалау
- •10.4.Occam- параллель программалау тілі
- •Жылдам әрекеттесуші фортран(hpf)
- •Pvm, mpi, OpenMp көмегімен таратылған деректерге құру және кіріс.
- •13. Қолданбалы есептерді шешуде параллель алгоритмдерді қолдану
- •Кескіндерді өңдеу типтері: кескінді өңдеудің төменгі, орташа және жоғарғы деңгейі.
- •15 Лекция. Фурье түрлендіруі және Фурье алгоритмдері
- •3. Фурье қатары
Программалау модельдері: параллель және тізбекті
Тізбекті модеь.
Фон Нейман модеіне:
● Командалар тізбегін орындауға қабілетті процессор;
● Команда берілген шаманың адресін анықтайды, орындалатын команданың немесе келесі команданың адресін жадыдан оқиды немесе жазады.
Бүгінгі күні, компьютерді осы негізгі модель терминінде маиналық тілде программалауға болады.
Бұл әдістің кемшілігі мынада: біз жадының милиондаған ұяшығын бақылауымыз керек және мыңдаған машиналық командалардың орындалуын ұйымдастыруымыз керек.
Программаларды қарапайым құрал етудің бір әдісі – процедуралар, циклдар және т.с.с. модульдік программалаудың артықшылығын қолдану.
Параллель модель.
3-суретте
қарапайым модель «есептер/каналдар»
моделі көрсетілген.
3-сурет. Қарапайым параллель модель: «есептер/каналдар» моделі.
Есептеу процесі каналдармен байланысқан (стрелкалар) есептер жиынын (дөңгелекпен белгіленген) шешуден тұрады.
Есептер программа және жергілікті жадыны инкапсуяциялайды және ортамен өзара әрекеттесетін порттар жиынын анықтайды.
Канал – хабарлар кезегі, оған жіберуші хабар орналастыа алады және алушы хабарды жоя алады, егер хабар қатынауы болмаса, онда канал қатынауды «бұғатайды».
Параллель модельдерді қарастырғанда кейбір келісімдер мен абстракцияларды қабылдау қажет. Параллель программалық жасау үшін фундаментальдық шарттарды қолдану келесі абстракцияларды қабылдауға мәжбүр етеді:
● Параллель есептеу бір немесе бірнеше есептерді шешуден тұратын. Есептер бір уақытта орындалады. Есептер саны программаның орындалуы кезеңінде өзгеруі мүмкін.
● Есеп тізбекті программа және жергілікті жадыны инкапсуяциялайды. (шындығында, ұл Фон Нейманның виртуальды машинасы). Одан басқа, ішкі порттар (inports) және қашықтағы порттар (outports) жиынтығы оның оаға өзара әрекетін анықтайды.
● Есептерді жергілікті жадыдан оқу мен жазудан басқа қосымша төрт негізгі амалды орындай алады: алыс порттарға хабар беру, ішкі порттарын хабар алу, сондай-ақ жаңа есептер құру және оларды аяқтау.
● Outports/imports жұптары канадар деп аталатын хабарлар кезегімен байланысқан. Каналдар құрылуы және жойылуы мүмкін және каналдарға (порттарға) нұсқағыштар хабарға кіруі мүмкін, садған байланысты қамтамасыз ету динамикалық өзгеруі мүмкін.
● Есепер физикалық процессорларға әртүрлі әдіспен бейнеленуі мүмкін; қолданылатын бейнелеу программаның семантикасын қозғамайды. Дербес жағдайларда есептердің көптігі бірпроцессорлы компьютерлерге де жарамды.
Ары қарай, программалаудың негізгі параллель модельдерін қарастырамыз.
Программалаудың негізгі параллель модельдері
Параллель программалаудың әр түрлі модельдері бар. Олар есептердің өзара әрекеттесу механизмдерімен есептерді талдап тексерідәрежесімен, орналасуын қолдаумен, әржақтылық пен модельділігімен ерекшеленеді:
● Хабар беру.
● Деректер параллелизмі.
● Жалпықатынау жадысы.
Келесі лекцяларда оларға толығырақ тоқталамыз. Мұнда тек олардың әрбіреуінің негізгі принциптеріне тоқталамыз.
Хабар беру
Хабар беру программаларды есептер жиынын құрады, олардың әрбіреуінің жергілікті деректен тұады. әрбір есеп басқа есептермен өзара әрекеттестікте болады, берілген есепке хабар береді немесе ерілген есептен хабар алады.
Деректер параллелизмі
Деректер параллелизмі үлестірілген есептеулерді қолданады. Олар деректер құрылымының элементтер жиынына қолданылатын бір ғана амалдан және бір қосымшадан шыққан. Деректердің әрбір элементіне қолданыатын әрбір амалды тәуелсіз есеп деп қарастыруға болады.
Жалпықатынау жадысы
Жалпыанықтау жадысында модельді программалағанда есептер жалпы адрестік кеңістікті бірге қолданады, олар оны асинхронды оқиды және жазады. Сонымен қатар, жалпықатынау жадысына қатынауды басқару үшін әртүрлі механизмдер қолданылуы мүмкін.
3-лекция
