Нағыз тәуелділік және тәуелділікке қарсылық S1 және S2 мәлімдемелері берілген,
S1;
S2;
S2 S1-ге шынайы (ағынды) тәуелділікке ие
егер және тек егер
S2 S1 арқылы жазылған мәнді оқиды
S2 S1-ге қарсы тәуелділікке ие
егер және тек егер
S2 S1 оқитын мәнді жазады
Шығысқа тәуелділік S1 және S2 мәлімдемелері берілген,
S1;
S2;
S2 шығысында S1-ге тәуелді
егер және тек егер
S2 S1 арқылы жазылған айнымалыны жазады
Анти- және шығыс тәуелділіктер «атауға» тәуелділіктер болып табылады
Олар «шын» тәуелділіктер ме?
Шығаруға тәуелділіктен қалай құтылуға болады?
Сіз жасай алмайтын жағдайлар бар ма?
13. Параллельді басқару үлгілерін (Parallel Control Patterns) сипаттаңыз және мысал келтіріңіз 13) Параллельді үлгілер: сұрақтарды бөлудің циклдік комбинациясы белгілі бір мәселе бойынша синхронды әдісті зерттеудің болуын шешетін ақпаратқа рұқсат беру болып табылады.
Параллельді үлгілердің түрлері: -Nesting Pattern;
-Сериялық/параллельді деректерді басқару үлгілері (Serial Controll Patterns);
-Параллеьді басқару үлгілері (Parallel Control Patterns);
-Басқа үлгілер;
-Үлгілерді бағдарламалау моделі.
Соның ішінде Параллеьді басқару үлгілері (Parallel Control Patterns). Параллеьді басқару үлгілері негізінен сериялық басқару үлгілерін кеңейтеді. Синхронды басқарудың кез келген нысаны бір ауыспалы басқару модификациясының соңғы жағына сәйкес пайдаланылады, алайда ауыспалы басқару модификацияларының рұқсаттарын жарамсыз етеді. Яғни параллельді басқару үлгісі кем дегенде бір сериялық басқару үлгісіне қатысты болады.
Параллеьді басқару үлгілеріне: Fork-Join, карта(map), трафарет(stencil), азайту(reduction), сканерлеу(scan), қайталау(recurence) жатады.
Параллеьді басқару үлгісі: Fork-Join. Біріктіру: басқару ағынын синхронды ағындар сериясына бөлуге, бірақ кейінірек қайта қосуға мүмкіндік береді.Cilk Plus осы кескіндеу сызығын да синхрондауды жасай алады.. Шақыру ағашы шақырудың синхронды журналы болып саналады және шақырудың орнына функциялар көрсетіледі. Басқа функцияға сұрауды іске қосатын функцияны тоқтатпайды.
Параллеьді басқару үлгісі: карта. Карта: кез келген құрастыру құрамдас бөлігінің мақсаты бойынша функцияны орындайды. Схема дәйекті итерация үлгісін қайталайды, бұл жерде кез келген цикл басқалардан тәуелсіз, итерациялар саны алдын ала анықталған, бірақ есептеу тек қайталанулар санына және кіріс жиынындағы ақпаратқа байланысты болады. Бұл жерде Циклдік рөл «элемент функциясы» деп аталады.
Параллеьді басқару үлгісі: трафарет.Трафарет(stencil) компоненттің рөлі «көршілер» жиынтығына келеді, шаблон карта ойынының жалпы көрінісі болып табылады. Жиі итерациямен араласады - циклдік еріткіштермен немесе кезеңнің өтуімен тұжырымдаманы зерттеу үшін қолданылады. Бұл жерде стандартты шарттар мұқият өңделуі керек.
Параллеьді басқару үлгісі: азайту. Азайту кез келген құрамдас бөлікті «комбайнер функцияларын» байланыстыруға қолдау көрсететін жинаққа қосады. Агрегация функциясының ассоциативтілігіне байланысты азайтудың әртүрлі реттері мүмкін болады. Комбинаторлық функциялардың мысалдары: қосу, көбейту, ең үлкен сан, кем дегенде тұрақты сондай-ақ, немесе сонымен қатар XOR жатады.
Параллеьді басқару үлгісі: сканерлеу(scan). Сканерлеу: жиынның барлық жарты бөліктерін есептейді. Жинақтағы кез келген шығыстың мақсатымен осы кезеңге дейінгі кірістің азаюы есептеледі. Қолданылатын рөл қосылатын болып есептелетін жағдайда, тануды параллельдеуге болады. Параллельді сканерлеу сериялық нұсқаға қарағанда көбірек әрекеттерді қажет етеді.
Параллеьді басқару үлгісі: қайталау. Қайталау картаға ұқсас болып келеді, дегенмен құрамдастардың кіріс мәліметтері сипатында көрші құрамдастардың шығындарын қолдану мүмкіндігі бар. Итерацияларды есептеу үшін құрамдас бөліктерде бұрын есептелген шығындарды пайдалана отырып ойластырылуы үшін өз кезегінде итерация тізбегі болуы талап етіледі.