БАҒдарламасы ( Syllabus ) Павлодар, 2014ж Пән бағдарламасы (Syllabus) ф фсо пгу 18. 4/19 бекітемін фмжат факультетінің деканы Н. А. Испулов


Құрастырушы: ______аға оқытушы Алимова Ж.С



бет3/9
Дата27.05.2018
өлшемі1,94 Mb.
#41044
түріБағдарламасы
1   2   3   4   5   6   7   8   9

Құрастырушы: ______аға оқытушы Алимова Ж.С.


______Джарасова Г.С.

5В060200 «Информатика» мамандығының күндізгі нысанда оқитын студенттеріне арналған PV 4305 «Параллельдік есептеулер» пәнінің


БАҒДАРЛАМАСЫ (Syllabus)

Бағдарлама 2014 ж. «___»_________ бекітілген оқу жұмыс бағдарламасының негізінде әзірленді.


Кафедра отырысында ұсынылды 2014 ж. «___»_________, №_____хаттама

Кафедра меңгерушісі ___________________ Джарасова Г.С.


ФМжАТ факультетінің оқу-әдістемелік кеңесімен мақұлданды 2014 ж. «_____»______________ №____хаттама

ОӘК төрағасы __________ Искакова А.Б. 2014 ж. «____»_____________

1 Оқу пәнінің паспорты
Пәннің атауы PV 4305 «Параллельдік есептеулер»
Кредиттер саны және оқу мерзімі

Барлығы – 2 кредит

Курс: 4

Семестр: 7



Жалпы сыйымдылық – 90 сағат

Аудиториялық сағаттар – 37,5 сағат (дәріс -15 сағат, практикалық сабақтар –7,5 сағат, зертханалық сабақтар – 15 сағат)

СӨЖ – 52,5 сағат (оның ішінде СӨОЖ – 15 сағат)
Бақылау формасы

Емтихан – 7 семестр


2 Оқытушылар туралы мәліметтер және байланысу ақпараты

Алимова Жанар Сагидуллаевна

Информатика магистрі, аға оқытушы

Математика және информатика кафедрасы А корпуста (Ломов к-сі, 64) орналасқан, ауд. А-408, тел. 67-36-87 (ішкі 11-25)


3 Пәннің мақсаты мен міндеттері

Оқу пәні

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

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

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

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

4.1 Пререквизиттер

Пәнді оқу барысында келесі пәндер бойынша қалыптасқан білік пен дағды қажет:



  • Алгоритмдер және алгоритмдік тілдер;

  • Жүйелік бағдарламалау;

  • Дербес компьютердің архитектурасы;

  • Компьютерлік желілер;

  • Сандық әдістер.


4.2 Постреквизиттер

Пәнді оқу барысында қалыптасқан білім, білік және дағды алдағы уақытта



  • Объектілі бағытталған программалау;

  • Интернет үшін программалау пәндерін меңгеруде қажет.


5. Білім мен дағдыларға қойылатын талаптар

Студент түсінуі керек:



  • есептеу жүйелерінің программалық жабдықтарының құрамын параллель өңдеу құралдарымен оқытуды;

  • жоғары деңгейлі программа тілдерінің класстарын;

білу керек:

  • параллельді компьютерлердің негізгі модельдері;

  • мәліметтерді параллель өңдеудің негіздері;

  • әр түрлі деңгейлерде программа құралдарының синхронизациясы;

  • мәліметтерді параллель өңдеудің негізгі алгоритмдері.

қолдана білу:

  • параллель алгоритмдерде қолданатын программалық жабдықтарды,

  • распараллельді программалау тілдерін,

тәжірибешілік дағдыларды меңгеру:

  • компьютерлік құралдарды қолдана отырып параллельді программалауға

  • мәліметтерді параллельді өңдеуге.

құзыретті болу:

  • MPI, OpenMP, PVM, MATLAB ортасында және де басқа технологиялар арқылы құрастыру мен программалау;


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

п/п

Тақырып

Сағат саны

Дәріс.

Зерт.

Практ.

СӨЖ

1.

Кіріспе. Параллель есептеулер дамуының хронологиясы. Параллель компьютерлерге сұраныс және параллель программалау бағыттарының дамуы.

1







2,5

2.

Параллелизм. Программалау модельдері: параллель және тізбекті. Деректер параллелизмі мен есептер параллелизмі. Программалаудың негізгі параллель модельдері.

1

2




5

3.

Параллель компьютерлер. Жылдам әрекеттесуші аппараттық жасау.

Параллель компьютерлер типтері. Флинн таксономиясы. Жаңа таксономия құру спецификациясы.



2

2




5

4.

Параллель программалау тиімділігін бағалау. Орындалу уақыты, жылдамдату коэффициенті, орындау шығына, қызмет көрсету бағасы, тиімділігі. Амдал заңы. Густафсон заңы.

1

2




5

5.

Процесстер және синхрондау. Аппараттық синхронизациялау деңгейі.

1







5

6.

Параллель программалау Программалау тілдерінің синхронизациялау деңгейі. Хабарлар беру синхронизациялау деңгейі.

1

1




5

7.

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

1

1




5

8.

Сандық өрістерді параллельдеу: тік және итерациялық сызықтық теңдеулер жүйесінің шешу әдістері.

Параллель программалау. Ағындар мен деректерді өңдеу.



2

2




5

9.

Параллель программалау тілдері: HPF, C++, Fortran 90.

PVM, MPI, OpenMP көмегімен таратылған деректерге құру және кіріс.



2

2

7,5




10.

Параллель алгоритмдерді ғылыми есептерді шешуге қолдану

1

1




5

11.

Кескіндерді өңдеу типтері: кескінді өңдеудің төменгі, орташа және жоғарғы деңгейі.

1

1




5

12

Фурье түрлендіруі және Фурье алгоритмдері.

«Параллельдік есептеулер» пәнінің қазіргі кездегі даму перспективалары және тенденциялары.



1

1




5

Барлығы (2 кредит - 90 сағат):

15

15

7,5

52,5


7 Дәрістік сабақтардың мазмұны

1 Лекция. Паралель программалау дамуының хронологиясы

  • Кіріспе. Параллель есептеулер дамуының хронологиясы.

  • Параллель бағдарламалау бағытының дамуы.

  • Параллель компьютерлерге сұраныс

    1. Негізгі анықтамалар

Параллель компьютер дегеніміз – есепті сандық шешу үшін бірігіп жұмыс істеуге қабілетті процессорлар жинағы.

Параллель бағдарлама дегеніміз - әрбір процесс оның өз процессорында орындалатын және сонымен бірге процесс параллель түрде орындалатын бағдарлама.



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

Компьютерлік техологиялардың дамуы, соның ішінде параллель компьютерлер 50-жылдардан бастап пайда болды.

Есептеу уақытын, сонымен бірге, деректердің үлкен массивін өңдеу уақытын үнемдеу және есептеу жылдамдығына деген сұраныс барлық уақытта бар болатын, бірақ ол экономика және техникадағы жаңа ақпараттық технологиялар, ғылыми көлемді облыстардың дамуымен бірмезгілде өсіп келеді.

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

Күрделі жүйелерді сандық модельдеу: ауа-райын болжау, жаңалықтар, ағымдық космостық (полет) ұшу туралы жедел ақпарат. Ертеңгі ауа-райын болжайтын ауа-райы типті модельді есептеу уақыты 5 сағатта дайын болуы тиіс.

Бизнестегі коммерциялық қосымшалар: құрамына бейнеконференциялар, бірлескен жұмыс орталары, параллель деректер қоры, банк транзакциялары кіретін қосымшалар.

Техникадағы қосымшалар: медицинадағы автоматтандырылған диагноз, жер сілкінісін болжау және т.б.

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

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

Осының негізінде келесі мәселелер пайда болды:

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

Олар қалай шешілді? Компьютерлік жобалаушылар бір компьютрді түрлендіру үщін осы шектеулерді жоюға әртүрлі әдістерді пайдалана бастады:


  • конвейерлі өңдеу (бірнеше командалардың әртүрлі стадиялары бірмезгілде орындалады);

  • функционалдық модульдер жиыны (бірнеше көбейткіштер сумматорлар және т.б. жеке командалар ағынымен басқарылады);

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

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

2 Лекция. Параллелизм. Программалау модельдері.

  • Параллелизм.

  • Деректер параллелизмі мен есептер параллелизмі.

  • Программалаудың негізгі параллель модельдері.

2.1. Деректер параллелизмі мен есептер параллелизмі

Қазіргі заманғы бірпроцессорлы машина бірнеше компоненттен тұратын белгілі.


Primary memory



Level 2 cache

Level 1 cache

CPU

2-сурет. Бірпроцессорлы машина.

● орталық процессор (CPU);

● алғашқы жады;

● бір және бірнеше деңгейдегі кэш-жады;

● екінші жады (дискідегі жады);

● әртүрлі сыртқы құрылғылар.

Программаның орындауына қатысты түйінді компоненттер: орталық процессор, кэш және жады.

Бірпроцессордың архитектурасын жақсартудың әртүрлі әдістері бар:



  1. орталық процессордың бір ішкі бөлігінің орнына қосындаушы (көбейткіштердің) төрт модулін қолдану;

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

  3. уақыт өлшемінде орындалатынкомандалар санын үлкейту үшін бір жадының бір немесе бірнеше процессорды қосу;

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

Параллелизм

Параллелизм әр түрлі деңгейде топталуы мүмкін:

● тапсырма деңгейіндегі параллелизм;

● программа деңгейіндегі параллелизм;

● команда деңгейіндегі параллелизм;

● арифметикалық және биттік туралайтын параллелизм.

Тапсырма деңгейіндегі параллелизм – параллелизмнің жоғарғы деңгейі.

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

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

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



Программаның деңгейіндегі параллелизм

Программа деңгейіндегі параллелизмде пбір программа бөліктерге, оның құраушыларына бөлінеді.

Мысалы, матрицалардың көбейтіндісі: С=AxB матрицаларды квадраттарға бөлу жолымен есептеледі:


В11

В12

В21

В22


А11

А12

А21

А22



С11

С
=

X
12

С21

С22

Жалпы, программа деңгейіндегі параллелизм екі әдіспен көрінеді:

● берілген программаның тәуелсіз бөліктердеге бөлу;

● итерациялар арасында ешқандай байланыс жоқ циклің жеке итерацияларын қолдану.

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

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

for (i=0; i

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

Қосындылар тәуелсіз, яғни B[i]+C[i] есептеуі B[i]+C[i]-ге тәуелсіз, кез – келген j

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



Команда деңгейіндегі параллелизм

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

Бұл жағдайда, жеке командалар қабысуы мүмкін, немесе берілген команда ішкі амалдарға бөлінуі мүмкін, ал ол ішкі амалдар тағы да ішкі амалдарға бөлініп, олар да қабысуы мүмкін.

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



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

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



Арифметикалық және биттік туралау параллелизм. Арифметикалық және биттік туралау параллелизмі – параллелизмнің ең төменгі деңгейі.

Параллелизмнің бұл деңгейі орталық процессордағы арифметикалық логикалық құрылғыға қатысты.

Мысалы, 64 битке қосынды екі түрлі әдісен есептелуі мүмкін:


  1. барлық 64 битті бірден қосу (неғұрлым маңызды биттерге тасымал кез-келген екі биттің қосындысының жылдамдығындай есептеуі және болжауы мүмкін);

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

Параллель программалық жасау үшін фундаментальды талаптар бар:

● параллелизм;

● масштабтылық (әр жақтылық);

● жергіліктілік;

● модульдік.

Параллелизм – көптеген амалдарды біруақытта орындауға қабілеттілік.

Әр жақтылық – процессорларды санын өсіруге «икемілік» қасиеті.

Жергіліктілік қашықтағы жадыға қатынаудың жергілікті жадыға қатынауына қатынастарының коэффициенттерінің жоғарылылығын білдіреді.

Модульдік – күрделі объектілердің қарапайым компоненттерге декомпозициясы.


    1. Программалау модельдері: параллель және тізбекті

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

Фон Нейман моделі:

● Командалар тізбегін орындауға қабілетті процессор;

● Команда берілген шаманың адресін анықтайды, орындалатын команданың немесе келесі команданың адресін жадыдан оқиды немесе жазады.

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

Бұл әдістің кемшілігі мынада: біз жадының милиондаған ұяшығын бақылауымыз керек және мыңдаған машиналық командалардың орындалуын ұйымдастыруымыз керек.

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

Параллель модель.

3-суретте қарапайым модель «есептер/каналдар» моделі көрсетілген.



3-сурет. Қарапайым параллель модель: «есептер/каналдар» моделі.

Есептеу процесі каналдармен байланысқан (стрелкалар) есептер жиынын (дөңгелекпен белгіленген) шешуден тұрады.

Есептер программа және жергілікті жадыны инкапсуяциялайды және ортамен өзара әрекеттесетін порттар жиынын анықтайды.

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

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

● Параллель есептеу бір немесе бірнеше есептерді шешуден тұратын. Есептер бір уақытта орындалады. Есептер саны программаның орындалуы кезеңінде өзгеруі мүмкін.

● Есеп тізбекті программа және жергілікті жадыны инкапсуяциялайды. (шындығында, ұл Фон Нейманның виртуальды машинасы). Одан басқа, ішкі порттар (inports) және қашықтағы порттар (outports) жиынтығы оның оаға өзара әрекетін анықтайды.

● Есептерді жергілікті жадыдан оқу мен жазудан басқа қосымша төрт негізгі амалды орындай алады: алыс порттарға хабар беру, ішкі порттарын хабар алу, сондай-ақ жаңа есептер құру және оларды аяқтау.

● Outports/imports жұптары канадар деп аталатын хабарлар кезегімен байланысқан. Каналдар құрылуы және жойылуы мүмкін және каналдарға (порттарға) нұсқағыштар хабарға кіруі мүмкін, садған байланысты қамтамасыз ету динамикалық өзгеруі мүмкін.

● Есепер физикалық процессорларға әртүрлі әдіспен бейнеленуі мүмкін; қолданылатын бейнелеу программаның семантикасын қозғамайды. Дербес жағдайларда есептердің көптігі бірпроцессорлы компьютерлерге де жарамды.

Ары қарай, программалаудың негізгі параллель модельдерін қарастырамыз.



    1. Программалаудың негізгі параллель модельдері

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

● Хабар беру.

● Деректер параллелизмі.

● Жалпықатынау жадысы.

Келесі лекцяларда оларға толығырақ тоқталамыз. Мұнда тек олардың әрбіреуінің негізгі принциптеріне тоқталамыз.

Хабар беру

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



Деректер параллелизмі

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



Жалпықатынау жадысы

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


3Лекция. Параллель компьютерлер. Жылдам әрекеттесуші ақпараттық жасау.

    • Параллель компьютер типтері.

    • Жады келісушілігінің модулдері.

    • Программалау типтері.

Алдыңғы тарауда біз прогарммалаудың параллеь модельдерін қарастырдық. Бұл тарауда параллель компьютерлер типтеріне тоқталамыз:

● Жалпы қатынау жадылы көппроцессорлы жүйелерге (бөлінетін жадылы);

● Хабар беру мультипроцессорына.
Жалпы қатынау жадылы көппроцессорлы жүйелерге (бөлінетін жадылы)

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

Процессорлар мен жады арасындағы байланыс өзарабайланыс желісінің кейбір формалары арқылы жүзеге асады. Қарастырылатын жүйе жеке адрестік кеңістікті қолданады. Жалпы қатынау жадылы конфигурациясы бар параллель компьютердің жалпы түрі 4- суретте келтірілген.
Жады модульдері


Жалпы адрестік кеңістік


Біріктіретін желі


Деректер (процессорға немесе процессордан)

Процессорлер

4-сурет. Бөлінетін жадылы мультипроцессорлар құрылымы.

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

Вертуалды адресатция мен накты адрес арасында атау арасында атау бойынша іздедін апараттық кестесін қолданып автоматы аудару жүреді.ТLB (трансляцианы алдындағысының буфері)


Виртуальды адрес



TLB

Нақты адрес

Жалпыкатынау жадылы працессорлы жүйелердегі программалдауда орындалатын программа колды әрбір процессордың жадында сакталады да, одан кеиін орындалады.

Егер жады шинасы немесе матрицалық каммутатор болып саналатын жалғастырып тұратын желіде екіден 30 дейінгі процессоры бар, жадының кез-келген учаскесіне әрбір процессордың бірдей қатынау уақытысы болса, онда мұндай мультипроцессор түрі біртектес (UMA- uniform memory access) немесе симетриялы мультипроцессор деп аталады.

Басқа жағдайда, ондаған немесе жүздеген процессорлы үлкен мультипроцессорлар болса, ал жалғастыратын желілер ағаш тәрізді ауыстырғыштар жиыны мен жады облыстарынан, жады иерархиялық құрылымды болса, әртүрлі қатынау уақытына әкеледі. Мұндай бөлінетін жадылы мультипроцессорлар біртектес емес деп аталады (NUMA-non uniform memory access).

Екі типті машиналарда да өзінің жеке кэші болады. Егер екі процессор жадының әртүрлі облысына нұсқаса, олардың ішіндегісін олардың әрбіреуінің кэшіне қауіпсіз орналастыруға болады. Деректі бірмезгілде оқығанда, процессордың әрбір кэшіне деректер көшірмесін орналастыруға болады. Бірақ деректі біруақытта оқығанда және деректі басқа процессормен жазғанда кэші келісушілік проблемасы болуы мүмкін. Мұндай проблеманың шешімінің бірі - әрбір процессор адрестік шинасы «қадағалауы», ондағы жады облысына нұсқағышты табуы керек.

Сонда-ақ жады келісушілік проблемасы: алғашқы жады нақты қашан жаңғыртылады? Жады келісушілігінің бірнеше модулі бар:

●Тізбекті келісушілік;

● Поцессорлар келісушілігі;

● Басату келісушілігі.

Тізбекті келісушілік жадыны жаңарту белгілі бір ретпен жүреді деп кепіл береді, және де әрбір процессорға бір ғана тізбек «тізбек» көрінеді.

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

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

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

Осындай типті программалау үшін бірнеше әдісі бар:

●Жаңа параллель программалау тілдері (Мысалы, Ada);

● Бар тізбекті тілді өзгерту (Мысалы,Fortran, C++)

● Бар тізбекті тілдердің көмекші программалар кітапханасын қолдану (Мысалы, Ptheards, Java).
4 Лекция. Параллель компьютерлер типтері.


  • Хабар беру мультикомпьтері.

  • Үлестірілген жадылы мультикомпьютерлер.

  • Флинн таксономиясы.

  • Жаңа таксономия құру спецификациясы.

Бұл компьютерлік жүйелер байланыс жүйелері арқылы өзара байланысқан компьютерлер жиыны.

Әрбір компьютерлер поцессор мен жергілікті жадыдан тұрады. Жады компьютерлер арасында үлестірілген.

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



Сонымен, берілген жүйеде кэш пен жадының келісушілік проблемасы тумайды. Үлестірілген жадылы микрокомпьютер 5-суретте көрсетілген.


Хабар


Процессор

Жергілікті жады


Компьютерлер

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

Жұмыс станциясы жиынынан тұратын желілік жүйе көбінесе жұмыс станциясының желісі (NOW – network of workstations) немесе жұмыс станциясының кластері деп аталады (COW – cluster of workstions). Барлық жұмыс станциялары өзара байланысты бір немесе бірнеше қосымшаларды орындайды. Үлестірілген жадысы немесе бірнеше қосымшаларды орындайды. Үлестірілген жадысы бар қымбат емес мультипоцессор құрудың кең тараған әдісі Beowulf машинасын жинау. Ол базалық ақпараттық жасау және Pentium поцессорның чипсеттері, желілері, дискілері және Linux операциялық жүйесі сияқты ақысыз программалардан тұрады.

Үлестірілген жадылы мультикомпьютерлердің өте кең комбинациясы – бөлінетін жүйесі сияқты жадыны қолдайтын машина.

Мұндай типті мультикомпьютерлердің программалауға бірнеше әдістермен жетуге болады:

● Арнайы параллель программалау тілін жобалау (мысалы, Occam параллель программалау тілі),

● Хабар жеткізуді өңдеу үшін тізбекті жоғары деңгейлі тілдің түйінді сөздерін кеңейту (мысалы, С++, Фортран HPF);

● Бар тізбекті жоғары деңгейлі тілді қолдану және хабар беру үшін сыртқы процедуралардың кітапханасын жасау (мысалы, PVM, MPI).

Келесі тарауда программалаудың осы әдістеріне толығрақ тоқталамыз.


Флинн таксономиясы

Бір поцессорлы компьютерлерде деректерге амалдар қолданылатын бір командалар ағыны программа арқылы генерацияланады. Бұл схеманы 1972 жылы Стэфорд университетінің процессоры Флинн ойлап тапты. Оның классификацилау схемасын Флинн таксономиясы деп атажы (Flynn, 1966, 1995).

Флинн таксономиясына сәйкес компьютерлік жүйелер командалар ағыны және деректер ағыны сандарымен классификацияланады (6-сурет).

● SISD (Single Instruction Single Data): бір командалар ағыны және бір деректер ағыны;

● SIMD (Single Instruction Multiple Data): бір командалар ағыны және көп деректер ағыны;

● MIMD (Multiple Instruction Multiple Data): көп командалар ағыны және көп деректер ағыны;

● MISD (Multiple Instruction Single Data): көп командалар ағыны және бір деректер ағыны;
Деректер ағының саны

Single Multiple


SISD SIMD

MISD MIMD


Single


Командалар ағынының саны

Multiple


6-сурет. Флинн таксономиясы
5 Лекция. Параллель программалау тиімділігін бағалау.

  • Орындалу уақыты, жылдамдату коэффициенті, орындаушыға қызмет көрсету бағасы мен тиімділігі.

  • Амдал заңы.

  • Густафсон заңы.

4 Лекцияда келтірілген компьютерлер конфигурациясының әрбіреуі қарастырамыз:

SISD – бір командалық ағыны бір деректер ағыны

SISD компьютер әдеттегі тізбекті комиьютерді сипаттайды (7-сурет).


Басқару модулі


Өңдеу модулі


Команда


Нәтиже
Деректер

7-сурет. SISD құрымылым.


Бір командалар ағыны және бір деректер ағыны бар машина мысалы:

● CDC 6600 көптеген функционалдық модулдері бар;

● CDC 7600 конвейерлік арифметикалық модулдері бар;

●Cray-1 векторлық өңдеуді қолдайды.


SIMD моделі бір командалар ағыны және көптеген деректер ағыны.

Бұл модельде бір ғана командалар ағыны бар, әрбір процессор сол командалар жиынынан кейін жүреді және әртүрлі функционалдық элементтері бар көптеген деректер ағыны әрбір процессор арасында үлестіріледі.

SIMD компьютерлер үлестірілген жадылы.

Мұндай құрылымының жалпы түрі 8- суретте көрсетілген:



Басқару модулі

Команда



Өңдеу модулі

Деректер Нәтиже

Өңдеу модулі

Деректер Нәтиже

Өңдеу модулі

Деректер Нәтиже


.....

8-сурет. SIMD құрылымы


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

Әрбір процессорға келесі команда әрекет жасалғанға дейін команда орындалуын аяқтауға мүмкіндік берілуі керек. Командалардың орындалуы синхронды.

SIMD модельді компьютерлер мысалы:

● ILLIAC-IV;

● BSP;

● MPP;


● Conection Machine (CM 1).

SIMD компьютерлер нейтрондық желілер типті параллель қосымшалар үлестірілген деректер үшін жиі қолданылады.

MIMD көп командалар ағыны және көп MIMD компьютер әрбіреуінің өзінің жеке басқару блогы бар, көптеген байланысқан элементар процессорлардан тұрады (9-сурет).

Процессорлар өзінің жеке жеке деректеріне өзінің жеке командаларымен әсерін тигізеді. Әртүрлі процессорлар орындаған есептер әртүрлі уақытта босатылып немесе аяқталуы мүмкін. Олар SIMD компьютерлернідегі сияқты бірге «аяқ баспай» асинхронды орындайды.

MIMD құрылымды компьютерлер үлестірілген жадылы, немесе жалпықатынау жадысын бірлесіп қолдануы мүмкін. Мұндай компьютерлер мысалы:

● Cray-2, S1;

● Cray X-MP;

● IBM 370/168 MP, iPSC.


Ж

Е



Л

І


Команда

Деректер

Нәтиже

Команда


Деректер

Нәтиже


9-сурет. MIMD модуль

MIMD SPMD SIMD



Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет