Автор статьи
Валерия
Эксперт по сдаче вступительных испытаний в ВУЗах
- Изучить архитектуры доступных микропроцессоров с параллелизмом на уровне команд.
- Изучить средства программирования, отладки и профилирования микропроцессоров данного класса.
- Исследовать зависимость времени работы прикладных программ от уровня оптимизации компилятора.
- Сравнить способы выявления скрытого параллелизма в микропроцессорах обоих классов. Выявить преимущества и недостатки суперскалярных микропроцессоров и VLIW-процессоров исходя из их архитектурных особенностей.
- Разработать программу, реализующую заданную функцию (даётся несколько вариантов на выбор: приближённое вычисление числа p по формуле суммы ряда, сортировка массива «пузырьком» и др.) на суперскалярном микропроцессоре и на VLIW-процессоре.
- Отладить разработанную программу, исследовать влияние различных оптимизаций на время ее исполнения на суперскалярном микропроцессоре и на VLIW-процессоре.
- По результатам тестирования программы сформулировать рекомендации для эффективного программирования.
- Изучить базовый набор инструкций процессоров с архитектурами x86, x86_64, Itanium, ключи оптимизирующего компилятора на машинах с архитектурами x86, x86_64 и Itanium (-O0, -O1, -O2, -O3, -g, -S, -mtune, -march). Изучить основные команды отладчика GNU GDB (run, continue, quit, bt, step, next, print, break).
- Написать на языке C программу для выбранной функции. Встроить в нее код измерения времени работы программы одним из способов (например, с помощью счётчика тактов).
- Скомпилировать с различными ключами оптимизации и запустить программу на машинах с архитектурами x86, x86_64 и Itanium, измерить время работы вычислительной функции при различных режимах оптимизации (использовать ключи компиляции -O0, -O1, -O2, -O3, -march=i686). Изучить влияние различных оптимизаций на время исполнения программы.
- Сгенерировать ассемблерные листинги для C программы для архитектур x86, x86_64 и Itanium для различных режимов оптимизации.
- В каждом полученном ассемблерном листинге определить назначение команд в листинге и их соответствие исходному тексту программы на C. Изучить, какие ресурсы памяти или регистров выделены для хранения переменных исходной программы на Си.
- Скомпилировать программу в отладочном режиме. Запустить ее в пошаговом режиме исполнения в отладчике GNU GDB, применить изученные команды для просмотра стека вызовов, печати значений переменных, установки точек останова, приостановки и продолжения исполнения программы.
О сайте
Ссылка на первоисточник:
http://www.tolgas.ru
Поделитесь в соцсетях: