Сұрақтар мен тапсырмалар
1. Үлкен есептер және үлкен есептеу жүйелері туралы не айтасыз?
110
2. Математикалық модельдеу және есептеу алгоритмі дегеніміз не?
3. Үлкен есептер және үлкен компьютерлер арасындағы байланыс.
4. Үлкен есептердің қалай пайда болатынына қандай да бір мысал
келтіріңіз. Талдау жасаңыз.
5. Жоғары ӛнімді есептеу жүйелері немен ерекшеленеді?
6. Сандық эксперименттер туралы не айтасыз?
7. Сандық эксперименттерді жүргізу этаптарына талдау жасаңыз.
35 сурет. Сандық эксперименттің этаптары
§ 2.1.2 Алгоритм графы және параллель есептеулер
«Қарапайым»
компьютерге
арналған
кезкелген
бағдарлама
алгоритмдердің қандай да бір жиынтығын сипаттайды. Орындалу барысында
қандай да бір алгоритмді таңдау, шартты операторлардың қалай іске
қосылуымен анықталады. Ӛзге операторлардың құрамы мен орындалу реті
қатаң түрде бағдарламаның ӛзі арқылы беріледі. Егер бағдарламада шартты
операторлар болмаса, онда бағдарлама басынан-ақ тек бір ғана алгоритмді
суреттейді. Ӛз кезегінде, шартты операторлардың іске қосылуы тек кіріс
мәліметтеріне ғана тәуелді. Сондықтан «қарапайым» компьютер, әрқашан
бағдарлама мен кіріс мәліметтері арқылы біркелкі анықталып қойған қандай
да бір реттелген іс-әрекеттерді орындайды. Оның үстіне, «қарапайым»
компьютердің кез-келген ӛзге модельдерінде де берілген бағдарламаға бұл
реттілік біреу ғана, бірдей болады. Осылайша алдын ала нәтижесі де
айқындалады. Қорыта келгенде, кез-келген «қарапайым» компьютерде
кезкелген бір уақыт мезетінде тек бір ғана операция іске асырылады. Ал
қалған кезкелген басқа операция бұл уақытта тек орындалуға дайындық
кезеңінен ғана ӛтіп жатады.
Зерттелетін құбылыс немесе обьект
Математикалық
модель
Сандық әдіс
Операциялық жүйе
Бағдарлама
Компилятор
Компьютер
Есептеуді талдау
Нәтиже
111
Параллель архитектуралы есептеу жүйелеріндегі үрдіс мүлдем
басқаша. Мұнда әрбір уақыт мезетінде бір-біріне тәуелсіз бірнеше
операциялар жиынтығы орындалуы мүмкін. Кезкелген параллель жүйеде
бағдарлама және кіріс деректері сол жиынтықтардың құрамымен қатар,
олардың ретін де бірмәнді анықтайды. Алайда, әртүрлі жүйелерде
жиынтықтар мен олардың реттіліктері әртүрлі болуы мүмкін. Дегенмен
бірмәнді нәтиже алуды кепілдендіру үшін барлық операциялар жиынының
орындалу реті қандай да бір шартқа бағынуы тиіс.
«Қарапайым» компьютердегі сияқты, параллель компьютерде де
есептің шешімі кӛптеген жай операциялардың орындалуы нәтижесінде
табылады. Барлық операциялардың санаулы аргументтері болады. Әдетте
олардың саны екеуден аспайды. Операция аргументтерінің нақты мәндері
ретінде не кіріс мәліметтері, не болмаса ӛзге орындалған операциялардың
нәтижелері алынады. Қай нәтижелер қандай аргументтер болатындығы
жӛніндегі сәйкестік, бағдарламаны әзірлеуші арқылы белгіленеді. Осыдан
түсінетініміз: кезкелген операция – аргументтер тұтынушысы ӛзіне сол
аргументтерді жіберуші – бүкіл операциялар орындалмайынша іске қосыла
алмайды. Осылайша, кӛптеген операциялар үшін бағдарламаны әзірлеуші
жартылай реттілікті нақты немесе нақты емес түрде белгілейді. Кезкелген
екі операция үшін де реттілік мына мүмкіндіктердің біреуін білдіреді: не
операциялардың қайсысы бірінші орындалуға тиіс екендігін кӛрсетеді; не екі
операция да бір-біріне тәуелсіз түрде орындала беретінін білдіреді. Белгілі
бір жартылай реттілікте барлық операциялар жиынтығының жалпы мерзімдік
реті әртүрлі болуы мүмкін. Сәл кейінірек біз осы реттіліктердің қайсысы
болса да бір ғана нәтиже беретіндігін кӛрсетеміз. Сондықтан, бағдарламада
берілген жартылай реттілікті сақтау
– нәтиженің бірмәнділігін
кепілдендіретін шарттың орындалуы болып табылады. Бір ғана жартылай
реттілік кӛлемінде кезкелген орындалуды таңдауға мүмкіндік бар.
Осы
айтылғандарды
түсіндіре
кетейік.
Нақтыланған
кіріс
мәліметтерінде бағдарлама қандай да бір алгоритмді сипаттайды делік.
Бағытталған граф тұрғызайық. Шыңы (тӛбесі) ретінде кезкелген жиынды
алайық, мысалы, алгоритмнің барлық операциялар жиыны ӛзара-біркелкі
бейнеленетін арифметикалық кеңістіктің нүктелер жиынын алайық.
Кезкелген екі шыңды алайық: u, v. Жоғарыда сипатталған жартылай
реттілікке сай u шыңына сәйкес операция v шыңына сәйкес операцияға
аргумент жіберуі тиіс делік. Онда u шыңынан v шыңына доға жүргіземіз.
Егер сәйкес операциялар бір-бірінен тәуелсіз орындала алса, доға
жүргізілмейді. Операция аргументі бастапқы мәлімет болса немесе операция
нәтижесі ешжерде қолданылмаған жағдайда түрлі келісімділік туындауы
мүмкін. Мысалы, сәйкес доғалар жоқ деп санауға болады. Немесе бүкіл кіріс
мәліметтері мен нәтижелері арнайы енгізу/шығару құрылғылары арқылы
енгізіліп – шығарылады деп пайымдауға болады. Бұл жағдайда мұндай
операцияларға жауап беретін граф шыңдарында ғана, сәйкесінше, кіретін
және шығатын доғалар болмайды. Біз жағдайға байланысты әрекет
112
жасаймыз. Осы тәсілмен құрастырылған графты - нақтыланған кіріс
мәліметтері кезіндегі алгоритм орындалуының ақпараттық тәуелділік графы
деп атауға да болар еді. Алайда бұл қиындау және күрделі атау. Сондықтан
оны бұдан былай жай ғана - алгоритм графы деп атаймыз. Бағытталған
графтың тұрғызылу тәсіліне қарамастан, оның бірде-бір кіру немесе шығу
доғалары жоқ шыңдарын, сәйкесінше, графтың кіру немесе шығу шыңдары
деп атайтын боламыз.
Бұл ұғым біраз түсініктемені қажет етеді. Алгоритм графы үнемі дерлік
кіріс мәліметтеріне тәуелді. Бағдарламада шартты операторлар болмаған
жағдайдың ӛзінде ол массивтердің ӛлшемдеріне тәуелді болады, себебі олар
орындалып жатқан операциялардың жалпы санын, яғни граф шыңдарының
жалпы санын анықтайды. Сол себептен, негізінде алгоритм графы әрқашан
дерлік параметрленген граф болып табылады. Әрине, параметрлердің
мәндерінен тек шыңдардың саны ғана емес, доғалардың бүкіл жиынтығы да
тәуелді. Егер бағдарламада шартты операторлар болмаса, онда оның ӛзін де,
сол арқылы сипатталған алгоритмді де детерминделген (бӛлінген) деп
атаймыз. Ал кері жағдайда оларды детерминделмеген (бӛлінбеген) дейміз.
Детерминделген алгоритм графынің детерминделмеген алгоритм графынан
бір маңызды айырмашылығы бар. Детерминделген алгоритм үшін әрқашанда
оның бағдарламасын сипаттайтын барлық операциялар және алгоритм
графының барлық шыңдары арасында ӛзара-бірмәндес сәйкестік болады. Ал
детерминделмеген алгоритм үшін параметрлердің барлық мәнінде, басқаша
айтқанда кіріс мәліметтерінде ӛзара бірмәндес сәйкестік болмайды. Бұл
жағдайда параметрлер мәндерінің әр тобында бағдарламаның барлық
операцияларының белгілі бір жиынтықшасы және граф шыңдарының
арасында ӛзара бірмәндес сәйкестік бар деп тұжырымдауға ғана болады.
Параметрлердің түрлі мәндеріне түрлі жиынтықшалар сәйкес келе алады.
Ары қарай, егер қосымша толықтырулар болмаса, детерминделген
алгоритмдер мен бағдарламаларды қарастырамыз. Бұл шектеуді енгізудің
себептері айтарлықтай кӛп. Біріншіден, олардың құрылысы қарапайымдау
және зерттеуді алдымен осылардан бастаған жӛн. Екіншіден, детерминделген
алгоритмдер мен бағдарламалардың тобы айтарлықтай кең. Кейін кӛптеген
қағаз жүзіндегі детерминделмеген алгоритмдер, негізінен детерминделген
дерлік болып келеді. Мысал ретінде, тармақтар кіріс мәліметтерінің
мәндеріне тәуелді емес операциялар санын қамтығандағы жағдайды айтуға
болады. Мұндай тармақтарды аргументтерінің саны шектеулі үлкенірек
операцияларға енгізуге болады. Қорыта келгенде, егер тармақтар үлкен
детерминделген фрагменттерді қамтитын болса, онда бәрібір алгоритм
графының зерттелуі осы фрагменттерді зерттеуге ұласады.
Қарастырылып отырған алгоритм графы - бағытталған циклсіз
мультиграф болып табылады. Оның циклсіздігінің себебі мынада: кезкелген
бағдарламада тек нақты есептеулер жүзеге асырылады және ешқандай шама
ӛзі арқылы анықтала алмайды. Егер бағдарламада рекурсивті ӛрнектер болса
да, бұл тек біртипті есептеулерді сипаттаудың қолайлы түрі ғана. Рекурсияға
113
әрбір қатынас жасау кезінде, негізінде әртүрлі операциялар жүзеге
асырылады. Жалпы алғанда алгоритм графы - бұл мультиграф, басқаша
айтқанда, екі шың бірнеше доғалар арқылы байланыстырылуы мүмкін. Бұл
бір ғана операцияның түрлі аргументтері ретінде бір ғана шама қолданылған
жағдайда ғана болады. Графты белгілеу үшін стандартты белгіні қолданамыз:
Достарыңызбен бөлісу: |