болатын алгоритмдерді тұрғызу. Себебі, осындай есептеу моделінде
алгоритмдердің іске асырылу уақытын биіктік анықтайды.
Шексіз параллельділік концепциясы параллель есептеу облысындағы
сол уақыттағы математикалық білімдер деңгейін кӛрсетеді. Оның ӛзіне тиісті
кемшіліктері де артықшылықтары да бар. Ал енді осының негізінде алынған
кейбір нәтижелерді қарастырайық.
Бір есепті шешу үшін әртүрлі параллель күрделілігі болатын
алгоритмдерді қолдануға болады. Олардың ішінде биіктігі ең кіші
алгоритмдер де болуы мүмкін. Биіктігі тӛмен алгоритмдерді құрастыруда
үлкен роль атқаратын идея кӛрініп тұратын а
1
, а
2
, ..., a
n
, сандарының
кӛбейтіндісін есептеу мысалын қарастырып кӛрейік.
n = 8 болсын. Тізбекті кӛбейту процесін іске асыратын дәстүрлі схема
келесі түрде болады:
Деректер а
1
а
2
а
3
а
4
a
5
а
6
а
7
a
8
1-ші ярус а
1
а
2
2-ші ярус (a
1
a
2
)a
3
3-ші ярус (а
1
а
2
а
3
) а
4
4-ші ярус (а
1
а
2
а
3
а
4
) a
5
119
5-ші ярус (а
1
а
2
а
3
а
4
а
5
) а
6
6-ші ярус (а
1
а
2
а
3
а
4
a
5
а
6
) а
7
7-ші ярус (а
1
а
2
а
3
а
4
a
5
а
6
а
7
) a
8
Параллель форманың биіктігі 7-ге тең, ені 1-ге тең. Егер есептеу жүйесі
бірнеше процессордан тұратын болса, онда берілген есептеу схемасы
бойынша бір процессордан басқасының бәрі барлық қадамда тоқтап тұрады.
Сандарды кӛбейтуді есептеудің басқа алгоритмінің келесі параллель
формасы процессорларды тиімдірек пайдаланады:
Деректер а
1
а
2
а
3
а
4
a
5
а
6
а
7
a
8
1-ші ярус а
1
а
2
а
3
а
4
a
5
а
6
а
7
a
8
2-ші ярус (a
1
a
2
)(a
3
а
4
) (a
5
а
6
)(а
7
a
8
)
3-ші ярус (a
1
a
2
a
3
а
4
) (a
5
а
6
а
7
a
8
)
Параллель форманың биіктігі 3-ке, ені 4-ке тең. Биіктіктің айтарлықтай
тӛмендетілуі, процессорлардың пайдалы жұмыс атқаруға біршама толық
жүктелуінің әсерінен болды.
Соңғы схема п – нің кез-келген мәні үшін жалғасын табады. Оны іске
асыру үшін әрбір яруста, алдыңғы ярустан алынған қиылыспайтын сандар
жұптары кӛбейтінділерінің максималды мүмкін санын алу қажет. Жалпы
жағдайда параллель форманың биіктігі [log
2
n] тең. Бұл параллельдік форма
п/2 процессорларда іске асырылады, бірақ бұнда процессорлардың
жүктелінуі ярустан ярусқа кӛшкен сайын азаяды. Жасалған схема бойынша
әрбір яруста сандарды тұрғызу процесі екіеселену процесі деп аталады. Бұл
екіеселену процесінің кӛмегімен, сандарды кӛбейту операциясын кӛпқайтара
қолдану үшін ғана емес, сонымен қатар кез келген ассоциативті
операцияларды орындау үшін де (мысалы, сандарды қосу, матрицаларды
кӛбейту және т.б.) логарифмдік биіктігімен алгоритмдерді құрастыруға
болады. Назар аударатын болсақ, операцияларды тізбектей қолдану
алгоритмі және екіеселену алгоритмі - бұлар негізінде әртүрлі алгоритмдер
болып табылады. Бірақ әртүрлі алгоритм болғанымен ӛздерінің іске асуы
үшін бірдей операция санының орындалуын талап етеді. Оларға тек қана
әртүрлі процессорлар саны емес, сонымен қатар әртүрлі коммуникациялық
желі де қажет. Сонымен қатар бұл алгоритмдерге дӛңгелектеу қателіктерінің
әсері әр түрлі беріледі және бұл алгоритмдерге бағдарламалар әртүрде
жазылады. Жалпы жағдайда, оларда алгоритм графынан бастап бәрі әртүрлі
болып келеді. 36-суретте n=8 болғандағы екі граф келтірілген, жоғарғысы
операцияны тізбектей қолдану графы, тӛменгісі екіеселену қағидасы үшін
граф. Бастапқа түйіндер деректердің кірісін кӛрсетеді.
120
36 сурет. Тізбектелген және екіеселенген графтар.
Қарастырылған мысал әдістемелік жағынан ӛте маңызды бір қорытынды
шығаруға мүмкіндік береді.
Достарыңызбен бөлісу: |