Главная » Просмотр файлов » Спец часть (часть 2) (3 поток) (2015) (by Кибитова)

Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602), страница 34

Файл №1161602 Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (Ответы на спец часть) 34 страницаСпец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602) страница 342019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 34)

передачи параметров и вызовов функций проводится на основе ОптимизацияОптимизацияпередачи параметровпараметров ии вызововвызовов функцийфункций проводитсяпроводится нана основеосновеОптимизацияпередачидвухподходов:прямойподстановкителфункцийвосновнойтекстпрограммыдвух подходов:подходов: прямойпрямой подстановкиподстановки телтел функцийфункций вв основнойосновной тексттекст программыпрограммы ииидвухпередачипараметровнеспомощьюобщегостековогомеханизма,ачерезглобальныепередачи параметровпараметров нене сс помощьюпомощью общегообщего стековогостекового механизма,механизма, аа черезчерез глобальныеглобальныепередачипеременные,которыевпоследствиисвязываютсясс регистрамицентральныхпеременные,которыевпоследствиисвязываютсярегистрамицентральныхпеременные, которые впоследствии связываются с регистрами центральныхпроцессоров.процессоров.процессоров.

454545Для вычислительныхмашин с векторной архитектурой оптимизация цикловподстановкой(inline).становитсямашинно-зависимой.Например,некоторыхотноситсявекторныхархитектурПередачапараметров черезрегистрыдляпроцессорак машиннозависимойоптимизации.Отказ программыот универсальногостековогомеханизмавснижение временивыполненияиногда можнополучить,не проводяопределенныхслучаях можетприводитьк значительномуснижениювремениработывынесение вычисленийиз циклов,а вносяих туда: в такихархитектурахоказываетсяпрограммы,передача повторныепараметроввычислениячерез регистрызависит отколичествадоступныхэффективнеенопровестис помощьювекторныхрегистров,чемПрямаяподстановкафункцийвосновнойциклпрограммыможетпривестиподстановкафункцийвосновнойциклпрограммыможетпривестирегистровввычислительнойсистемеиотиспользуемоговкомпилятореалгоритмаихнарушать работу векторного конвейера выполнением операции со скалярнойкксущественному увеличениюувеличению скоростискорости работыработы программы,программы, ноно одновременноодновременно ии ккраспределения.переменной.увеличениюпрограммы(есливызываетсяизразныхразмеровпрограммы(если функцияфункциявызываетсяизнесколькихразныхВажностьданногопостоянновозрастаетс ростомвозможностейЗаменаразмеровоперацийс методапеременнымициклапроизводитсяна несколькихосновепониманиямест).чтоЭтотметодприводиткк значениесокращениювременинапередачуметодприводитсокращениювременициклананедостатков.передачупараметроввычислительнойаппаратуры,но методимеет переменнойряд выраженныхВо-первых,того,с каждымшагомцикламеняется параметровнаодин “шагиивозвращаемогорезультата,накомандыпередачиуправления,захватапамятивв стекерезультата,на командыуправления,захватапамятимашины.стеке иионсильнозависиталгоритмыот особенностейконкретнойвычислительнойцикла”.Многиеустроенытак,передачичто вархитектурыходевычисленийнекоторыевеличиныдругиеоперации.Некоторыеязыки(Си++)разрешаютдругие вспомогательныевспомогательныеоперации.Некоторыеязыки(Си++)разрешаютВо-вторых,процедуры,оптимизированныетакимобразом,не могутвключатьсявоказываютсяпропорциональныминомеруитерации.Приэтомв программахпрограммистамявноуказыватьфункции,которыежелательнореализоватьпрограммистамявнопосколькууказыватьфункции,которые переменнойжелательнореализоватьобщиебиблиотеки,используютнестандартныйметод цикла.полученияпроизводитсяумножениеэтих величинна значениеТакиеподстановкой(inline).подстановкой(inline).параметров.В-третьих,использоватьметоднеудается,есливтелефункциипеременные называются индуктивными.

Все такие переменные заменяются Передачачерезрегистрыпроцессораотноситсякк машинноПередачапараметровчерезрегистрыпроцессораотноситсямашинноиспользуютсяоперацииадресовпараметров.компиляторомна параметроводну,вычислениязначениядругихвычисляютсяс помощьюкоэффициентов.зависимойоптимизации.Отказотуниверсальногостековогомеханизмазависимойоптимизации.Отказот универсальногостековогомеханизмаВ некоторыхязыках программированияпрограммисты имеютвозможностьявно ввНапример,последовательностьоператоровопределенныхможетприводитькк значительномуснижениюработыуказывать,какиеслучаяхпеременныеразмещатьна регистрах(в Си++времени– с помощьюопределенныхслучаяхможетследуетприводитьзначительномуснижениювремениработыS=10;for(i=0;i<N;i++)A[i]=i*S;программы,нопараметровчереззависитотдоступныхключевогоregister).Подобныеуказанияимеютдля компиляторовпрограммы,словано передачапередачапараметровчерез регистрырегистрызависитот количестваколичествадоступныхрегистровв вычислительнойии отвв компилятореалгоритмарекомендательныйхарактер, носистемечасто помогаютполучить хорошооптимизированныерегистроввычислительнойсистемеот используемогоиспользуемогокомпилятореалгоритма ихихможетбытьвзамененапоследовательностьюоперацийраспределения.программы.распределения.

ВажностьметодавозможностейS = 10; Tданного= 0; for(i= 0; iЦиклом<постоянно10; i ++) вT =возрастаетTпрограмме+ S, A [i] с=с T;ростомОптимизацияциклов.называетсялюбаяВажностьданногометодапостоянновозрастаетростомвозможностейвычислительнойаппаратуры,метод имеетрядвыраженныхнедостатков. повторно.Во-первых,последовательностьучастковBнопрограммы,может выполнятьсявычислительнойноимееткотораярядвыраженныхВо-первых,приусловии,чтоаппаратуры,значения, методC тожеи limitнепотребоватьизменяютсявнедостатков.теле цикла.При этомВычислениезначенияA[i]можетиндуктивнойпеременной,онсильнозависитотособенностейконкретнойархитектурывычислительноймашины.Циклынеобязательнодолжныоформлятьсяспомощьюоператоровцикла,ичтобыихонсильнозависитотособенностейконкретнойархитектурывычислительноймашины.умножениеB*C будетвыполненотолько одинраз,наа не10, как приводитьв исходномкварианте.таккакизменениезначенияпеременнойцикла1можетизменениюВо-вторых,процедуры,оптимизированныетакимобразом,немогутвключатьсяобнаружить,используетсяуправленияпрограммы.Обычно нециклысодержатвцикловсебе ввВо-вторых,процедуры, графоптимизированныетакимархитектуройобразом,могутвключатьсяДлявычислительныхмашинс векторнойоптимизацияадресаэлементамассиванавеличинуsizeof(A[0]),значит,&A[i]общиепосколькуиспользуютнестандартныйметодполученияодинили библиотеки,болеелинейныхучастков,Например,гдепроизводятсявычисления,поэтомудля них≡общиебиблиотеки,посколькуиспользуютнестандартныйметод архитектурполучениястановитсямашинно-зависимой.длянекоторыхвекторныхA+sizeof(A[0])*i.параметров.В-третьих,использоватьметоднеесливв телефункциимогутприменятьсявсеметодыоптимизацииучастков.Дляоптимизациипараметров.В-третьих,использоватьметодлинейныхне удается,удается,еслителефункцииснижениевременивыполненияпрограммыиногдаможнополучить,не операциипроводяВтехвычислительныхсистемах,вкоторыхвремявыполненияиспользуютсяоперациивычисленияадресовпараметров.цикловразработаныиспециальныеметоды:используютсяоперациивычисленияадресовпараметров.вынесение вычисленийизциклов,а внося их сложения,туда: в такихархитектурахоказываетсяумноженияпревышаетвремявыполненияудаетсядобитьсянемалогоВнекоторыхязыкахпрограммированияпрограммистыимеютвозможностьявноВнекоторыхязыкахпрограммированияпрограммистыимеютвозможностьявноэффективнеепровестиповторныевычисленияспомощьювекторныхрегистров,чем•вынесениеинвариантныхвычисленийизтелацикла,эффекта.Иногдаоказываетсявозможнымотказатьсяотпеременнойцикла,каквуказывать,какиепеременныеследуетразмещатьнарегистрах(вСи++–спомощьюуказывать,какиепеременныеследуетразмещатьнарегистрах(вСи++–спомощьюнарушатьработувекторногоконвейеравыполнениемоперациисоскалярной•заменаоперацийспеременнымицикла,следующемпримере:register).

Подобные указания имеют для компиляторовключевогоключевого словаслова register). Подобные указания имеют для компиляторовпеременной.•слияние,расщеплениеи развертываниециклов. рекомендательныйхарактер,получитьрекомендательныйхарактер,ноN;часточастопомогаютполучитьхорошооптимизированныеS = 10;for(i = 0;i <ноi ++) помогаютR= циклаR + F (S),S = S +хорошо10; на оптимизированныеЗаменаоперацийс переменнымипроизводитсяосновепониманияпрограммы.программы.Вынесениеинвариантныхиз тела цикласводитсяк вынесениюзатого,что с каждымшагом циклавычисленийзначение переменнойцикламеняетсяна один “шагОптимизацияциклов.ЦикломвпрограмменазываетсялюбаяВэтомпримередвеиндуктивныепеременные,нопеременнуюцикламожнопределыциклатехалгоритмыопераций,операндыЦикломкоторыхизменяютсяв процессевыполненияциклов.входепрограмменазываетсялюбаяцикла”.ОптимизацияМногиеустроенытак,что вневычисленийнекоторыевеличиныпоследовательностьучастковпрограммы,котораяможетвыполнятьсяповторно.простоисключить:цикла.Например,цикл участков программы,последовательностьможетповторно.оказываютсяпропорциональныминомеру котораяитерации.При выполнятьсяэтом в программахЦиклынеобязательнодолжныоформлятьсясс помощьюоператоровцикла,ии чтобыихЦиклынеобязательнодолжныоформлятьсяпомощьюоператоровцикла,ихпроизводитсяумножениеэтихвеличиннаM)значениепеременнойцикла.чтобыТакиеS=10;M=S+N*10;while(S<=R=R+F(S),S=S+10;for(i=0;i<limit–2:i++)A[i]=B*C*A[i];обнаружить,используетсяграфуправленияпрограммы.Обычноциклысодержатвсебеобнаружить, используетсяуправления программы.Обычноциклы содержатв себепеременныеназываются графиндуктивными.Все такиепеременныезаменяютсяодинилиболеелинейныхучастков,гдепроизводятсявычисления,поэтомудляодин бытьилиболееучастков,гдеоперацийпроизводятсявычисления,поэтомудля нихнихТакимпреобразованиемза счетвведениядополнительнойпеременнойM удалоськомпиляторомналинейныходну,значениядругихвычисляютсяс помощьюкоэффициентов.можетзамененпоследовательностьюмогутприменятьсявсеметодыоптимизациилинейныхучастков.Дляоптимизациимогут применятьсявсеметодыоптимизацииучастков.

Для оптимизацииисключитьNпоследовательностьоперацийсложениядляпеременнойлинейныхi.Например,операторовD и= Bииразвертывание*специальныеC; k = limit –методы:2; циклов – это два различных варианта цикловразработаныцикловСлияниеразработаныспециальныеметоды:i ++)A [i]=D*i *AS;[i];S = 10;forfor(i (i= =0;двух0;i <i <k:смежныхN;i ++)Aили[i]=преобразований:слияниявложенныхциклов в один и замена цикла•• вынесениевынесение инвариантныхинвариантных вычисленийвычислений изиз телатела цикла,цикла,напоследовательностьопераций(часто линейную).Слияние смежных циклов сможетбытьзамененапоследовательностьюопераций•• заменаоперацийсс переменнымизаменаоперацийпеременными цикла,цикла,независимымивнутреннимиоператорамиS1 и S2 позволяетснизить накладные расходы•• слияние,расщеплениеии развертываниециклов.слияние,расщеплениеразвертываниециклов.46S=10;T=0;for(i=0;i<10;i++)T=T+S,A[i]= T;на организацию циклической работы: ВынесениеинвариантныхвычисленийизтелацикласводитсяквынесениюзаВынесениевычисленийтела циклаиндуктивнойсводится к вынесениюзазначениятоже может изпотребоватьпеременной,forВычисление(iцикла= 0; i тех< n;инвариантныхi ++) { S1 A[i]}операндыпределыопераций,которыхнеизменяютсявпроцессевыполненияпределыцикла тех операций,операнды которыхизменяютсяпроцессетаккак изменениезначения переменнойцикла ненаfor1 может; S2 }(i = 0; iприводить<вn;i ++) {кSвыполнения1изменениюцикла.Например,циклцикла.Например,цикладресаfor (iэлемента= 0; i < n; iмассива++) { S2 }на величину sizeof (A[0]), значит, &A[i] ≡forA+sizeof(A[0])*i.for (i(i == 0;0; ii << limitlimit –– 2:2: ii ++)++) AA [i][i] == BB ** CC ** AA [i];[i];47В тех вычислительных системах, в которых время выполнения операцииможетпоследовательностьюоперацийможет бытьбыть заменензамененпоследовательностьюоперацийумноженияпревышаетвремя выполнениясложения, удается добиться немалогоэффекта.

ИногдаDоказываетсявозможным отказаться от переменной цикла, как вD == BB ** C;C; kk == limitlimit –– 2;2;следующем примере:forfor (i(i == 0;0; ii << k:k: ii ++)++) AA [i][i] == DD ** AA [i];[i];S = 10; for (i = 0; i < N; i ++) R = R + F (S), S = S + 10;В этом примере две индуктивные 46переменные, но переменную цикла можно46просто исключить:S = 10; M = S + N * 10; while (S <= M) R = R + F (S), S = S + 10;распараллеливаниявыполненияопераций:проверокусловий завершенияцикла,а также создать предпосылки для последующегораспараллеливания выполнения операций:следующимПолучая forна (i входfor (i = фазам0; i < n; iкомпиляции.++)= 0; i <исходнуюn; i += 2) программу какпоследовательностьсимволовязыкадолженB i[i]* C [i]; } входного forAn;[i]=B* C [i];для циклов,for(i{ =A0;[i]цикловi <= n;++)(i = 0;(“цепочку”),i{<можноi +=2)[i]компиляторЗаменупоследовательностямиоперацийвыполнятьA[i+1]=B[i+1]*C[i+1];} попроверить,принадлежитлионавходномуязыку,атакжеопределитьправила,{A[i]=B[i]*C[i];}{A[i]=B[i]*C[i];кратность которых известна уже на стадии компиляции.A [i+1]=частоB [i+1]* C [i+1];} цикланакоторымэта последовательностьстроилась.АнализподразделяетсяРасщеплениецикла может оказатьсяполезнымв случаеналичияв телеКажущиеся правильными преобразования не всегда ведут к построениюлексический,синтаксический и семантический анализ.условныхоператоров:Кажущиесяправильнымипреобразованияне всегда ведут к построениюэквивалентнойпрограммы.Например,циклЛексическийанализатор(сканер).Основнаязадача лексического анализатора –эквивалентнойпрограммы.for (i = 0; i <n; i ++) Например, циклif (x < y)просмотреть весь текстисходнойпрограммыивыделитьв немfor (i = 1; i < 100; i ++) { … A = i * B; …} лексемы (минимальные{ if (x < fory) (i {= S1;1;i}< 100; i ++) { … A = i *for(i}= 0; i < n; i ++) { S1; }B;…лексические единицы или элементы текста программы, обладающие смыслом в рамкахelse{ S2;к}виду:}else for (i = 0; i < n; i ++) { S2; }может бытьпреобразованданногоязыка).В обычныхязыках программирования лексемами являютсячисламожет быть преобразован к виду:(десятичныецелые,вещественные),идентификаторы,служебныеслова,разделители.Развертываниеслучаяхуменьшить числоfor цикла(i = 1; iпозволяет< 100; i ++)в {определенных… A = A + B; …}for(i=1;i<100;i++){…A=A+B;…}Задачейлексическогоанализатораявляетсязаменаразнообразныхтекстапроверок условий завершения цикла, а также создать предпосылки дляэлементовпоследующегооднако этопреобразованиебудетправильнымтолько для целочисленныхпеременныхстандартновыглядящимилексемами,которые в дальнейшембудет легче обрабатыватьраспараллеливаниявыполненияопераций:однако это преобразование будет правильным только для целочисленных переменныхAиB.Есливтелециклаиспользованывещественныепеременные,то при ихв других частях компилятора.

Характеристики

Тип файла
PDF-файл
Размер
8,18 Mb
Высшее учебное заведение

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее