114
жалқы (единственна), яғни біреу ғана болып табылады.
Бірдей индекстері
бар шыңдар тобы – параллельді түрдің
ярусы деп, ал топтағы шыңдар саны –
ярустың ені деп аталады. Параллельді түрдегі ярустар саны – оның
биіктігі
деп, ал ярустардың максималды ені – оның
ені деп аталады. Минималды
биіктіктің параллельді түрі –
максималды деп аталады. Мұнда м
аксималды
сӛзі – осы параллельді түрде ярустарда белгілі бір мағынада шыңдардың
максималды саны бар дегенді білдіреді. Барлық канондық параллельді түрлер
максималды болып табылады.
Егер
i < j теңсіздігін
i ≤ j теңсіздігіне ауыстыратын болсақ, 4.1
бекітілімінің мазмұны ӛз күшінде қалатынын байқаймыз. Бірақ салдарлардың
ешқайсысы да орындалмайтын болады. Осы тәсілмен белгіленген граф-
жалпыланған параллельді түр деп аталады. Осыған сәйкес
жалпыланған
ярус, жалпыланған ярустың ені және т.б. ұғымдар енгізіледі.
Параллельді
түрлермен байланысты зерттеулерде жалпыланған параллельді түрлер қатаң
параллельді түрлер жиынын тұйықтаушы рӛлін атқарады.
Енді алгоритм «кәдімгі» немесе параллельді, синхронды компьютерде
жүзеге асырылуда делік. Оңай болу үшін барлық операциялар 1-ге тең бір
ғана уақыт мезетінде орындалсын. Барлық ӛзге уақыт ысыраптарын есепке
алмай-ақ, қалай аргументтері дайын болған кезден бастап, еш тоқтаусыз
операциялар бірден орындала бастайды деп есептейік. Алгоритм уақыттың
нӛлдік кезеңінде жүзеге аса бастайды деп пайымдаймыз.
Сонда әр
операцияға ӛзінің орындалып біткен кезеңіне тең индекс беруге болады. Егер
осы индекстерді сәйкес алгоритм графының шыңдарына ауыстырсақ, онда
оның қатаң параллельді түрін алатынымыз белгілі. Мұндағы ярус нӛмірі
ӛзіне сәйкес операциялардың орындалып бітіп жатқан уақыт кезеңін
білдіреді. Бір ярустың барлық операциялары бір-біріне тәуелсіз орындалып
жатады, ал бұл операциялар саны ярустың еніне сәйкес келеді. Параллель
түрдің биіктігі - алгоритм орындалуының ұзақтығы және т.б. болып
табылады. Алгоритмнің түрлі синхронды орындалуы және оның графының
түрлі қатаң параллельді түрлерінің арасындағы байланыс ӛте анық кӛрінеді.
Дербес жағдайда, егер алгоритм «кәдімгі»
компьютерде орындалып жатса,
онда бұған барлық ярустарының ені 1-ге тең болатын параллельді түр сәйкес
келеді. Бұл жағдайда параллельді түр
сызықтық деп аталып, граф
сызықты
реттелген делінеді.
Егер абсцисса ӛсін уақыт ӛсі деп есептеп, ал шыңдарын
операциялардың орындалып біткен уақытына сәйкес ордината ӛсіне қойып
отырсақ, алгоритм графының параллельді түрлерін қағазға түсіру ӛте
ыңғайлы. Егер синхронды немесе асинхронды кез келген нақты немесе
гиротетикалық компьютерге арналған тура осы сияқты сызба жүргізілсе,
онда осы айтылған пайымдауларда кӛп нәрсе ӛзгерусіз қалатыны анық. Тек
параллельді түрдің ярустары ғана мезгіл бойынша ӛзгеріске ұшырайды.
Алайда олар қаншалықты ӛзгергенімен, шыңдары мен шыңдарға сәйкес
доғаларды абсцисса ӛсіне параллель жылжыту арқылы оларды қашан да
операцияларды орындаудың бірлік уақытымен синхронды түріне
115
айналдыруға болады. Бұл үшін операциялар орындалуының тек аяқталған
кезеңін
ғана емес, сонымен қатар басталған кезеңін де белгілейміз.
Параллельді түрдің ярустарын келесі тәсілмен тұрғызамыз.
Кіру доғалары жоқ және орындалуының мезгілдік интервалының бос
емес қиылысуы бар операцияларына сәйкес келетін шыңдардың максималды
санын бірінші ярусқа біріктіреміз. Бұл шыңдар алдын ала бір-бірімен
ешқандай доғалармен байланыспаған. Алгоритм графынан бірінші ярус
шыңдары мен оларға қатысты доғаларды алып тастаймыз. Графтың қалған
бӛлігіне ұқсас келетін шыңдар тобын бӛлеміз де, оны параллель түрдің
екінші ярусы деп санайтын боламыз және т.б.
Сонымен, әртүрлі компьютерлерде бір ғана алгоритмнің түрлі жолмен
орындалуы және алгоритм графының әртүрлі параллельді түрлерінің
арасында белгілі бір ӛзара сәйкестік бар екені кӛрінеді. Алгоритм графы
және оның параллельді түрлерін біле отырып, алгоритмдегі параллельділік
қорының қаншалықты екенін және оны параллельді архитектуралы нақты бір
компьютерде қалай жақсы іске асыруға болатынын түсінуге болады. Міне,
сол себепті де біз алгоритм графының тұрғызылуына және оның параллельді
түрлерін табуға кӛп кӛңіл бӛлудеміз.
Әрі қарай, алгоритмнің
параллельді формасы, алгоритм ярустары,
алгоритмнің параллельді түрінің биіктігі туралы айта отырып, алгоритм
графының параллельді түрлеріне қатысты терминологияны алгоритмнің ӛзіне
де жиі қолданып отыратын боламыз. Алгоритмнің параллельді түрлерінің
минималды биіктігін -
алгоритм биіктігі деп атайтын боламыз және т.б.
Басқаша айтқанда, бірден алгоритмнің операцияларын-граф шыңдары деп, ал
операциялар арасындағы жартылай реттілік қатынастарын – иіндер (доғалар)
деп санайтын боламыз. Бұл негізінен ешқандай жаңа білім бермейді,
дегенмен «алгоритм графының шыңдарының мынадай жиынтығына сәйкес
келетін операциялар жиынтығы» деген сияқты кӛп құрамды ұзақ сӛздер
тізбегін алып тастау арқылы шытырман фразалардан құтылуға мүмкіндік
береді. Алгоритм графының қарапайым түрін түрлі-түсті
суреттер мен
сызбаларда қолданған әлдеқайда ыңғайлы.
Ал енді, компьютерде алгоритмнің қай параллельді түрі орындалып
жатқанына қарамастан, орындалу нәтижесі бәрібір бірдей болатынын
кӛрсетейік.
Достарыңызбен бөлісу: