Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию