Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Duisembiev-Parallel-esep.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
5.86 Mб
Скачать

37 Сурет. Матрицаларды көбейту графы

Алгоритм графы жеткілікті дәрежеде қарапайым тұрғызылған. Ол өз ара байланыспаған подграфтарға ыдырайды. Әрбір подграф к осіне паралллель орналасқан бір жолды көрсетеді және n төбеден тұрады. Күткеніміздей, (2.4) және (2.5) жазбаларындағы анық көрсетілген сол параллельділік осы графта да көрсетілген. Алгоритм графы n = 2 үшін 37, а суретте келтірілген. Толық графта мәліметтерді көптеп жіберу кездеседі.

bik элементтері координаталарының мәндері i, k болатын барлық төбелерге, ал сkj - координаталарының мәндері k, j болатын барлық төбелерге жіберіледі. n = 2 үшін бұл таратылым 37, б-суретте келтірілген. Графтың барлық төбелері a+bс түріндегі операцияларға сәйкес келеді. Бірақ k = 1 болғанда олар k ≠ 1 қарағанда бірсыпыра басқаша орындалады. Осы жағдайда а аргументі қандайда бір операцияның нәтижесі болмайды, ал әрқашанда 0-ге тең деп алынады. k = 1 болғанда 0-ді алгоритмнің кіріс дерегі деп алып, оны барлық төбелерге таратылуына еш кедергі болмайды.

Бұл мысал алгоритм графы төбелерін орналастырудың дұрыс тәсілін таңдаудың қаншалықты маңызды екенін жақсы көрсетеді. Егер, мысалы, төбелерді түзу сызық бойына орналастырса және олар (2.5)-гі i, j, к индекстерімен ешқандай байланыссыз болса, онда бұндай графта параллельділікті байқау сірә мүмкін емес те болар. Төбелердің таңдалған орналастырылуы бойынша паралллельділік айқын. Олай болса кезкелген паралллель форманың кезкелген ярусын (қабатын) жеңіл көрсетуге болады. Бұл дегеніміз бекітілген i, j кезінде бір төбеден артық кірмейтін төбелер жиыны. Канондық параллель форманың ярустары k = const гипержазықтығында жататын төбелер жиынын құрайды. Сондықтан, төбелерді орналастыру тәсілін алгоритмнің жазылуында пайдаланылатын индекстер жүйесімен байланыстыруға тура келетіні айқын. Берілген, яғни матрицаларды көбейту мысалы мұндай тәуелділікті анық көрсетіп тұр.

Егер (2.4) өрнегіндегі қосындыны екіеселену схемасы бойынша орындайтын болсақ, онда алгоритм графы мүлдем бөлек болатынын байқаймыз. Бұл жағдайда 37, а – суретіндегі графтың әрбір жолы, 36 - суреттегі төменгі графқа ауыстырылуы керек. Енді жаңа графты үш өлшемді кеңістікте орналастыру қиындау болады. Екіеселену қағидасын қолданып (бір индексті пайдаланып) қосындыны жазу да айтарлықтай қиыншылықтар туғызады.

2 мысал. Енді Аx=b түріндегі сызықты алгебралық теңдеулер жүйесін кері қою әдісі көмегімен шешу жолын қарастырайық. Мұндағы А реті n үшбұрышты анықтауышы нөлге тең емес квадрат матрица. aij, bi, xi арқылы сәйкесінше матрицаның элементтерін, жүйенің оң жағын және шешім-векторын белгілейміз. Түсінікті болу үшін А матрицасын диагоналдық элементтері 1-ге тең сол жақ үшбұрышты деп алайық. Онда

(2.6)

Қосу реті анықталмағандықтан, бұл өрнек те алгоритмді бірмәнді анықтамайды. Мысалға, j индексінің өсуіне қарай тізбекті қосуды қарастырайық. Сәйкес алгоритмді келесі түрде жазуға болады

(2.7)

Алгоритмнің ең негізгі операциясы a-bс түрінде берілген. Бұл барлық мүмкін болатын i, j индекстерінің мәндері үшін орындалады. Қалған операциялардың барлығы меншіктеуді орындайды. Мұнда да алгоритм графын тұрғызу кезінде операцияларды қарапайым қайта нөмірлеу тиімсіз екені көрінеді. Декарттық координат жүйесінде (i, j өстерімен) қадамы 1-ге тең болатын тікбұрышты координаталық торды тұрғызайық және тор тораптарына (түйіндеріне) a-bс операцияларына сәйкес келетін 2 ≤ in, 1 ≤ ji-1 үшін граф төбелерін орналастырайық. Операциялар арасындағы байланысты талдай отыра, алгоритм графын тұрғызамыз және оған кіріс aij және bi, деректерін білдіретін төбелерді енгіземіз. Бұл граф n=5 жағдайы үшін 38, а - суретте көрсетілген. Жоғарғы бұрыштағы төбе i=1, j=0 координаталы нүктесінде орналасқан.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]