- •«Параллель есептеулер» пәні бойынша 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.1.2. Хабар беру мультикомпьтері және үлестірілген жадылы мультикомпьютерлер
бұл компьютерлік жүйелер байланыс жүйелері арқылы өзара байланысқан компьютерлер жиыны.
Әрбір компьютерлер поцессор мен жергілікті жадыдан тұрады. Жады компьютерлер арасында үлестірілген.
Әрбір компьютердің өз адрестік кеңістігі бар. Поцессорлар үшін өзара байланыс бір-біріне хабар беру немесе алу арқылы қамтамасыз етіледі. Хабарларға басқа поцессорлардың есептеуіне қажетті деректер кіруі мүмкін.
Сонымен, берілген жүйеде кэш пен жадының келісушілік проблемасы тумайды. Үлестірілген жадылы микрокомпьютер 5-суретте көрсетілген.
Байланыс желісі
Хабар
Процессор
Жергілікті жады
Компьютерлер
5-сурет. Хабар беру көппроцессорлы жүйесінің моделі (мультикомпьютерлер).
Поцессорлар арасындағы хабар беруді программа жжүзеге асырады. Берілген жүйенің негізгі идеясы – қойылған есепті толығымен шешу үшін, есепті бір уақытта орындалатындай етіп бөліктеуге болады.
Жұмыс станциясы жиынынан тұратын желілік жүйе көбінесе жұмыс станциясының желісі (NOW – network of workstations) немесе жұмыс станциясының кластері деп аталады (COW – cluster of workstions). Барлық жұмыс станциялары өзара байланысты бір немесе бірнеше қосымшаларды орындайды. Үлестірілген жадысы немесе бірнеше қосымшаларды орындайды. Үлестірілген жадысы бар қымбат емес мультипоцессор құрудың кең тараған әдісі Beowulf машинасын жинау. Ол базалық ақпараттық жасау және Pentium поцессорның чипсеттері, желілері, дискілері және Linux операциялық жүйесі сияқты ақысыз программалардан тұрады.
Үлестірілген жадылы мультикомпьютерлердің өте кең комбинациясы – бөлінетін жүйесі сияқты жадыны қолдайтын машина.
Мұндай типті мультикомпьютерлердің программалауға бірнеше әдістермен жетуге болады:
● Арнайы параллель программалау тілін жобалау (мысалы, Occam параллель программалау тілі),
● Хабар жеткізуді өңдеу үшін тізбекті жоғары деңгейлі тілдің түйінді сөздерін кеңейту (мысалы, С++, Фортран HPF);
● Бар тізбекті жоғары деңгейлі тілді қолдану және хабар беру үшін сыртқы процедуралардың кітапханасын жасау (мысалы, PVM, MPI).
Келесі тарауда программалаудың осы әдістеріне толығрақ тоқталамыз.
4-лекция
Параллель компьютерлер типтері. Флинн таксономиясы. Жаңа таксономия құру спецификациясы.
4.1. Флинн таксономиясы
Бір поцессорлы компьютерлерде деректерге амалдар қолданылатын бір командалар ағыны программа арқылы генерацияланады. Бұл схеманы 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-сурет. Флинн таксономиясы
Осы келтірілген компьютерлер конфигурациясының әрбіреуі қарастырамыз:
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
5-6-лекция
Параллель программалау тиімділігін бағалау. Орындалу уақыты, жылдамдату коэффициенті, орындау шығына, қызмет көрсету бағасы, тиімділігі. Амдал заңы. Густафсон заңы.
Процесстер мен синхрондау. Аппараттық синхронизациялау деңгейі.
Процестер мен синхронизация
Параллель бағдарламалар күйі, іс-әрекеті, тарихы және қасиеттері
Параллель бағдарламаның күйі уақыттың кейбір сәттеріндегі бағдарламаның айнымалылар мәндерінен тұрады. Айнымалылар бағдарламалаушымен айқын анықталған немесе күйі туарлы жасырын ақпаратты сақтайтын айқын емес (әрбір процестің бағдарламалық есептегіш сияқты) түрде болады. Параллель бағдарлама орындауды кейбір бастапқы күйде бастайды. Бағдарламаның әрбір процесі тәуелсіз орындалады және орындалуына қарай ол бағдарлама күйін тексереді және өзгертеді.
