Оқулық Қазақстан Республикасы Білім және ғылым министрлігі бекіткен Алматы, 2011



Pdf көрінісі
бет28/121
Дата31.08.2022
өлшемі2,81 Mb.
#38343
түріОқулық
1   ...   24   25   26   27   28   29   30   31   ...   121
арнайы комментарилерді, дәстүрлі бағдарламалау тілдерінде пайдаланудан 
бастайық. Айталық, сіз Cray T90 векторлы-конвейерлік компьютерінде 
жұмыс істейсіз. Қолданудағы бағдарламаның кейбір циклінің барлық 
итерациялары бір-біріне тәуелсіз екені белгілі болса, онда оны «векторлауға» 
болады, яғни векторлық командалар кӛмегімен конвейерлік функционалды 
құрылғыларда ӛте тиімді орындауға болады. Егер цикл қарапайым болса, 
онда тізбекті кодты параллель кодқа айналдыру мүмкіндігін компилятордың 
ӛзі де анықтай алады. Егер компилятордың жоғары интеллектілігіне 
сенімділік болмаса, онда цикл басына векторлау мүмкіндігінің және 
тәуелсіздігінің жоқтығына айқын белгі қою керек.
Дербес жағдайда, Fortran бағдарламалау тілінде (Fortran бағдарламалау 
тілі параллель есептеуде жиі қолданылатынын айта кету керек) бұл былайша 
кӛрсетіледі: 
CDIR$ NODEPCHK 
Fortran тілінің ережесі бойынша бірінші позициядағы ´С´ әріпі ағымды 
жолдың комментарий екенін, ´DIR$´ тізбегі компилятор үшін арнайы 
комментарий екенін, ал ‗NODEPCHK‘ бӛлігі - орындалып жатқан циклдің 
итерациялары арасында ақпараттық тәуелділіктің жоқтығын кӛрсетеді. 
Арнайы комментарийлерді пайдалану параллель орындалу мүмкіндігін 
ғана қосып қоймай, сонымен қатар бағдарламаның алдыңғы нұсқасын да 
толық сақтайды. Тәжірибе жүзінде бұл ӛте ыңғайлы, мысалы, егер 
компилятор параллельділік туралы ештеңе білмесе, онда ол бағдарламаның 
тізбекті семантикасын негізге ала отырып, арнайы комментарилердің бәрін 
ескермей ӛткізіп жібереді


50 
Қазіргі уақыттағы кең тараған OPEN MP стандарты да 
комментарийлерді пайдалануға негізделген. Мұнда ортақ жадымен, 
жіптермен жұмыс істеуге және параллельділікті айқын сипаттауға басты 
бағдар жасалған. 
FORTRAN тілінде OPEN MP арнайы коммментаридің белгісі !SOMP 
префиксі болып табылады, ал С тілінде «#pragma omp» директивасы 
қолданылады. Қазіргі күні SMP–компьютерлерінің барлық жетекші 
ӛндірушілері ӛз платформаларындағы компиляторларда OPEN MP-ді 
қолдайды. 
Параллель бағдарламаларды алу үшін арнайы комментарилерді 
пайдаланумен қатар, қолданыстағы бағдарламалау тілдерін жетілдіруге де 
жиі баруда. Пайдаланушыға бағдарламаның параллельді құрылымын анық 
тапсыруға және кейбір жағдайларда параллель бағдарламаны басқаруға 
мүмкіндік беретін қосымша операторлар және айнымалыларды сипаттаудың 
жаңа элементтері енгізіледі.
High Performance Fortran (HPF) тіліне, FORTRAN тілінің дәстүрлі 
операторлары және арнайы комментарилеріне қоса, бағдарламаның 
параллель циклдерін сипаттау үшін енгізілген FORALL жаңа операторы 
кіреді. Сонымен қатар, мысал ретінде РАН жүйелік программалау 
Институтында құрастырылған, ANSI C кеңейтілуі болып табылатын mpC 
тілін айтуға болады. mpC тілінің негізгі мақсаты (қызметі) – біртекті емес 
есептеу жүйелеріне арналған тиімді параллель бағдарламаларды құру. 
Параллель жүйелер архитектурасының спецификасын немесе қайсібір 
пәндік аумақтың қандай да бір есептер класының қасиеттерін дәлірек беру 
үшін, 
параллель 
бағдарламалаудың 
арнайы 
тілдерін 
қолданады. 
Транспьютерлік жүйелерді бағдарламалау үшін Occam тілі құрылды, ал 
ағынды машиналарды бағдарламалау үшін бір ретті меншіктеу тілі Sisal 
жобасы жасалынды. М. В. Келдыш атындағы қолданбалы математика 
Институтында 
И. 
Б. 
Задыхайлоның 
басқаруымен 
құрастырылған 
декларативті НОРМА тілі (есептеулерді торлық әдістермен жүргізуде 
пайдаланылды) ӛте қызықты және ерекше тіл болып саналады. Тілдің жоғары 
деңгейлі абстракциясы, математиктің мәселені бастапқы қоюына жуық 
нотацияда есептерді сипаттауға мүмкіндік береді, оны тілдің авторлары 
шартты түрде бағдарламашысыз бағдарламалау деп атайды. Тілде есептеу 
ретін бекітетін сонымен қоса, алгоритмнің табиғи параллельділігін 
жасыратын дәстүрлі бағдарламалау тілдерінің конструкциясы жоқ.
Массивті-параллель компьютерлердің пайда болуынан бастап, 
параллель процестердің ара-қатынасын қолдайтын кітапханалар мен 
интерфейстер кең тарай бастады. Осы бағыттағы типтік представитель, 
әрбір параллель платформада, яғни векторлы-конвейерлі супер ЭЕМ-нан 
бастап, дербес компьютерлік желілер мен кластерлерге дейін іске асырылған 
интерфейс Message Passing Interface (MPI) болып табылады. Мұнда, 
қосымшаның қандай параллель процестері бағдарламаның қай жерінде және 
қандай процестермен мәліметтер алмасатынын немесе ӛз жұмысын 


51 
синхрондайтынын бағдарламашы ӛзі анықтайды. Негізінде параллель 
процестердің адрестік кеңістігі әртүрлі. Осы идеологияға сәйкес деп MPI мен 
PVМ-ді айтуға болады. Басқа технологияларда, мысалы Shmem, қосымшаның 
барлық процестеріне бірдей қолжетімді жалпы (shared) айнымалыларды да, 
локальді (private) айнымалыларды да қолдануға мүмкіндік береді.
Linda жүйесінде параллель бағдарлама құру үшін кезкелген тізбекті 
тілге тӛрт қосымша функция in, out, read, eval қосса жеткілікті. Ӛкінішке 
орай, бұл идеяның қарапайымдылығы оны іске асыруда үлкен мәселелерге 
тірейтіндіктен, бұл технология тәжірибелік құралдан гӛрі академиялық 
қызығушылық обьектісіне алмастырылады.
Тәжірибе жүзінде қолданбалы бағдарламашылар кӛбіне айқын 
параллельді конструкцияларды мүлдем қолданбайды, қажет кезінде 
бағыныңқы 
бағдарламалар 
мен 
параллель 
пәндік 
кітапханалар 
функцияларын пайдаланады. Бар параллельділік және бар оптимизация 
шақыруларда жасырылған, ал пайдаланушыға стандартты блоктарды тиімді 
пайдалана отырып ӛз бағдарламасының тек сыртқы бӛлігін ғана жазу қалады. 
Осыған ұқсас кітапханаларға Lapack, ScaLapack, Cray Scientific Library, HP 
Mathematical Library, PETSc және кӛптеген т.б. жатады.
Сонымен, ендігі айтылатын ең соңғы бағыт – бұл арнайы пакеттер 
мен бағдарламалық кешендерді пайдалану. Бұл жағдайда, пайдаланушыға 
бағдарлама құрудың мүлдем қажеті жоқ. Негізгі мәселе – барлық керекті 
енгізілетін деректерді дұрыс кӛрсете алу және пакеттер функционалдығын 
дұрыс пайдалана білу. Осылай, кӛптеген химиктер квантты-химиялық 
есептеулерді параллель компьютерлерде жүргізу үшін GAMESS пакетін 
пайдаланады, алайда олар параллель ӛңдеудің қалай іске асырылаты туралы 
ойланбайды да. 
Сонымен, алдыңғы параграфтардағы айтылғандарды қорытындылай 
келе, параллель компьтерлердің аппаратурасы және бағдарламалық 
қамтамасындағы соңғы бірнеше он жылдықтағы үлкен ӛзгерістерге ӛз 
бағасын беруіміз қажет. Осы ӛзгерістердің нәтижесінде, қазіргі күнгі 
пайдаланушылар, ӛте күрделі есептерді шығаруға мүмкіндік беретін қуатты 
есептеу жүйелеріне ие болды. Алайда, тәжірибе кӛрсеткендей, жалпы 
параллель есептеу жүйелеріне қатысты мәселелер толық жойылған жоқ, олар 
басқа деңгейге кӛшті десе болады. Егер алғашқы кезде, бірнеше қарапайым 
компьютерді тиімді пайдалану сұрағы қойылса, ал қазір жүздеген, мыңдаған 
және он мыңдаған процессорлардан тұратын жүйелердің тиімділігі туралы 
мәселе қойылуда. Мұнда әрбір процессордың ӛзі де күрделі параллель жүйе 
екенін ескеру қажет.


Достарыңызбен бөлісу:
1   ...   24   25   26   27   28   29   30   31   ...   121




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

    Басты бет