116
аргументтері болып тек кіріс мәліметтері ғана табылады. Олар операцияның
орындалу уақытына тәуелді емес. Сондықтан 1-ші ярустың барлық
операциялары ӛздерінің нақты орындалу уақытына тәуелсіз түрде нәтиже
береді. 2-ші ярустың операциялар аргументтері болып не кіріс мәліметтері,
не 1-ші ярус операцияларының орындалу нәтижелері табылады. Осы
айтылғанға сәйкес, бұлардың бәрі операциялардың
орындалу уақытына
тәуелді болмайды. Сондықтан 2-ші ярустың операциялары да осы
операциялардың нақты орындалған уақытына тәуелсіз түрдегі нәтижелер
береді. Ярустарды бойлай осы дәлелдемені жалғастыра отырып, бекітілімнің
дұрыстығына кӛз жеткіземіз.
Тізбекті тілде жазылған бағдарламалар арқылы беріліп отырған
операциялар орындалуының тізбегі операциялар
жиынтығында сызықтық
реттілікті анықтайды. Әрине, ол жоғарыда айтылған жартылай реттілікті де
сақтайды. Бірақ жалпы алғанда, операциялар жиынтығында тура сол
жартылай реттілікті сақтайтын басқа да сызықтық реттіліктер болады. 1.2.2
бекітіліміне сәйкес, олардың барлығы да бірдей нәтиже береді.
Бұдан
шығатын
қорытынды,
алгоритмді
беру
кезінде
операциялардың
орындалуының тізбекті ретін бекіту жалпы айтқанда, артық әрекет болып
табылады. Алгоритм графын немесе оның қандай да бір қатаң параллельдік
түрін, ең жақсысы канондық түрін беріп отыру әлдеқайда «үнемдірек». Оның
үстіне, параллельді есептеу жүйелерінде алгоритмдерді орындау үшін дәл
осындай ақпарат керек. Алайда, кәдімгі қарапайым компьютерлердің
қолданыста болып жүрген ұзақ жылдарының
ішінде тізбекті тілдерде
дайындалған қолданбалы бағдарламалық қамтаманың сан түрі жинақталып
қалғаны соншалық, оны қолдан кӛшіріп отыру туралы айтудың ӛзі қажеті
жоқ. Сондықтан да алгоритдер жазбасын тізбекті «артықшылықтардан»
тазартуға кӛмектесетін құрал-саймандар жүйесін құрып,
дамыту қажет, ал
бұл сайып келгенде, алгоритм графын құруға және оның параллельді
түрлерін табуға ұласады. Бұдан әрі қарай кӛретініміздей, бұл оңай жұмыс
емес.
Біздің
ойымызша, алгоритм графы - сол алгоритм жазбаларындағы
құрастырушы идеясының ең негізгі ядросын бейнелейді. Алгоритм
құрастырушы сол ядроны білуі мүмкін. Алгоритмді сипаттау тілі берілген
ядроны сапалы бейнелеуге мүмкіндік бермегендіктен, ол оны түрлендіріп
жіберуге мәжбүр болуы да әбден мүмкін. Бірақ, тәжірибе кӛрсетіп
отырғандай, басым кӛп жағдайларда алгоритмнің бұл ядросы құрастырушыға
белгісіз. Оның үстіне, әдетте, ол оның бар екендігі туралы ойламайды да.
Егер
алгоритм графын, алгоритмнің жай ядросы ғана емес, сондай-ақ оның
ақпараттық ядросы екендігін назарға алар болсақ, барлығы түсінікті болады.
Бұдан біраз уақыт бұрын ғана алгоритмдердің жүзеге асуында ақпарат қалай
таратылатыны туралы білім тәжірибелік құндылыққа ие емес еді. Осы
себепті де оны алуға деген айтарлықтай ұмтылыстың болмағаны таң
қалдырмайды. Параллельді есептеу жүйелерінің пайда болуы осы білімдерді
аса үлкен қажеттілікке айналдырды. Міне, сол үшін де олар дами бастады.