Читайте также:
|
|
2. Грегори Р. Эндрюс. Основы многопоточного, параллельного и распределенного программирования. Пер. с. англ. –М.: Издательский дом «Вильямс», 2003
3. Акжалова А.Ж. Параллельные вычисления (учебное пособие). – Алматы, 2004
4. Немнюгин С.А., Стесик О.Л. Параллельное программирование для высокопроизводительных многопроцессорных систем – СПб., 2002
2,3 - дәріс
Тақырыбы: Параллельділік.
Программалаудың екі моделі: Тізбектелген және параллель
Параллельді компьютерлер: аппараттық жабдықталуы.
Мақсаты: Параллельділік және программалаудың модельдері ұғымымен таныстыру.
Кілттік сөздер: параллельділік, тізбектелген, параллель, модель, дискілік жады, процессор, көп деңгейлі.
Жоспары:
1. Параллельділік
2. Программалау модельдері
3. Параллель компьютерлердің аппараттық жабдықталуы
1. Параллельділік.
Қазіргі бір процессорлы машиналар компоненттері: орталық процессордан, бастапқы жадыдан, бір және көп деңгейлі кэш жадыдан, екінші ретті жадыдан (дискілік жады) және әр түрлі периферийлік құрылғылардан тұрады.
Программа орындауға қатысты түйінді (өзекті) компоненттер: орталық процессор, кэш және жады.
Жалғыз процессорлы компьютерлер архитектурасын дамыту үшін мынадай әр түрлі тәсілдерді қолдануға болады:
1. Орталық процессордың бір ішкі бөлігін 4 функционалдық модульдермен (сумматор, көбейткіштер) алмастыру;
2. Орталық процессордың өткізу жолағын (қабілетін) үлкейту үшін оған жадының 2 не оданда көп блоктарын қосу;
3. Уақыт бірлігінде орындалатын командалардың санын арттыру үшін бір жадылы екі және одан да көп процессорларды қосу;
4. Барлық компьютерлердің жұмыстары бір бағытта бағытталу үшін, яғни бір программаны орындау үшін толық компьютерді машиналар желісіне қосу;
Параллельділікті әртүрлі деңгейіне қарай былай классификациялауға болады:
- тапсырма деңгейінің параллельдігі;
-программа деңгейінің параллельдігі;
-командалар деңгейінің параллельдігі;
-арифметикалық және биттік туралау параллельдігі;
1) Тапсырма деңгейінің параллельділігі - параллельділіктің ең жоғарғы деңгейі. Бұл деңгейде орталық процессор мен енгізу-шығару жүйесі параллель жұмыс жасайды.
Мысал келтірсек: бірнеше тапсырмалар бір уақытта жадыда сақталып тұрады да, тек олардың біреуі кез-келген берілген уақытта орындалады. Егер бұл тапсырма енгізу-шығару қызметін керек ететін болса немесе дискіден оқу керек болса, бұл операция инициализацияланады, яғни тоқтатылады, басқа тапсырма орындауға жіберіледі. Ары қарай енгізу-шығару операциясы аяқталған соң және мәліметтер алынған соң, басқару кейін, яғни алғашқы тапсырмаға қарай қайтарылып процесс жалғасады.
2) Программа деңгейінің параллельдігі - бір программа оны құраушы бөліктеріне бөлініп орындалатын процесс. Параллельділіктің бұл типі процессордың жиынымен іске асады. Бұл көп процессорлары машина барлық берілген есептеулерді бір мезгілде орындай алады.
3) Командалар деңгейінің параллельдігі - бұл типті іске асыратын негізгі тәсіл –конвейерлер. Бұл жағдайда не жеке командалар қалқаланады, не берілген команда бағыныңқы операцияларға жіктеледі. Олар да өз кезегінде қалқалану жағдайына келтіріледі.
4) Арифметикалық және биттік туралау параллельдігі - параллельдігінің ең төменгі деңгейі. Бұл деңгей - орталық процессордағы арифметика-логикалық құрылғыға жатқызылады.
4. Программалау модельдері.
Параллельді есептеулер сапасына мына көрсеткіштер әсер етеді:
1. Есептеудің жедел орындалуы.
2. Есептелу тиімділігі.
3. Есептелу құны.
4. Есептелу көлемі.
Есептелудің жедел орындалуы (speedup) мына шамамен анықталады:
Есептелудің тиімділігі мына шамамен анықталады:
Есептелу құнының пайдалы бағасы – параллельді есептелетін уақыттың процессорлар санына көбейтіндісін айтамыз.
Мысалдар келтірейік:
1-мысал. «Операциялар-операндтар» графы түрінде есептеу моделі.
Есептеу моделін жеңілдету үшін, есептеу барысындағы кез-келген есептеу операциясына кететін уақытты бірдей және 1-ге тең деп қабылдаймыз (өлшем бірлігін өз бетімізше аламыз).
Мынадай есеп қойылсын: Қарама-қарсы бұрыштарының координаттары берілген тіктөртбұрыштың ауданын есептеудің алгоритмін граф түрінде көрсетейік.
Бұл мысалдан, есеп шешуде таңдалған алгоритмді орындау үшін есептеу схемасын басқаша да құруға болады және басқаша есептеу моделін құруға болады. Сонда әртүрлі есептеу схемалары параллельділіктің әр түрлі мүмкіншіліктерін қарастыруға мүмкіндік береді, яғни есептеу моделін құру кезінде біздің алдымызда алгоритмді есептеу схемасының параллельді орындалу тәсілдерінің ең қолайлысын таңдау мақсаты тұрады.
2-мысал. Сандардың қосындысын табу алгоритмдерін қарастырайық.
n- қосындылардың саны.
Бұл есепті шешудің параллельді әдісін бастамас бұрын алдымен қарапайым жағдайды қарастырамыз, яғни
Мұның алгоритмі тізбектеп қосудан шығады.
S=0,S=S+x1,...Бұл алгоритмді тізбектеп есептеу схемасы мынадай:
Бұл «стандартты» алгроитм тізбекті орындалады да, параллельді орындала алмайды. Параллельді орындалу үшін қосындыны табу операциясын ассоциативті орындап, есептеу процесін басқаша құру керек. Бірінші итерацияда барлық берілгендер екі бөлікке бөлінеді, және әр жұп үшін олардың қосындысы табылады, Әрі қарай барлық алынған қосынды тағы жұп бөлікке бөлініп, жұп мәндерінің қосындысы табылады, тағы с.с.
Бұл есептеу схемасы – қосындыны есептеудің каскадты схемасы деп аталады, оны граф түрінде тұрғызуға болады.
n=2k
Мұндағы итерациялардың саны: k=log2n,Ал, қосу операцияларының саны Kпосл=n/2+n/4+...+1=n–1
1. Параллельді программалық жабдықтау.
2. Параллельді компьютерлердің типі.
Енді соларды қарастырайық.
3. Параллельді программалық жабдықтау үшін мынадай талаптар орындалу керек:
-параллельді (көптеген іс-әрекетті бір мезгілде орындай алу қабілеті);
-кең көлемді (процессор санының көбеюіне бейімделу қасиетінің болуы);
-локальды (жергілікті қашықтатылған жадыға (байланыс) қатынасының жоғарғы коэфиценттілігі);
-модулді (күрделі обьектілердің өте қарапайым компоненттерге декомпозициялануы);
Программалау модельдері: п араллельді және тізбекті.
Көпшілік қолданарлық (общедоступный) көп процессорлы жүйе аты айтып тұрғандай көптеген процессордың жыйынынан тұрады, олар бір-бірімен жадының модульдер жиынымен өзара байланысты. Процессорлар мен жады өзара байланысатын желінің бір формасымен байланысады.
Бұл типтің жалпы формасы
жалпы адресті кеңістік
процессорға команда немесе процессордан мәлімет
Жадының әрбір ұяшығының адресі болады, сол адреспен процессор
берілген ұяшыққа сұраныс жасайды.Жадының ұяшықтарының виртуальді және нақты адрестері болады. Параллельді компьютерлердің екінші типіне компьютерлердің жиыны кіреді. Оларда бір –бірімен байланыстырушы желімен жалғанады.
Әрбір компьютерлердің өзі процессоры, жергілікті жадысы болады, бірақ басқа процессормен байланыс жасай алмайды. Жалпы жады барлық компьютерге үлестірілген. Әрбір компьютердің өзіндік адрестік кеңістігі бар. Процессорлар арасындағы өзара байланыс бір-бірінен хабар алып не жіберулмен жүзеге асады. Хабарда басқа процессорың есептеулеріне керек болатын мәліметтер болуы мүмкін.
Үлестірілген жадылы мультикомпьютерлердің жалпы типі
Бақылау сұрақтары
1. Параллельділік дегеніміз не?
2. Программалаудың қандай модельдері бар?
3. Тізбектелген модель дегеніміз не?
4. Параллель модель дегеніміз не?
Әдебиеттер
Дата добавления: 2015-10-29; просмотров: 347 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Воеводин Вл. Параллельные вычисления. Санкт-Петербург, 2002 -600с. | | | Флинн таксономиясы. |