3.3 Параллельді компьютерлер. Параллель компьютерлер түрлері.
Соңғы жылдары пайдаланып жүрген есептеуіш машиналардың есептеу жылдамдығы мен сапасына көп көңіл бөлінетін болды. Сондықтан қазіргі кезде қуатты суперкомпьютерлер және көппроцессорлы компьютерлер жасалынуда. Олардың мүмкіншіліктері өте зор. Берілген операцияның орындалуы жеделдеді, әрі нәтижеге жету жылдамдығы өте жоғары.
Жоғарғы өндіруші техникалар қазірде мынадай: Векторлы-конвейерлі компьютерлер, үлестірімділі-жадылы массивті-параллельді компьютерлер, ортақ жадылы параллель компьютерлер, кластер архитектуралы компьютерлер бағыттарда дамуда. Олар деректерді параллель өңдеу және параллель алгоритмдерді өңдеуді қолдануға негізделеді. Арнаулы программалы жасақпен жұмыс жасай білу үшін және параллель алгоритмін құрып және программалаудың параллельділік тәсілін меңгеру үшін сәйкес білім мен біліктілік қажет.
Компьютерлің құрылғыларды қарастырғанда оның архитектурасын және құрылымын айыра білу қажет.
Компьютер архитектурасы деп компьютер бөліктерінің негізгі жиынтығын және олардың арасындағы байланысты айтады.
Компльютер архитектурасын қарастырғанда оған кіретін бөліктер құрамы, олардың өзарабайланысы, сол сияқты олардың атқаратын қызметтері мен мінездемелері анықталады.
Параллельді компьютер – есепті сандық түрде шешіп, үйлесімді шешуге қабілетті процессорлардың жиынтығы
2.Параллель компьютерлерге сұраныс және параллель программалаудың даму кезеңдері
Параллель компьютер дегеніміз – есепті сандық түрде шешіп, үйлесімді шешуге қабілетті процессорлардың жиынтығы.
Параллельді программа – бұл әр процесс өзінің меншікті процессорныда жүріп қана қоймай, параллель орындалатын программа.
Есептеу жылдамдығы жоғары, есептеу уақыты аз, сонымен бірге деректер массивін өңдей алатын сұраныс қай кезде де орын алып отырған.
Бірақ компьютерлік технологияның дамуына байланысты параллель компьютерлерді дамыту техника мен экономика салаларына өте қажет болды. Жай өмірден параллельділікке мысал келтірсек, көктем басталысымен, ағаш жапырақтарының барлығы бірге өркендей бастайды, ал оркестрде барлық әртүрлі аспаптар ойнағанда, бір ғана әуенді естиміз.
Параллельді компьютерлер мен параллельді есептеулер қолданылатын облыстарға тоқталсақ:
- күрделі жүйені сандық модельдеуде: ауа-райын болжау, гендік инженерия, интегралдық схеманы жобалау, жаңалықтар, кезекті космосқа ұшырылу туралы жедел хабар, т.б.
- бизнесте, коммерциялық салада: видеоконференциялар, параллель мәліметтер қоры, банктік транзакция, т.б.
- техникада: медицина саласында, автоматты түрде диагноз қою, жер сілкінуді болжау, айналадағы ортаның ластануын анализдеу, дәрі-дәрмек препараттарын жасау, т.б.
- білім беру саласында: кеңейтілген графика және виртуальды әлем, әсіресе, компьютерлік ойындар құрастыру.
Жоба жасаушылар параллельділікті қолдану кезінде көптеген қиыншылықтарға кезігуде. Себебі, компьютер жұмысы негізгі операцияны орындауға кететін уақытқа тәуелді. Ал, келіп түскен командалар мен мәліметтер ағынын бір мезгілде өңдеп отыратын процессор «тактілі циклмен» жұмыс жасау керек. Бұл қиыншылықтарды шешу үшін компьютер жобасын жасаушылар компьютерді күрделендіріп, түрлендіру үшін мынадай тәсілдерді қолдана бастады:
- конвейерлі өңдеу (бірнеше команданың әртүрлі стадиялары бір мезгілде орындалады);
- функционалдық модулдер жиынын кірістіру (бірнеше көбейткіштер, сумматорлар, және т.б. жеке командалар ағынымен басқарылады),
- жеке процессоры, жадысы және логикалы өзара байланысты(желімен) «компьютерлер жиынының бірігуі». Pentium III компьютерін 70 жылдардағы компьютерлермен салыстырғанда суперкомпьютер болып есептелетін еді, қазір ол атау мұндай компьютерлерге сай емес. Суперкомпьютерлердің өнімділігі жоғары және жедел жады мен дискілік жады көлемі үлкен болады. Қазірде дүние жүзінде 500 ең қуатты компьютерлердің арасында 1-ші орын алып отырған компьютер – ASCI WHITE. Оның архитектурасы – 8192 процессорлы, жедел жадысы 4 терабайт, өнімділігі – секундына 12 триллион операция жасайды.
Әрине, бұл компьютерлердің құны да арзан емес, бірнеше миллион доллар тұрады. Осыншама қымбат компьютерлерді пайдаланатындай бізде қандай күрделі есептер бар? Ол есептер соншама маңызды ма? Осы сұрақтарға жауап беру үшін мынадай бір мысал қарастырайық.
Мұнай өндіретін процесті қарастырайық. Жер асты резервуарлары қазылған скважиналардан тұрады, біреуінен мұнай сорылса, екіншісінен су төменге айдалады. Бізге мынадай есеп қойылады: осы резервуардан алынатын мұнайдың запасын анықтау керек немесе бізге қаншама қосымша скважина керек, осыны есептеу үшін біз схеманы қарапайым елестетейік. Резервуарды куб деп қарастырайық. Куб көлемі - 100х100х100 нүктелерден тұрады. Әрбір нүктеде орындалатын функциялар – жылдамдық, қысым, температура, компоненттің концентрациясы (су, газ, мұнай, т.б.). Барлығы 5-20 функция (орташа-10). Бұл функциялар сызықты емес. Сондықтан оларды есептеу үшін 200-1000 операция орындалу керек (орташа -500).
Жүріп жатқан процестер стандартты емес, сондықтан қадамдар саны 100-1000 (орташа-500). Сонда куб ішінде орындалатын арифметикалық операциялар саны:
106 (нүктелер)*10 (функция)*500 (операция)*500 (қадам)=2.5*1012, яғни 2500 млрд. арифметикалық операция. Әрине, мұндай операцияларды қарапайым компьютерлермен орындасақ қаншама уақыт кетер еді.
Параллельділік
Программалау модельдері
Параллель компьютерлердің аппараттық жабдықталуы
1. Параллельділік. Қазіргі бір процессорлы машиналар компоненттері: орталық процессордан, бастапқы жадыдан, бір және көп деңгейлі кэш жадыдан, екінші ретті жадыдан (дискілік жады) және әр түрлі периферийлік құрылғылардан тұрады.
Программа орындауға қатысты түйінді (өзекті) компоненттер: орталық процессор, кэш және жады.
Жалғыз процессорлы компьютерлер архитектурасын дамыту үшін мынадай әр түрлі тәсілдерді қолдануға болады:
Орталық процессордың бір ішкі бөлігін 4 функционалдық модульдермен (сумматор, көбейткіштер) алмастыру;
Орталық процессордың өткізу жолағын (қабілетін) үлкейту үшін оған жадының 2 не оданда көп блоктарын қосу;
Уақыт бірлігінде орындалатын командалардың санын арттыру үшін бір жадылы екі және одан да көп процессорларды қосу;
Барлық компьютерлердің жұмыстары бір бағытта бағытталу үшін, яғни бір программаны орындау үшін толық компьютерді машиналар желісіне қосу;
Параллельділікті әртүрлі деңгейіне қарай классификацияланады:
тапсырма деңгейінің параллельдігі;
программа деңгейінің параллельдігі;
командалар деңгейінің параллельдігі;
арифметикалық және биттік туралау параллельдігі;
Тапсырма деңгейінің параллельділігі - параллельділіктің ең жоғарғы деңгейі. Бұл деңгейде орталық процессор мен енгізу-шығару жүйесі параллель жұмыс жасайды.
Мысал келтірсек: бірнеше тапсырмалар бір уақытта жадыда сақталып тұрады да, тек олардың біреуі кез-келген берілген уақытта орындалады. Егер бұл тапсырма енгізу-шығару қызметін керек ететін болса немесе дискіден оқу керек болса, бұл операция инициализацияланады, яғни тоқтатылады, басқа тапсырма орындауға жіберіледі. Ары қарай енгізу-шығару операциясы аяқталған соң және мәліметтер алынған соң, басқару кейін, яғни алғашқы тапсырмаға қарай қайтарылып процесс жалғасады.
Программа деңгейінің параллельдігі - бір программа оны құраушы бөліктеріне бөлініп орындалатын процесс. Параллельділіктің бұл типі процессордың жиынымен іске асады. Бұл көп процессорлары машина барлық берілген есептеулерді бір мезгілде орындай алады.
Командалар деңгейінің параллельдігі - бұл типті іске асыратын негізгі тәсіл – конвейерлер. Бұл жағдайда не жеке командалар қалқаланады, не берілген команда бағыныңқы операцияларға жіктеледі. Олар да өз кезегінде қалқалану жағдайына келтіріледі.
Арифметикалық және биттік туралау параллельдігі - параллельдігінің ең төменгі деңгейі. Бұл деңгей - орталық процессордағы арифметика-логикалық құрылғыға жатқызылады.
2. Программалау модельдері. Параллельді есептеулер сапасына мына көрсеткіштер әсер етеді:
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
1. Параллельді программалық жабдықтау.
3. Параллельді программалық жабдықтау үшін мынадай талаптар орындалу керек:
параллельді (көптеген іс-әрекетті бір мезгілде орындай алу қабілеті);
кең көлемді (процессор санының көбеюіне бейімделу қасиетінің болуы);
локальды (жергілікті қашықтатылған жадыға (байланыс) қатынасының жоғарғы коэфиценттілігі);
модулді (күрделі обьектілердің өте қарапайым компоненттерге декомпозициялануы);
Программалау модельдері: параллельді және тізбекті.
Көпшілік қолданарлық (общедоступный) көп процессорлы жүйе аты айтып тұрғандай көптеген процессордың жыйынынан тұрады, олар бір-бірімен жадының модульдер жиынымен өзара байланысты. Процессорлармен жады өзара байланысатын желінің бір формасымен байланысады. Бұл типтің жалпы формасы
Жадының әрбір ұяшығының адресі болады, сол адреспен процессор берілген ұяшыққа сұраныс жасайды. Жадының ұяшықтарының виртуальді және нақты адрестері болады. Параллельді компьютерлердің екінші типіне компьютерлердің жиыны кіреді. Оларда бір–бірімен байланыстырушы желімен жалғанады.
Әрбір компьютерлердің өзі процессоры, жергілікті жадысы болады, бірақ басқа процессормен байланыс жасай алмайды. Жалпы жады барлық компьютерге үлестірілген. Әрбір компьютердің өзіндік адрестік кеңістігі бар. Процессорлар арасындағы өзара байланыс бір-бірінен хабар алып не жіберулмен жүзеге асады. Хабарда басқа процессорың есептеулеріне керек болатын мәліметтер болуы мүмкін.
ҚОРЫТЫНДЫ
Жұмысымның нәтижесінде компьютер құрылғыларын толық зертеп меңгердім.
Практикалық жұмыстың барысында компьютер жүйесін жасаудың негізгі принциптері, жобалау сатылары рет-ретімен мысалдармен көрсетілді. Осы көрсетілген мысалдар мен түсіндірулер жаңа жүйе жасауға негіз бола алады.
Компьютер құрылғылары құру барысында оны неғұрлым әмбебап, түсінікті қолдануға ыңғайлы етіп шығаруға ұмтылдым. Сол үшін жүйенің объектілері анықталып, олардьң арасындағы байланыстар орнатылды, әр түрлі кестелерге ыңғайлы формалар құрылды.
Қорыта келгенде компьютер құрылғылары– бұл көптеген деректер қорын жеңілдетуге мүмкіндік жасайды. Сондай-ақ бұл ыңғайлы және тиімді жұмыс жүйесі болып табылады. Тек компьютер құрылғылары жүйелерімен жұмыс істеуді толық меңгергенде ғана біз аз уақытта тиімді жүйе жасап шығара аламыз.
Достарыңызбен бөлісу: |