Научная статья на тему 'Cooperative block-parallel algorithms for task execution on multi-core system'

Cooperative block-parallel algorithms for task execution on multi-core system Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
69
32
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КААПЕРАТЫўНЫЯ БЛОЧНА-ПАРАЛЕЛЬНЫЯ АРГАРЫТМЫ / РАШЭННЕ ЗАДАЧ / ШМАТ'ЯДРАВЫЯ СіСТЭМЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Prihozhy A., Karasik O.

The problem of balancing the computational load among the cores of a multicore system and increasing the efficiency of interaction among threads in a multithread application is considered. The cooperative blockparallel algorithms of solving complex tasks that can be decomposed into subtasks, which decrease the number of control transfers among threads, reduce the critical path length in a parallel implementation and increase the cores load are proposed.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Cooperative block-parallel algorithms for task execution on multi-core system»

УДК 681.3

ПРЫХОЖЫА. А., КАРАС1КА. М.

КААПЕРАТЫУНЫЯ БЛОЧНА-ПАРАЛЕЛЬНЫЯ АЛГАРЫТМЫ РАШЭННЯ ЗАДАЧ НА ШМАТ'ЯДРАВЫХ С1СТЭМАХ

Беларускг нацыянальны тэхнгчны ушверстэт

Разглядаецца праблема балансавання вылгчальнай нагрузю на ядрах шмат'ядравай сгстэмы г павышэння эфектыунасц узаемадзеяння патокау у шматпаточных праграмных прыкладанняу. Прапанаваны каапе-ратыуныя блочна-паралельныя алгарытмы рашэння складаных задач, ятя паддаюцца падзелу на частю. Яны памяншаюць колькасць перадач юравання памгж патокамг, скарачаюць даужыню крытычнага шляху у пара-лельнай рэалгзацыг, павышаюць загружанасць ядрау.

Увядзенне

Праблема распрацоую эфектыуных шматпаточных праграмных прыкладанняу для шмат'-ядравых сютэм з'яуляецца навукова актуальнай i практычна запатрабаванай у навукова-тэхшч-ных галiнах. Паралельнае шматпаточнае пра-грамаванне выконваецца для вырашэння мно-гiх задач, якiя маштабуюцца, напрыклад, зада-чы рашэння сютэмы лiнейных алгебраiчных раунанняу (СЛАР) [1]. Праграмаванне i выка-рыстанне шмат'ядравых сiстэм падтрымлiва-ецца аперацыйнымi сютэмам з выцясняючай i кааператыунай шматзадачнасцю. У працы [2] даследаваныя метады рэалiзадыi шматпаточных прыкладанняу на шмат'ядравых сютэмах, яюя кiруюцца аперацыйнай сютэмай з выцясняючай шматзадачнасцью. У працы [3] паказана, што выкарыстанне кааператыунай шматзадачнасщ з'яуляецца пераважнай у параунанш з выцясняючай шматзадачнасцю i што кааператыу-ная мадэль выканання патокау дазваляе атры-маць значнае паскарэнне на шмат'ядравай сю-тэме. У дадзеным артыкуле прапануюцца кааператыуныя блочна-паралельныя алгарытмы рашэння задач, яюя паддаюцца падзелу на част-кi, i праводзiцца эксперыментальнае супастау-ленне прапанаваных i вядомых алгарытмау па шырокаму спектру параметрау i залежнасцяу.

Блочна-паралельныя алгарытмы Гауса рашэння СЛАР

Метад Гауса вырашае СЛАР выгляду А х х = Ь, дзе А - лiчбавая матрыца памерам

М х М; х - вектар зменных памерам М; Ь - лiч-бавы вектар памерам М. Прамы ход прыво-дзiць матрыцу А да трохкутнаму выгляду. Зва-ротны ход знаходзiць значэння зменных х. Блочна-паралельныя алгарытмы Гауса [1] арыен-таваны на паралельную рэалiзацыю на шмат-працэсарных сiстэмах (мал. 1). Яны разбiваюць матрыцу А на блою А', ' = 0, ..., Т — 1 памерам N х М кожны, дзе N = М / Т, i разбiваюць век-тары х i Ь на блок х' i Ь' адпаведна памерам N. Алгарытм уключае у паток ', яю прымае значэннi ад 0 да Т - 1, радю г = 0 + ' х N, 1 + ' х N ... N - 1 + ' х N таюм чынам, што у паток 0 уваходзяць радкi 0, ..., N - 1, у паток 1 уваходзяць радкi N, ..., 2N - 1 i г. д. У якасщ актыунага радка алгарытм спачатку пасля-доуна выбiрае радкi патоку 0, затым радкi патоку 1 i г. д. да патоку Т - 1 (мал. 1 злева). Алгарытм ц,2 уключае у паток ' радкi г = ', Т + ', ..., N - 1) х Т + ' такiм чынам, што у паток 0 уваходзяць радкi 0, Т, ..., N - 1) х Т, у паток 1 уваходзяць радю 1, Т + 1, ..., ^ - 1) х Т + 1 i г. д. У якасщ актыунага радка алгарытм ц,2 спачатку паслядоуна вь^рае нулявыя радкi патокау 0, ..., Т - 1, затым першыя радю патокау 0, ..., Т - 1, i г. д. да радкоу з нумарамi N - 1 (мал. 1 справа).

На мал. 1 аперацыя К(', к) пералiчвае ак-тыуны радок V = ' х N + к матрыцы А у патоку ' па першым ненулявым элеменце з нумарам V у радку V: а^ = а^/а^ i Ьу = Ьч/а^ для у = V, ..., М - 1. Аперацыя П(МуТ, ', к, 7) пералiчвае па-сiуны радок V = МуТ х N + 7 матрыцы А у пато-

Ьг(р = 0; г < Т; 1++) { й>г(к = 0;к<К;к++) {

ЩшуМ) { ВД;

Ьг(<1Н;+1; с!<Т; с!++) 8ЕЖ>(Ус,<1); й)г(1=к+1; МЧ; 1++) П(1Д,кЛ); } Ыяе ЩтуГЧ) { КЕСЕ1УЕ(туТ,кД); £ог(1=0; МЧ; 1++) П(туТД,кД);

}}}

ц1

1Ьг(к = 0; к < К; к++) { й)г(р = 0; I < Т; г++) { ЩтуТ = 0{ К(Цс); 8ЕШ(1,к,а11); й>г0=к+1; КМ; \++) П(Ц,кД); } еке ЩтуТ<ф { ЯЕСЕ1УЕ(шуТ,к,0; й)г(Д=к+1; К1Ч; {++) П(туТД,кД); } еке ЩтуТ>ф { ЯЕСЕ1УЕ(шуТ,к,0; й)г(Д=к; К1Ч; {++) П(туТД,кД);

}}}

Малюнак 1. - Блочна-паралельныя алгарытмы i ц2 для аднаго патоку МуТ (прамы ход)

Малюнак 2. - Крою працы алгарытмау i ц2 на 8 радках, 4 патоках, 2 працэсарах (прамы ход)

ку t па актыунаму радку и = t х N + к: ау = ау -

ауи х ац1 1 К = К - ауи х Ьи дляУ = u, М- 1. Пра-

цаёмкасць аперацый К(t, k) 1 П(МуТ, t, k, /) лшейна меншае з павел1чэннем нумары актыу-нага патоку t \ нумары актыунага радка ^ як належыць патоку t. Як паказана у працы [2], выл1чальная нагрузка нераунамерная па патоках, прычым алгарытм дае больш нерауна-мернае размеркаванне у параунанш з алгарыт-мам ц2.

Пры выкананш, паток прызначаюцца на Р працэсарау, прычым адзш працэсар рэал1зуе Т/Р патокау. Для алгарытмау 1 ц2 мы выкарыс-тоуваем адно 1 тое ж прызначэнне: на працэсар ре {0, ..., Р - 1} прызначаюцца патою з нумара-м1 р,р + Р,р + 2Р, ..., (К- 1) х Р + р, дзе К = Т/Р. Такое прызначэнне згладжвае нераунамернае

размеркаванне выл1чальнай нагрузк па патоках. Мал. 2 шюструе крою працы алгарытмау 1 ц2 пры вырашэнш СЛАР з 8 радкоу, прыз-начаных на 4 патою, яюя выконваюцца на 2 працэсарах. Тут Т, - бягучы паток; К/ { П/ -аперацьи, яюя выконваюцца 1 выкарыстоува-юць радок /; Ск - радок, над якшм выконваюцца аперацьи.

Кааператыуны блочна-паралельны алгарытм ц1к

Асноуным прынцыпам пабудовы каапера-тыунага алгарытму [1] з'яуляецца мш1м1зацыя колькасщ перадач юравання пам1ж патокам1 на адным працэсары. Пры прызначэнш на адзш працэсар К патокау, мМмальная колькасць перадач юравання роуная К - 1. Гэты прынцып

Малюнак 3. - Кааператыуны блочна-паралельны алгарытм ц1к рашэння СЛАР (прамы ход)

добра спалучаецца з размеркаваннем радкоу па патоках у алгарытме ц1, дзякуючы якому паток t пасылае паведамленнi патокам h > t i ня пасылае паведамленш патокам h < t. Кааператыуны алгарытм будуецца таюм чы-нам, што кожны з патокау цалкам выконвае сваю працу, а затым перадае кiраванне наступ-наму патоку з большым нумарам, прызначана-му на той жа працэсар. Неабходнай умовай выканання работы патокам з'яуляецца наза-пашванне усiх радкоу ад iншых патокау, яюя папярэднiчаюць радкам дадзенага патоку. Па-токi на адным працэсары выконваюцца пасля-доуна, на розных працэсарах - паралельна.

Дыяграма высокаузроуневага аутамата, якая апiсвае паводзiны аднаго актыунага патоку t, што функцыянуе згодна з алгарытмам ц1к, вы-конваецца на працэсары p i узаемадзейшчае з iншымi патокамi, паказаная на мал. 3. Дыяграма уключае 8 станау, якiя функцыянуюць у 4 рэжымах: start, active, passive i finish. Стан 1-start iнiцыялiзуе паток t. Стан 2-active выконвае аперацьи над актыуным радком at. Станы 3-passive ... 7-passive выконваюць аперацыi над пасiуным радком ct, каэфiцыенты якога пе-ралiчваюцца па радку st. Стан 8-finish з'яуляецца канчатковым у патоку t.

У пачатковым стане 1-start зменнай gt, якая прадстауляе на бягучы момант часу глабальна

актыуны радок, прысвойваецца пустое значэн-не -1. Далей, у наступных выпадках, радок gt генеруецца патокам t на працэсары p з дапамо-гай аперацыi К(р, t, k) або прымаецца ад ш-шага патоку, якi выконваецца на працэсары р або на шшых працэсарах. Зменнай a, (at > gt), якая вызначае радок, што павшен стаць на-ступным актыуным радком у патоку t, прысвойваецца найменшы у патоку t радок first(t). Зауважым, што радку at можа спатрэбiцца пэу-ны час каб стаць актыуным, паколью яму можа спатрэбiцца пералiк ад шшых папярэд-нiх радкоу з шшых патокау, яюя стануць ак-тыунымi да таго як актыуным стане радок a. Першым пасiуным радком ct патоку t з'яуляецца пачатковы радок first(t). Калi паток t утрымлiвае радок з нулявым нумарам (у гэтым выпадку выконваецца прэдыкат contain(t, 0)), зменнай f4 прысвойваецца значэнне true, а зменнай st прысвойваецца пустое значэнне -1, пас-ля чаго выконваецца пераход аутамата у стан 2-active. У адваротным выпадку зменнай f4 прысвойваецца значэнне false, зменнай st прысвойваецца значэнне 0, а аутамат пераходзщь у стан 7-passive.

У стане 2-active радок at нармалiзуецца аперацыяй К^, t, at) i пасылаецца iншым патокам з мэтай пералжу прызначаных на iх радкоу. У якасщ новага at выбiраецца наступны

Малюнак 4. - Функцыя вылiчэння вектара NTF патокау, якiм перадаецца KipaBaHHe пасля выканання аперацып

K(p, t, at)

радок, уключаны у t, яю становщца таксама пас1уна перал1чваемым радком с. Нумары гла-бальна актыунага радка gt i радка st павял1ч-ваюцца на 1, а наступным актыуным патокам tnext на працэсары p становiцца паток NTF1(at). Аператар resume(tnext) аднауляе паток tnext калi гэта непусты паток, а аператар suspend(t) пры-пыняе паток t. Калi радок at з'яуляецца пустым Л, то зменнай f3 прысвойваецца значэн-не true, а аутамат пеpаходзiць у канчатковы стан 8-finish, у адваротным выпадку аутамат пера-ходзiць у стан 3-passive. Функцыя NextThreadF вылiчэння нумароу патокау NTF прадстаулена на мал. 4. Для СЛАР з 8 радкоу, прызначаных на 4 патою, што выконваюцца на 2 працэса-рах, вектар NTF1 = {0, 2, 1, 3, 2, -1, 3, -1} вььичаецца выклжам функцьи з паpаметpамi Th = {0, 0, 1, 1, 2, 2, 3, 3} i Pr = {0, 1, 0, 1}. Элемент Tht вектара Th ёсць нумар патоку, яю змяшчае радок i, а элемент Prt вектара Pr ёсць нумар працэсара, на яюм выконваецца паток t. Першы элемент 0 на вектары NTF1 азначае, што пасля наpмалiзацыi радка 0 на працэсары

0 юраванне застаецца у патоку 0, а друп элемент 2 азначае, што пасля наpмалiзацыi радка

1 юраванне перадаецца патоку 2 на тым жа працэсары 0. Значэнне -1 азначае завяршэнне вылiчэнняу на адпаведным працэсары.

У стане 3-passive булевай зменнай f1 прысвойваецца значэнне true, калi нумар радка st больш нумара глабальна актыунага радка gt, i аутамат пеpаходзiць у стан 7-passive з мэтай чакання прыёму радка st(gt) ад шшых патокау. Калi выконваецца роунасць st = gt, то радок st ужо з'яуляецца глабальна актыуным, зменнай f1 прысвойваецца значэнне false, i аутамат пе-pаходзiць у стан 4-passive. У стане 4-passive аперацыя n(p, t, st, ct) пеpалiчвае пасiуны радок ct па радку st, а наступны пеpалiчваемы радок вызначаецца аперацыяй succ(c). Калi гэта пусты радок Л, булева зменная f2 атpымлiвае

значэнне true, i аутамат пеpаходзiць у стан 5-passive. У адваротным выпадку аутамат вяр-таецца у стан 3-passive. У стане 5-passive, калi радок st з'яуляецца апошнiм, па якому пеpалiч-ваецца радок at, булева зменная f5 атpымлiвае значэнне false i аутамат пеpаходзiць у стан 2-active. У адваротным выпадку аутамат пера-ходзiць у стан 6-passive, дзе нумар радка st павялiчваецца на адзiнку i прысвойваецца нумары першага пеpалiчваемага радка ct, пры гэ-тым аутамат вяртаецца у стан 3-passive. У стане 7-passive паток t чакае з дапамогай аперата-ра receive(s) прыёму актыунага радка st ад ш-шага патоку. Пры прызначэнш патокау на адзiн працэсар, аперацыи пасылкi-пpыёму паведам-ленняу выконваюцца хутчэй, калi на розныя працэсары - больш павольна.

Асаблiвасцю працы алгарытму ц1к у па-сiуных станах 3-passive - 7-passive з'яуляецца паслядоуны перабор актыуных радкоу st, па-чынаючы з 0 i канчаючы at - 1 з мэтай пералжу пасiуных радкоу ад at да пустога радка Л.

Крою працы алгарытму ц1к на СЛАР па-мерам 8 х 8, вырашаемай 4 патокам^ выкан-ваемымi на 2 працэсарах, паказаны на мал. 5 злева. Колькасць крокау скаpацiлася на 1 у па-pаунаннi з алгарытмам ц1, пры гэтым, у адроз-ненне ад алгарытму ц1, якi выконвае 2 перада-чы кipавання памiж патокамi на працэсары ЛП0 i 7 перадач кipавання на працэсары ЛП1, алгарытм ц1к выконвае толью па адной пера-дачы юравання на кожным з працэсарау. Вы-сокаузроуневы аутамат, якi апiсвае паводзшы патоку пры зваротным ходзе па матрыцы A, будуецца аналагiчным чынам.

Кааператыуны блочна-паралельны алгарытм ц2к

Асноуным прынцыпам пабудовы каапера-тыунага алгарытму ц2к з'яуляецца мiнiмiза-цыя колькасщ пераходау ад пеpалiку каэфiцы-

Малюнак 5. - Крою працы алгарытмау ц1к i ц2к на 8 радках, 4 патоках, 2 працэсарах (прамы ход)

Малюнак 6. - Кааператыуны блочна-паралельны алгарытм ц2к рашэння СЛАР (прамы ход)

ентау аднаго радка да пералжу каэфщыентау шшага радка. Пры прызначэнш на адзш працэ-сар К патокау, яюя змяшчаюць сумесна £ = М/Р радкоу, мшьмальная колькасць пераходау роу-ная £ - 1. Гэтыя пераходы пам1ж радкам1 мо-гуць павял1чыць колькасць перадач юравання пам1ж патокам1 у параунанш з алгарытмам ц1к. Указаны прынцып добра спалучаецца з раз-меркаваннем радкоу па патоках у алгарытме ц2, дзякуючы якому выл1чэнш эфектыу на размяр-коуваюцца 1 распаралельваюцца на працэсарах. Алгарытм ц2к будуецца таюм чынам, што цалкам апрацоуваецца бягучы радок матрыцы

СЛАР, а затым выконваецца пераход да апра-цоук наступнага радка на дадзеным працэсары, з магчымай перадачай юравання шшаму патоку. Неабходнай умовай завяршэння пера-лжу бягучага радка з'яуляецца назапашванне ус1х папярэдшх радкоу, пералж якх завершаны.

Дыяграма высокаузроуневага аутамата, якая атсвае паводзшы алгарытму ц2к у патоку t на працэсары р, паказаная на мал. 6. Дыяграма уключае 6 станау, яюя функцыянуюць у 4 рэ-жымах: start, асНуе, passive {finish. У пачатко-вым стане глабальна актыуным радком

gt становщца пусты радок (з нумарам -1),

актыуным радком at становщца радок first(t), радком st, якi выкарыстоуваецца для пеpалiку шшых наступных радкоу, становiцца радок з нумарам 0. Пераход аутамата у наступны стан вызначаецца прэдыкатам contain(t, 0) i змен-най f4, прымаючай значэнне true, калi радок з нумарам 0 уключаны у паток t.

У стане 2-active радок at наpмалiзуецца аперацыяй К(^, t, at) i пасылаецца шшым пато-кам з мэтай пералшу радкоу з большымi нума-рам^ Новым значэннем at становiцца наступны радок, уключаны у паток t, а нумар гла-бальна актыунага радка gt павялiчваецца на 1. Значэннем st становiцца радок з нумарам 0. Наступны актыуны паток tnext на працэсары p выбipаецца аператарам NTF2(at) у залежнасщ ад нумара радка at. Паток tnext аднауляецца аператарам resume(tnext), калi гэта не пусты паток, а паток t прыпыняецца аператарам suspend(t). Пераход аутамата у наступны стан 3-passive або 8-finish вызначаецца булевай зменнай f3, якая прымае значэнне true, калi радок at з'яуляецца пустым (Л). Для разгляданага пры-кладу, вектар NTF2 = {2, 3, 0, 1, 2, 3, -1, -1} нумароу патокау, яюм перадаецца кipаванне пасля завяршэння апрацоую радкоу, вызначаецца у вынiку выклiку функцыi NextThreadF з паpаметpамi Th = {0, 1, 2, 3, 0, 1, 2, 3} i Pr = {0, 1, 0, 1}.

У стане 3-passive, калi st > gt, аутамат пера-ходзiць у стан 5-passive, калi ж st = gt, аутамат пеpаходзiць у стан 4-passive. У стане 4-passive аперацыя П(p, t, st, at) пеpалiчвае радок at па радку st. Нумар наступнага радка st, павялiч-ваецца на 1. Кат новы радок st супадае с радком at, пеpалiк радка at ад папяpэднiх радкоу скончаны i аутамат пеpаходзiць у стан 2-active. У адваротным выпадку ператк не скончаны, аутамат вяртаецца у стан 3-passive. У стане 5-passive, аутамат чакае радок st, ператчаны iншымi патокамi. У выпадку атрымання такога радка аператарам receive(st), аутамат вяртаецца у стан 3-passive.

Крою працы алгарытму ц,2к на СЛАР па-мерам 8 х 8, яю выконваецца 4 патокамi на 2 працэсарах, паказаны на мал. 5 справа. Коль-касць крокау скаpацiлася на 2 у параунанш з алгарытмам ц,1к, аднак, у адрозненне ад ц,1к, якi выконвае па 1-й перадачы кipавання памiж патокамi на кожным працэсары, алгарытм ц,2к выконвае больш, а менав^а, па 3 перадачы на

кожным працэсары. У той жа час, колькасць перадач значна скарацшася у паpаунаннi з алгарытмам ц.2, якi выконвае 7 перадач на ЛП0 i 9 перадач на ЛП1. Высокаузроуневы аутамат, якi ашсвае паводзiны патоку пры зваротным ходзе па матрыцы СЛАР, будуецца аналапч-ным чынам.

Эксперыментальнае даследаванне

кааператыуных блочна-паралельных алгарытмау

Найважнейшымi паpаметpамi шматпаточ-ных прыкладанняу з'яуляюцца: колькасць вы-конваемых макра аперацый К(^, t, at) i П(p, t, st, at); даужыня крытычнага шляху у лiку макра аперацый (CP); каэфщыент распаралель-вання, ацэньваны як агульная колькасць макра аперацый падзеленае на даужыню крытычнага шляху (Prl); сярэдняя загрузка працэсара (Ld%); сярэдняя колькасць паведамленняу памiж па-рай патокау (MbT); сярэдняя колькасць паведамленняу памiж парай працэсарау (MbP); ся-рэдняя колькасць паведамленняу унутры адна-го працэсара (MonP); сярэдняя колькасць перадач юравання памiж патокамi на адным працэсары (CTP).

Праведзены тры серый эксперыментау, якiя выяуляюць змену параметрау алгарытмау ц1, ц.2, ц,1к i ц,2к у залежнасцi ад: памеру матрыцы СЛАР, колькасщ патокау i колькасцi працэсарау. Вынiкi прадстаулены у табл. 1-6. Павелiчэнне радкоу СЛАР з 8 да 128 павялiч-вае лш макра аперацый з 72 да 16512 (табл. 1). Пры выкарыстанш 8 патокау i 4 працэсарау, даужыня крытычнага шляху павялiчваецца з 36 да 5676 для алгарытму i з 30 да 5670 для алгарытму ц,1к. Для алгарытмау ц,2 i ц,2к павелiчэнне склала з 36 да 4416, i з 30 да 4230 адпаведна. Як следства, каэфщыент распара-лельвання i загрузка працэсарау вышэй у ц,1к у паpаунаннi з на 0.1% - 20%, i вышэй у ц,2к у паpаунаннi з ц2 на 4.4% - 20%. Па гэ-тых параметрах ц,2к пеpаУзыходзiць ц,1к да 34%, прычым перавага узрастае з ростам па-меру СЛАР. Шк паведамленняу памiж парай патокау i унутры аднаго працэсара узрастае з ростам памеру СЛАР для уах алгарытмау (табл.2). Яно каля 2 разоу вышэй для ц,2 i ц,2к у паpаунаннi з i ц,1к. Лiк паведамленняу памiж парай працэсарау расце хутчэй для ц,2 i ц,2к, чым для i ц,1к. Шк перадач кipавання

Т а б л i ц а 1. Залежнасць параметрау СР, Рг1 i Ld ад колькасцi радкоу у матрыцы СЛАР для алгарытмау ц1,

ц2, ц1к i ц2к, 8 патокау i 4 працэсарау

Л1к радкоу СЛАР Л1к макра аперацый Алгарытмы / Параметры

ц! ц1к ц2к

СР Рг1 Ld% СР Рг1 Ld% СР Рг1 Ld% СР Рг1 Ld%

8 72 36 2.00 50.0 36 2.00 50.0 30 2.40 60.0 30 2.40 60.0

16 272 104 2.62 65.4 104 2.62 65.4 98 2.78 69.4 86 3.16 79.1

32 1056 372 2.84 71.0 336 3.14 78.6 366 2.89 72.1 294 3.59 89.8

64 4160 1436 2.90 72.4 1184 3.51 87.8 1430 2.91 72.7 1094 3.80 95.1

128 16512 5676 2.91 72.7 4416 3.74 93.5 5670 2.91 72.8 4230 3.90 97.6

Т а б л i ц а 2. Залежнасць параметрау МЬТ, МЬР, МопР i СТР ад колькасцi радкоу у матрыцы СЛАР для алгарытмау ц1, ц2, ц1к i ц2к, 8 патокау i 4 працэсарау

Л1к радкоу СЛАР Алгарытмы / Параметры

1 ц1к ц1к 1 ц2к ц2 ц2к

МЬТ МЬР МопР СТР СТР МЬТ МЬР МопР СТР СТР

8 1 3 2 8 2 1 3 2 8 2

16 2 6 4 18 2 3 6 6 50 6

32 4 12 8 38 2 7 15 14 230 14

64 8 24 16 78 2 15 31 30 974 30

128 16 48 32 158 2 31 63 62 3998 62

Т а б л i ц а 3. Залежнасць параметрау СР, Рг1 i Ld ад колькасщ патокау для алгарытмау ц1, ц2, ц1к i ц2к, 64 радкоу у матрыцы СЛАР (4160 макра аперацый) i 4 працэсарау

Л1к патокау Алгарытмы / Параметры

ц2 ц1к ц2к

СР Рг1 Ld% СР Рг1 Ld% СР Рг1 Ld% СР Рг1 Ld%

4 1814 2.29 57.3 1184 3.51 87.8 1814 2.29 57.3 1094 3.80 95.1

8 1436 2.90 72.4 1184 3.51 87.8 1430 2.91 72.7 1094 3.80 95.1

16 1256 3.31 82.8 1184 3.51 87.8 1238 3.36 84.0 1094 3.80 95.1

32 1184 3.51 87.8 1184 3.51 87.8 1142 3.64 91.1 1094 3.80 95.1

64 1184 3.51 87.8 1184 3.51 87.8 1094 3.80 95.1 1094 3.80 95.1

Т а б л i ц а 4. Залежнасць параметрау МЬТ, МЬР, МопР i СТР ад колькасщ патокау для алгарытмау ц1, ц2,

ц1к i ц2к, 64 радкоу у матрыцы СЛАР i 4 працэсарау

Л1к патокау Алгарытмы / Параметры

1 ц1к ц1к ц2 1 ц2к ц2 ц2к

МЬТ МЬР МопР СТР СТР МЬТ МЬР МопР СТР СТР

4 16 16 0 0 0 31 31 0 0 0

8 8 24 16 78 2 15 31 30 974 30

16 4 28 24 238 6 7 31 30 1006 30

32 2 30 28 510 14 3 31 30 1022 30

64 1 31 30 1030 30 1 31 30 1030 30

пам1ж патокам1 на адным працэсары застаецца сталым для ц1к, узрастае для ц2к, хутка узрас-тае для { яшчэ хутчэй для ц2.

Табл. 3, 4 паказваюць залежнасць параметрау прыкладання ад колькасщ патокау для 64 радкоу у СЛАР (4160 макра аперацый) 1 4 працэсарау. Для ц2 { ц2к даужыня крытычнага

шляху не залежыць ад колькасщ патокау, пры гэтым ц2к пераузыходзщь ц2 на 8.2%. Пры павел1чэнш колькасщ патокау з 4 да 64 кры-тычны шлях скарачаецца, а каэфщыент распа-ралельвання I загрузка працэсарау павял1чва-ецца на 53.2% для алгарытму { на 65.8% для алгарытму ц1к. Згодна з табл. 4, л1к паве-

Т а б л i ц а 5. Залежнасць СР, Рг1 i Ld ад колькасщ працэсарау для алгарытмау ц1, ц2, ц1к i ц2к, 64 радкоу у

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

матрыцы СЛАР (4160 макра аперацый) i 32 патокау

Л1к працэсарау Алгарытмы / Параметры

ц! ц1к ц2к

СР Рг1 Ld% СР Рг1 Ld% СР Рг1 Ld% СР Рг1 Ld%

1 4160 1.00 100.0 4160 1.00 100.0 4160 1.00 100.0 4160 1.00 100.0

2 2176 1.91 95.6 2176 1.91 95.6 2146 1.94 96.9 2114 1.97 98.4

4 1184 3.51 87.8 1184 3.51 87.8 1142 3.64 91.1 1094 3.80 95.1

8 688 6.05 75.6 688 6.05 75.6 646 6.44 80.5 590 7.05 88.1

16 440 9.45 59.1 440 9.45 59.1 410 10.15 63.4 350 11.89 74.3

32 316 13.16 41.1 316 13.16 41.1 316 13.16 41.1 254 16.38 51.2

Т а б л i ц а 6. Залежнасць МЬТ, МЬР, МопР i СТР ад колькасщ працэсарау для алгарытмау ц1, ц2, ц1к i ц2к,

64 радкоу у матрыцы СЛАР i 32 патокау

Л1к працэсарау Алгарытмы / Параметры

1 ц1к ц1к 1 ц2к ц2 ц2к

МЬТ МЬР МопР СТР СТР МЬТ МЬР МопР СТР СТР

1 2 0 124 2106 62 3 0 126 4154 126

2 2 62 60 1046 30 3 63 62 2070 62

4 2 30 28 510 14 3 31 30 1022 30

8 2 14 12 230 6 3 15 14 486 14

16 2 6 4 66 2 3 7 6 194 6

32 2 2 0 0 0 3 3 0 0 0

дамленняу пам1ж парай патокау памяншаецца з 16 да 1, л1к паведамленняу пам1ж парай працэсарау павял1чваецца з 16 да 31, а колькасць паведамленняу на адным працэсары павял1ч-ваецца з 0 да 30 для алгарытмау I ц1к. Для алгарытмау ц2 { ц2к, л1к паведамленняу пам1ж парай патокау памяншаецца з 31 да 1, а лш паведамленняу пам1ж парай працэсарау I па-м1ж патокам1 на адным працэсары нязменны I роуны 31 I 30 адпаведна. Л1к перадач упрау-ленняу пам1ж патокам1 на адным працэсары узрастае з 0 да 30 для ц1к, застаецца сталым I роуным 30 для ц2к, хутка узрастае з 0 да 1030 для 1 яшчэ хутчэй узрастае з 0 да 1030 для ц2.

Табл. 5, 6 паказваюць залежнасць парамет-рау шматпаточнага праграмнага прыкладання ад колькасщ працэсарау для 64 радкоу у СЛАР { 32 патокау. Для алгарытмау 1 ц2, пры па-вел1чэнш колькасщ працэсарау з 1 да 32 дау-жыня крытычнага шляху паменшылася з 4160 да 316, каэфщыент распаралельвання вырас з 1.0 да 13.16 I загрузка працэсарау паменшылася з 100% да 41.1%. Па гэтых параметрах алгарытм ц1к дау некалью лепшыя вынш. Самым лепшым аказауся алгарытм ц2к, як ска-ращу даужыню крытычнага шляху да 254 { па-вял1чыу каэфщыент распаралельвання да 16.38

(на 24.4%). Вщавочна, што л1к паведамленняу пам1ж парай патокау не залежыць ад колькасщ працэсарау. Дынамша змяншэння сярэдняй колькасщ паведамленняу пам1ж парай працэсарау I колькасщ паведамленняу на адным працэсары амаль аднолькавая для ус1х алгарытмау, з 62-63 да 2-3 1 з 124-126 да 0 адпаведна. Колькасць перадач упраулення пам1ж патокам1 на працэсары памяншаецца для ус1х алгарытмау з ростам колькасщ працэсарау, але у розным дыяпазоне. Менш за усё перадач у алгарытму ц1к (0-62), затым у алгарытму ц2к (0-126, каля 2 разоу больш). Алгарытмы { ц2 выкон-ваюць нашмат больш перадач, 0-2106 { 0-4154 адпаведна.

Заключэнне

Прапанаваныя кааператыуныя блочна-па-ралельныя алгарытмы ц1к { ц2к значна пера-узыходзяць вядомыя алгарытмы { ц2 па даужыш крытычнага шляху, каэфщыенту распаралельвання, загрузцы працэсарау I перада-чам юравання пам1ж патокам1 на працэсары. Параунанне кааператыуных алгарытмау ц1к { ц2к пам1ж сабой паказвае, што ц1к дае менш перадач юравання пам1ж патокам1, аднак ц2к дае больш каротю крытычны шлях { больш значную загрузку працэсарау.

Л1ТАРАТУРА

1. Корнеев, В. Д. Примеры параллельного программирования на МВС-1000 / В. Д. Корнеев // ИВМиМГ СО РАН [Электронный ресурс]: - Режим доступа: fo^://www2.sscc.ru/PuWikacii/Piimery_Prll/Primery.fom - Дата доступа: 07.04.2014.

2. Прихожий, А. А. Исследование методов реализации многопоточных приложений на многоядерных системах / А. А. Прихожий, О. Н. Карасик // Информатизация образования, 2014, № 1. - С. 43-62.

3. Прихожий, А. А. Кооперативная модель оптимизации выполнения потоков на многоядерной системе / А. А. Прихожий, О. Н. Карасик // Системный анализ и прикладная информатика, 2014, № 4. - С. 13-20.

Поступила 7.7.2015

Prihozhy A., Karasik O.

COOPERATIVE BLOCK-PARALLEL ALGORITHMS FOR TASK EXECUTION

ON MULTI-CORE SYSTEM

The problem of balancing the computational load among the cores of a multi-core system and increasing the efficiency of interaction among threads in a multi-thread application is considered. The cooperative block-parallel algorithms of solving complex tasks that can be decomposed into subtasks, which decrease the number of control transfers among threads, reduce the critical path length in a parallel implementation and increase the cores load are proposed.

i Надоели баннеры? Вы всегда можете отключить рекламу.