Анализ и оптимизация на софтуерни приложения
|
|
- Радослава Колчагова
- преди 4 години
- Прегледи:
Препис
1 Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев
2 Съдържание Конвейерно изпълнение Проблеми при конвейерното изпълнение Структурни опасности Даннови опасности Контролни опасности SIMD Предсказване на преходи и спекулативно изпълнение 2/26
3 Последователно пране 18ч. 19ч. 20ч. 21ч. 22ч. 23ч. Полунощ 30' 40' 20' 30' 40' 20' 30' 40' 20' 30' 40' 20' Пране Сушене Сгъване Ред на задачите Пране Сушене Сгъване Пране Сушене Сгъване Пране Сушене Сгъване Прането отнема 30 мин Сушенето отнема 40 мин Сгъването отнема 20 мин Последователното пране отнема 6 часа за 4 купа дрехи 3/26
4 Конвейерно пране 18ч. 19ч. 20ч. 21ч. 22ч. 23ч. Полунощ 30' 40' 40' 40' 40' 20' Пране Сушене Сгъване Ред на задачите Пране Сушене Сгъване Пране Сушене Сгъване Пране Сушене Сгъване Конвейерно означава задачата да се започва колкото се може по-скоро Конвейерното пране отнема 3.5 часа! 4/26
5 Изводи от конвейерното изпълнение 18ч. 19ч. 20ч. 21ч. 30' 40' 40' 40' 40' 20' Пране Сушене Сгъване Ред на задачите Пране Сушене Сгъване Пране Сушене Сгъване Пране Сушене Сгъване Конвейерното изпълнение не намалява латентността на отделните задачи, а само пропускателната способност на цялото задание Ефективността на конвейера е ограничена от най-бавната операция Множествено задачи се изпълняват едновременно когато използват различни ресурси Възможното ускорение е броя стъпки в конвейера Небалансираните дължини на стъпките намаляват ускорението Времето за напълване на конвейера и времето на изпразване намаляват ускорението Stall при наличие на зависимости 5/26
6 Изпълнение на инструкции Инструкция Цикли Инструкция i Инструкция i+1 Инструкция i+2 Инструкция i+3 Инструкция i+4 6/26
7 Изпълнение на инструкции Инструкция Цикли Инструкция i IF ID EX MEM WB Инструкция i+1 IF ID EX MEM WB Инструкция i+2 Инструкция i+3 Инструкция i+4 IF Instruction Fetch ID Instruction Decode EX Execution MEM Memory Access WB Write Back 7/26
8 Изпълнение на инструкции Инструкция Цикли Инструкция i IF ID EX MEM WB Инструкция i+1 Инструкция i+2 Инструкция i+3 Инструкция i+4 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF Instruction Fetch ID Instruction Decode EX Execution MEM Memory Access WB Write Back 8/26
9 Ограничения при конвейерното изпълнение Опасностите (hazards) не позволяват следващата инструкция да бъде изпълнена по време на определения й цикъл Структурни опасности (structural hazards) Опити за използване на един и същ хардуер за две различни неща едновременно Даннови опасности (data hazards) Инструкция зависи от резултата на друга инструкция, която е още в конвейера Контролни опасности (control hazards) Причинени са от забавянето между извличането на инструкции и решенията за промени в потока инструкции (control flow) условни и безусловни преходи 9/26
10 Даннови опасности: истинска зависимост Инструкцията зависи от данните, получени от предходната инструкция 1. A = 3 2. B = A 3. C = B Ако две инструкции са взаимнозависими от данните си те не могат да бъдат: Изпълнени едновременно Напълно да се застъпват в конвейера Да се изпълняват непоследователно (out-of-order) При настъпване на такава ситуация в конвейера се казва че има риск от четене след запис (RAW hazard) 10/26
11 Даннови опасности: анти зависимост Инструкцията зависи от инструкция 2 (инстр. 2 трябва да се изпълни преди инстр. 3) 1. B = 3 2. A = B B = 7 Нарича се още зависимост от имената Когато две инструкции използват един и същи регистър или адрес в паметта, но няма поток от данни между тези две инструкции. Има две версии на този тип зависимост При настъпване на такава ситуация в конвейера се казва че има риск от запис след четене (WAR hazard) 11/26
12 Даннови опасности: изходна зависимост Инструкцията зависи от инструкция 1 (инстр. 1 трябва да се изпълни преди инстр. 3) 1. A = 2 * X 2. B = A / 3 3. A = 9 * Y Нарича се още зависимост от имената Когато две инструкции използват един и същи регистър или адрес в паметта, но няма поток от данни между тези две инструкции. Има две версии на този тип зависимост При настъпване на такава ситуация в конвейера се казва че има риск от запис след запис (WAW hazard) 12/26
13 Зависимост от имената Зависимостта от имената може да се избегне като се смени името в инструкцията, така че да няма конфликт Софтуерно преименуване (на регистри) Прави се от компилатора Хардуерно преименуване (на регистри) Прави се от процесора. Недостатък: по време на изпълнение 1. A = 2 * X 2. B = A / 3 3. A = 9 * Y 1. A2 = 2 * X 2. B = A2 /3 3. A = 9 * Y 1. B = 3 2. A = B B = 7 1. B = 3 2. B2 = B 3. A = B B = 7 13/26
14 Контролни опасности Всяка инструкция е зависима от някакво множество преходи. Тези зависимости трябва да се спазват, за да може да се запази семантиката на програмата if c1 { I1; } if c2 { I2; } I1 зависи от условието c1, a I2 зависи от условието c2, но не и от c1. 14/26
15 Контролни опасности Избягването на тези конфликти е трудно. Единственият начин е да не се спазва последователността от изпълнение. С други думи изпълнение на инструкции, които не би трябвало да се изпълняват и следователно водят до нарушаване на контролните зависимости. Това е приложимо само когато може да се запази семантиката на програмата. Този вид изпълнение се нарича спекулативно изпълнение. 15/26
16 Суперскаларно изпълнение Тип на инструкция Цикли Integer IF ID EX MEM WB Floating point IF ID EX MEM WB Integer IF ID EX MEM WB Floating point IF ID EX MEM WB Integer IF ID EX MEM WB Floating point IF ID EX MEM WB Двоен суперскалар Integer IF ID EX MEM WB Floating point IF ID EX MEM WB Integer IF ID EX MEM WB Floating point IF ID EX MEM WB 16/26
17 Даннови опасности при ILP Локализация на Instruction level parallelism Много инструкции да се изпълняват паралелно Хардуерът/Софтуерът трябва да запази редът на изпълнение на програмите Трябва да се запази редът на изпълнение на инструкциите и да изглежда така че те се изпълняват от последователно и следват сорс кода Важност на данновите зависимости: Отбелязва възможни опасности Определя редът, в който резултатите трябва да се калкулират Ограничава отгоре колко паралелизъм може да се използва Крайна цел: използване на паралелизма като се запази последователното изпълнение само когато то има негативен ефект върху изпълнението на програмата 17/26
18 Мултимедийни инструкции SIMD (Single Instruction Multiple Data) Техниката се използва, за да се постигне паралелизъм на ниво данни като при векторните процесори Една от най-новите реализации на SIMD от Интел се нарича SSE 18/26
19 Мултимедийни инструкции Скалар Вектор 19/26
20 Мултимедийни инструкции Пакетиран тип данни Намират се в отделен регистров файл a 3 a 2 a 1 a 0 SIMD a 3 a 2 a 1 a 0 A оп оп оп оп оп b 3 b 2 b 1 b 0 B a 3 оп b 3 a 2 оп b 2 a 1 оп b 1 a 1 оп b 1 Пакетирана операция 20/26
21 Мултимедийни инструкции for(i=0; i< MAX; ++i) c[i] = a[i] + b[i]; SIMD a[3] a[2] a[1] a[0] a b[3] b[2] b[1] b[0] b c[3] c[2] c[1] c[0] 21/26
22 Intel Core Микроархитектура. Суперскаларно изпълнение 3 Load/Store 1 Branch 3 Integer 2 Floating point 5 SSE Reservation station (RS) Port 0 Port 1 Port 2 Port 1 Port 0 Port 1 Port 0 Port 0 Port 1 Port 2 Port 2 Port 0 Port 1 Port 2 VALU0 VALU1 VSHUF VFADD VFMUL FADD FMUL CPU SU1 SU2 BU Store Data Store Add Load Add MMX/SSE Unit Floating-Point Unit Integer Unit Branch Unit Load-Store Unit Vector ALUs Scalar ALUs Memory Access Units 22/26
23 Спекулативно изпълнение Различни механизми за предсказване Постига се по-добра ILP като се преодоляват контролните зависимости чрез спекулиране на резултата от преходите и изпълнява програмата сякаш предсказанията са верни Предсказване на преходи Предсказване на стойности Prefetching Предвиждане на начинът на достъп до паметта 23/26
24 Предсказване на преходи и спекулативно изпълнение Инструкция Инструкция i (преход) Инструкция i+1 Инструкция i+2 Инструкция i+3 Инструкция i+4 1 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB Преходът е изчислен IF ID EX MEM WB Цикли Инструкция i+5 IF ID EX MEM WB 24/26
25 Предсказване на преходи и спекулативно изпълнение Инструкция Инструкция i (преход) Stall Stall Stall Stall 1 IF ID EX MEM WB Преходът е изчислен Цикли Инструкция i+5 IF ID EX MEM WB 25/26
26 Предсказване на преходи и спекулативно изпълнение Механизмът за предсказване трябва да определи кое от двете разклонения на условието ще се изпълни Съвременните предсказващи системи са 99+% точни Дори могат да предсказват адресите от индиректните преходи Извличат се и се изпълняват спекулативно предсказаните адреси Няма мехурчета в конвейера Когато преходът най-накрая е оценен и адресът е ясен тогава спекулативното изпълнение се потвърждава или отхвърля 26/26
Анализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание Конвейерно изпълнение Проблеми при конвейерното изпълнение Структурни опасности Даннови опасности Контролни опасности
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Какво могат и какво не могат компилаторите Съдържание 1. Оптимизационен континуум 2. Някои известни видове оптимизации 2/49 Оптимизационен
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание 1. Какво е векторизация? 2. Примери 3. на цикли 4. Масиви от структури или структури от масиви 5. на при различни
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание 1. Производителност 2. Оптимизация 3. Методи за оптимизация 2/18 Защо производителността е важна? Дава възможност
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание 1. Какво е паралелизация? 2. Примери 3. Паралелни алгоритми 4. Синхронизация. Критични секции 5. Проблеми при паралелните
ПодробноСтруктура на програма в C - Част 2 - типове, функции
Структура на програма в C Част 2 - типове, функции Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 10 март 2019 г. И. Георгиев, Х.
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание Фон Нойманова архитектура История на оперативна памет Архитектура на DRAM Памет на много нива Кеш памети Кеш с директна
ПодробноСистеми за управление на версии - Работа с git
Системи за управление на версии Работа с git Иван Георгиев, Христо Иванов, Христо Стефанов Tехнологическо училище "Електронни системи", Технически университет, София 28 февруари 2019 г. И. Георгиев, Х.
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев (от гледна точка на производителността) Съдържание 1. Видове транслатори 2.Фази по време на компилация 3. Оптимизационна фаза
ПодробноПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА
СРЕДИ ЗА ПРОГРАМИРАНЕ ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА Същност на програмното осигуряване За да могат компютрите да разбират описаните на езика за програмиране алгоритми, те трябва да бъдат преведени
ПодробноMicrosoft PowerPoint - Model_Dec_2008_17_21
Структура. Теория на графите общи понятия. Същност на мрежовите модели. Приложение на мрежови модели при управление на проекти и програми Общи понятия от Теорията на графите, използвани при мрежовите модели
ПодробноПредефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве
Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :
ПодробноУправление на перална машина с размита логика Пералните машини в наши дни са обикновен уред в дома. Най-голяма изгода, която потребителя получава от п
Управление на перална машина с размита логика Пералните машини в наши дни са обикновен уред в дома. Най-голяма изгода, която потребителя получава от пералната машина е, че имат почистване, центрофугиране
ПодробноSlide 1
Въведение в VHDL Паралелни оператори Паралелни оператори Паралелен оператор оператор, който се изпълнява едновременно с другите оператори от този тип. Process - Процес
ПодробноЗадача D
Задача 1. РЕЗУЛТАТ В час по математика Дора Янкова написала на дъската последователно n числа: първо, второ, трето, четвърто и т.н. Първият ученик от първото число извадил второто, прибавил третото, извадил
ПодробноMicrosoft Word - PRMAT sec99.doc
Лекция 9 9 Изследване на функция Растене, намаляване и екстремуми В тази лекция ще изследваме особеностите на релефа на графиката на дадена функция в зависимост от поведението на нейната производна Основните
ПодробноSlide 1
Методи и алгоритми за моделиране, симулация и оптимизация на полупроводникови сензори Венцеслав Шопов E-mail: vkshopov@yahoo.com BG051PO001-3.3.06-0002 Цел на дисертационния труд е да се създаде софтуерна
ПодробноЛекция Многокомпонентен анализ на смеси чрез техните УВ-Вид спектри.. Електронни спектри на смес от вещества. Обикновено UV/Vis спектър на едно вещест
Лекция Многокомпонентен анализ на смеси чрез техните УВ-Вид спектри.. Електронни спектри на смес от вещества. Обикновено UV/Vis спектър на едно вещество се измерва в региона от 200 до 900 nm. За коя да
Подробноdoll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката н
doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката на механични кукли, датиращи от древни времена. Движенията
ПодробноЛогаритмична регресия
Логаритмична регресия Доц. д-р Ивайло Пенев Кат. Компютърни науки и технологии Функция на хипотезата h θ x = g θ T x = 1 1 + e θt x Функция на цената J θ = 1 σ m i=1 m Cost(h θ x i, y i ), където Cost(h
ПодробноПроф
Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол... /... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет по Математика и Информатика Специалност: Компютърни науки М И К 0
ПодробноMicrosoft Word - 12-Teacher_Getting Loopy BGG.docx
СЪЗДАВАНЕ НА ЦИКЛИ Времетраене на урока: 30 минути. Основната продължителност на урока включва само дейностите. Въвеждащите и обобщаващи предложения могат да се използват за задълбочаване на знанията,
ПодробноKontrolno 5, variant 1
N P - П Ъ Л Н И З А Д А Ч И КОНТРОЛНО 5 ПО ДИЗАЙН И АНАЛИЗ НА АЛГОРИТМИ СУ, ФМИ ( ЗА СПЕЦИАЛНОСТ КОМПЮТЪРНИ НАУКИ, 1. ПОТОК; 3 МАЙ 018 Г. ) Задача 1. Разглеждаме задачата за разпознаване LongestCycle:
ПодробноПроектиране на непрекъснат ПИД - регулатор. Динамичните свойства на системите за автоматично регулиране, при реализация на първия етап от проектиранет
Проектиране на непрекъснат П - регулатор инамичните свойства на системите за автоматично регулиране, при реализация на първия етап от проектирането им, могат да се окажат незадоволителни по отношение на
ПодробноКомпютърна Графика и Презентации - Графично моделиране
Компютърна Графика и Презентации Графично Моделиране. Генеративна Компютърна Графика гл. ас. д-р А. Пенев Генеративната КГ се занимава с: Построяване на обекти (модели); Генерация на изображение; Преобразуване
ПодробноPowerPoint Presentation
Port Knocking с RouterOS Допълнително ниво на защита за вашата мрежа Добри Бояджиев Опит с MikroTik RouterOS 2008 I -ва MikroTik Академия (УниБИТ) 2014 Основи на MikroTik RouterOS 2016 Инструктор (Train
ПодробноСЪДЪРЖАНИЕ
ЕЛЕКТРОНЕН КАСОВ АПАРАТ PERFECT S 01 К Р АТ К А ИН СТ РУК Ц ИЯ ЗА МОНТ АЖ И ЕК СПЛО АТ АЦ ИЯ Пълната инструкция за експлоатация можете да намерите на сайта ни www.daisy.bg ПОСТАВЯНЕ НА ХАРТИЕНА РОЛКА При
ПодробноМИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА
МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА У Ч Е Б Н А П Р О Г Р А М А ЗА ЗАДЪЛЖИТЕЛНА ПРОФЕСИОНАЛНА ПОДГОТОВКА ПО ПРОГРАМИРАНЕ И АЛГОРИТМИЧНИ ЕЗИЦИ ЗА ПРОФЕСИЯ: КОД 482010 ИКОНОМИСТ - ИНФОРМАТИК СПЕЦИАЛНОСТ:
ПодробноВиртуални функции
Виртуални функции Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай,
ПодробноСтруктура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор
Структура на програма в C Част 7 - масиви, оператор за индексиране, sizeof оператор Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София
ПодробноMicrosoft PowerPoint - Ppt ppt [Read-Only]
ТЕХНИЧЕСКИ УНИВЕРСИТЕТ ВАРНА КАТЕДРА АВТОМАТИЗАЦИЯ НА ПРОИЗВОДСТВОТО ЦИФРОВИ СИСТЕМИ ЗА УПРАВЛЕНИЕ - ЧАСТ 2 Янко Янев ВИДОВЕ ТЕХНОЛОГИИ ЗА ИЗГРАЖДАНЕ НА ЦИФРОВИ СИСТЕМИ ЗА УПРАВЛЕНИЕ микропроцесори микроконтролери
ПодробноГодишното тематично разпределение по Компютърно моделиране за 4. клас N седмица Тема очаквани резултати Методи бележки и коментари Първи учебен срок Т
Годишното тематично разпределение по Компютърно моделиране за 4. клас N седмица Тема очаквани резултати Методи бележки и коментари Първи учебен срок Тема 1. Информация 1 1 Видове информация Познава начините
ПодробноМашинно обучение Лабораторно упражнение 9 Класификация с множество класове. Представяне на невронна мрежа Упражнението демонстрира класификация в множ
Машинно обучение Лабораторно упражнение 9 Класификация с множество класове. Представяне на невронна мрежа Упражнението демонстрира класификация в множество класове чрез методи логаритмична регресия и невронни
Подробно-
Лениво оценяване и програмиране от по-висок ред Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 7 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Лениво оценяване 7 януари 2016 г.
ПодробноРекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари
Рекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари 2017 г. Трифон Трифонов (УП 16/17) Рекурсия 21.12.16
ПодробноВАРНЕНСКИ СВОБОДЕН УНИВЕРСИТЕТ "ЧЕРНОРИЗЕЦ ХРАБЪР" ЗАГЛАВИЕ курсова работа по. на.., специалност. фак. номер: ******** Варна, 2008 г.
ВАРНЕНСКИ СВОБОДЕН УНИВЕРСИТЕТ "ЧЕРНОРИЗЕЦ ХРАБЪР" ЗАГЛАВИЕ курсова работа по. на.., специалност. фак. номер: ******** Варна, 28 г. 2 Задача Да се изследва влиянието на вноса и износа на върху брутния
Подробно4
Наследяване и 4 Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 11 май 2017 г. Трифон Трифонов (ООП 16/17) Наследяване и голямата
ПодробноПръстени. Разглеждаме непразното множество R, което е затворено относно две бинарни операции събиране и умножение + : R R R : R R R. Казваме, че R е п
Пръстени. Разглеждаме непразното множество R, което е затворено относно две бинарни операции събиране и умножение + : R R R : R R R. Казваме, че R е пръстен, ако са изпълнени аксиомите 1.-4. за абелева
ПодробноИЗИСКВАНИЯ ЗА ДОКЛАДИТЕ А. ОБЩИ ИЗИСКВАНИЯ І. Докладът трябва да е написан на компютърна програма Microsoft Word. ІІ. Файлът да бъде записан като *.do
ИЗИСКВАНИЯ ЗА ДОКЛАДИТЕ А. ОБЩИ ИЗИСКВАНИЯ І. Докладът трябва да е написан на компютърна програма Microsoft Word. ІІ. Файлът да бъде записан като *.doc. ІІІ. Името на файла трябва да е със следната структура:
ПодробноВ компютърните системи информацията се съхранява само в двоичен код, използваните символи при съставяне на даден текст трябва да се представят като ко
В компютърните системи информацията се съхранява само в двоичен код, използваните символи при съставяне на даден текст трябва да се представят като комбинация от двоични цифри ( и ). При натискане на клавиш
ПодробноPowerPoint Presentation
Ревизионните шахти са най-често проектираното съоръжение по канализационната мрежова система. Ревизионните шахти се проектират при промяна на напречното сечение или наклона на тръбопровода, при изменение
ПодробноMicrosoft Word - VM22 SEC55.doc
Лекция 5 5 Диференциални уравнения от първи ред Основни определения Диференциално уравнение се нарича уравнение в което участват известен брой производни на търсената функция В общия случай ( n) диференциалното
Подробно