Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Пікова продуктивність комп’ютера
Для розрахунку пікової продуктивності вважається, що конвеєр є максимально завантаженим та використовує режим із зачепленням. Так як при таких умовах за кожен такт на виході буде один результат то легко вирахувати пікову продуктивність: так як час такту 4.1нс одного процесора рівна 1 Гфлопс, де 1 Флопс – одиниця виміру продуктивності, яка рівна одній операції із дійсними числами в секунду. Так як в комп’ютері 16 процесорів, то загальна пікова продуктивність – 16 Гфлопс. Проте пікова продуктивність ніколи не досягається, це теоретичне поняття. В реальних задачах потрібно максимально наблизити реальну продуктивність до пікової. Один з основних засобів – це векторизація програми, які піддаються векторній обробці. Наприклад, для фрагменту коду: for I:=1 to n do C[I]:=B[I]+A[I] легко розпізнається компілятором як виконання векторної операції додавання. Про те не завжди можна векторизувати програму. Для виконання векторної операції потрібно виконання двох умов: 1. наявність векторів-аргументів команд; 2. незалежність операцій над векторами. Наступний фрагмент коду for (i=0; i<n; i++) В[I]:=B[I-1]+A[I] векторизувати не вдається, так як результат кожної і-тої команди залежить від попередньої. Також векторизації не піддається наступний фрагмент В[I]:=Funct (A[I], C[I]), так як компілятор на перед не знає які дії будуть розумітися під функцією Funct. Час виконання будь якої програми залежить від часу виконання найповільнішої її частини. Тобто, якщо в програмі половину команд можна векторизувати, а другу половину векторизувати не можливо, то не слід очікувати великого приросту продуктивності від виконання даної програми на комп’ютері Cray C90. Також не слід забувати і про якість компілятора, який може не розпізнати векторні блоки. При роботі із векторними командами на швидкодію впливають ще два фактори: 1. Час розгону векторної команди; 2. Секціонування довгих векторів. Під час роботи векторної команди декілька тактів витрачається на ініціалізацію векторних регістрів та заповнення конвеєра. Лишень після цього функціональні пристрої починають видавати результат. В реальних задачах операції відбуваються з векторами, у яких більше ніж 128 елементів, і тому такі вектори слід розбивати на секції для позачергового занесення їх у векторні регістри, на що затрачається декілька тактів.
Date: 2015-07-17; view: 548; Нарушение авторских прав |