Бақылау сұрақтары: Жалғыз процессорлы компьютерлер архитектурасын дамыту үшін қолданылатын тәсілдер.
Параллельділіктің әртүрлі деңгейіне қарай классификациясы.
Тапсырма деңгейінің параллельділігі.
Программа деңгейінің параллельдігі.
Командалар деңгейінің параллельдігі.
Пайдаланылған әдебиеттер 1. Воеводин Вл. Параллельные вычисления. Санкт-Петербург, 2012 г.
2. Грегори Р. Эндрюс. Основы многопоточного, параллельного и распределенного программирования. Пер. с. англ. –М.: Издательский дом «Вильямс», 2013 г.
3. Акжалова А.Ж. Параллельные вычисления (учебное пособие). – Алматы, 2014 г.
4. Дүйсембиев Е.Е. Параллель есептеулер. Оқулық – Алматы 2011 ж.
7-Дәріс Тақырыбы: Программалау модельдері. Жоспар: Программалаудың екі моделі.
Тізбектелген және параллель.
Ішкі параллельділік.
Программалау модельдері. Параллельді есептеулер сапасына мына
көрсеткіштер әсер етеді:
1. Есептеудің жедел орындалуы.
2. Есептелу тиімділігі.
3. Есептелу құны.
4. Есептелу көлемі.
Есептелудің жедел орындалуы (speedup) мына шамамен анықталады:
p – процессорлар саны
Есептелудің тиімділігі мына шамамен анықталады:
p-процессорлар саны
Есептелу құнының пайдалы бағасы – параллельді есептелетін уақыттың процессорлар санына көбейтіндісін айтамыз.
p - процессорлар саны
Мысалдар келтірейік:
1-мысал. «Операциялар-операндтар» графы түрінде есептеу моделі.
Есептеу моделін жеңілдету үшін, есептеу барысындағы кез-келген есептеу
операциясына кететін уақытты бірдей және 1-ге тең деп қабылдаймыз (өлшем
бірлігін өз бетімізше аламыз).
Мынадай есеп қойылсын: Қарама-қарсы бұрыштарының координаттары
берілген тіктөртбұрыштың ауданын есептеудің алгоритмін граф түрінде
көрсетейік.
Бұл мысалдан, есеп шешуде таңдалған алгоритмді орындау үшін есептеу
схемасын басқаша да құруға болады және басқаша есептеу моделін құруға
болады. Сонда әртүрлі есептеу схемалары параллельділіктің әр түрлі
мүмкіншіліктерін қарастыруға мүмкіндік береді, яғни есептеу моделін құру
кезінде біздің алдымызда алгоритмді есептеу схемасының параллельді орындалу
тәсілдерінің ең қолайлысын таңдау мақсаты тұрады.
2-мысал. Сандардың қосындысын табу алгоритмдерін қарастырайық.
n- қосындылардың саны.
Бұл есепті шешудің параллельді әдісін бастамас бұрын алдымен қарапайым
жағдайды қарастырамыз, яғни
Мұның алгоритмі тізбектеп қосудан шығады.
S=0,
S=S+x1,...
Бұл алгоритмді тізбектеп есептеу схемасы мынадай:
Бұл «стандартты» алгоритм тізбекті орындалады да, параллельді орындала
алмайды. Параллельді орындалу үшін қосындыны табу операциясын ассоциативті орындап, есептеу процесін басқаша құру керек. Бірінші итерацияда барлық берілгендер екі бөлікке бөлінеді, және әр жұп үшін олардың қосындысы
табылады, Әрі қарай барлық алынған қосынды тағы жұп бөлікке бөлініп, жұп
мәндерінің қосындысы табылады, тағы с.с. Бұл есептеу схемасы – қосындыны
есептеудің каскадты схемасы деп аталады, оны граф түрінде тұрғызуға болады.
n=2k
Мұндағы итерациялардың саны: k=log2n,
Ал, қосу операцияларының саны Kсонғы=n/2+n/4+...+1=n–1
Параллельді программалық жабдықтау.
Параллельді компьютерлердің типі.
Енді соларды қарастырайық.
Параллельді программалық жабдықтау үшін мынадай талаптар орындалу керек:
– параллельді (көптеген іс-әрекетті бір мезгілде орындай алу қабілеті);
– кең көлемді (процессор санының көбеюіне бейімделу қасиетінің болуы);
– локальды (жергілікті қашықтатылған жадыға (байланыс) қатынасының
жоғарғы коэфиценттілігі);
– модулді (күрделі обьектілердің өте қарапайым компоненттерге декомпозициялануы);
Программалау модельдері: параллельді және тізбекті.
Көпшілік қолданарлық (общедоступный) көп процессорлы жүйе аты айтып
тұрғандай көптеген процессордың жыйынынан тұрады, олар бір-бірімен жадының
модульдер жиынымен өзара байланысты. Процессорлармен жады өзара
байланысатын желінің бір формасымен байланысады. Бұл типтің жалпы формасы
Жадының әрбір ұяшығының адресі болады, сол адреспен процессор берілген
ұяшыққа сұраныс жасайды. Жадының ұяшықтарының виртуальді және нақты
адрестері болады. Параллельді компьютерлердің екінші типіне компьютерлердің
жиыны кіреді. Оларда бір–бірімен байланыстырушы желімен жалғанады.
Әрбір компьютерлердің өзі процессоры, жергілікті жадысы болады, бірақ
басқа процессормен байланыс жасай алмайды. Жалпы жады барлық компьютерге
үлестірілген. Әрбір компьютердің өзіндік адрестік кеңістігі бар.
Процессорлар арасындағы өзара байланыс бір-бірінен хабар алып не жіберулмен жүзеге асады. Хабарда басқа процессорың есептеулеріне керек болатын
мәліметтер болуы мүмкін.