Курсовая работа

Курсовая по информатике и вычислительной технике в Бауманке: от архитектуры компьютера до системного прототипа

Как писать курсовую по ИВТ в Бауманке: выбрать системную задачу, спроектировать архитектуру, реализовать прототип, провести benchmark и измерить результат.

Содержание +

Курсовая по информатике и вычислительной технике в МГТУ им. Баумана может быть заметно ближе к железу и системному уровню, чем обычная работа по разработке приложения. Здесь естественны темы про вычислительные системы, сети, архитектуру, embedded, обработку информации, производительность и взаимодействие аппаратной и программной частей.

В МГТУ им. Н.Э. Баумана направление 09.03.01 «Информатика и вычислительная техника» реализуется в нескольких подразделениях. Кафедра ИУ5 ведёт программу «Системы обработки информации и управления», а Мытищинский филиал публикует программу «Вычислительные машины, комплексы, системы и сети».

Официальные страницы:
https://home.science.iu5.bmstu.ru/ab
https://mf.bmstu.ru/sveden/education/programs/vychislitelynye-mashiny-kompleksy-sistemy-i-seti-suos-09.03.01.html

Сначала определите уровень системы

Тема может быть про процессор, микроконтроллер, сеть, ОС, драйвер, вычислительный узел, распределённую систему или обработку сигнала.

Не смешивайте все уровни в одной курсовой.

Пример сильной постановки

«Исследование задержки передачи данных в embedded-системе при разных режимах шины».

Или:

«Разработка прототипа сетевого сервиса с измерением пропускной способности и задержки».

Здесь есть метрика.

Архитектура вычислительной системы

Покажите:

  • CPU;
  • memory;
  • storage;
  • bus;
  • peripherals.

Для программной системы:

  • process;
  • thread;
  • network;
  • storage.

Схема должна объяснять bottleneck.

Память

Различайте cache, RAM и disk. Время доступа отличается на порядки.

Алгоритм, который теоретически O(n), может упираться в память.

Cache locality

Для массивов и матриц исследуйте порядок доступа.

Две реализации одной формулы могут работать по-разному из-за кеша. Измерьте, а не только рассуждайте.

Процессор

Для performance-темы учитывайте cores, frequency, SIMD, branch и cache.

Не объясняйте ускорение только частотой CPU.

Многопоточность

До потоков найдите параллельную часть.

Покажите serial fraction, synchronization и shared data.

Не создавайте 100 потоков автоматически. Overhead может уничтожить ускорение.

Закон Амдала

Он помогает оценить предел ускорения.

Если половина программы последовательная, бесконечное число ядер не даст бесконечное ускорение.

Race condition

Если несколько потоков меняют данные, нужен контроль.

Создайте тест, который воспроизводит проблему.

Не ограничивайтесь фразой «использован mutex».

Deadlock

Покажите порядок блокировок, ресурсы и ожидание.

Если проект использует несколько mutex, задайте единый порядок.

Embedded

Для микроконтроллера важны память, цикл, interrupts, таймер, интерфейсы и питание.

Код, который работает на ПК, может быть непригоден в ограниченной системе.

Interrupt

Обработчик должен быть коротким.

Длительная логика внутри ISR может блокировать другие события.

Измерьте latency, если это критично.

Real-time

Разделяйте среднее время, максимальное и deadline.

Система реального времени определяется не тем, что она «быстрая», а тем, что укладывается в сроки.

Scheduler

Для RTOS-темы можно исследовать priority, period, execution time и deadline.

Не назначайте всем задачам максимальный приоритет.

Сети

Для сетевой темы измеряйте:

  • latency;
  • throughput;
  • loss;
  • jitter.

Не используйте только ping как полную характеристику.

TCP и UDP

Выбор зависит от надёжности, задержки, порядка и допустимых потерь.

Не называйте UDP «быстрее всегда».

Буфер

Размер буфера влияет на throughput, latency и memory.

Слишком большой буфер может увеличить задержку.

Измеряйте.

Очередь

Для системы обработки запросов полезно строить:

arrival -> queue -> service -> result.

Если поток входа выше пропускной способности, очередь будет расти.

Storage

Для дисковой темы различайте sequential, random, read и write.

SSD и HDD ведут себя по-разному.

Не сравнивайте одной цифрой.

Файловая система

Размер блока и паттерн записи влияют на результат.

Для benchmark задайте одинаковый dataset и очистите влияние кеша, если это важно.

Виртуализация

VM и container решают разные задачи.

Если сравниваете overhead, измеряйте CPU, memory, I/O и startup.

Не называйте контейнер виртуальной машиной.

FPGA

Если тема связана с аппаратным ускорением, покажите pipeline, latency, ресурсы и clock.

Сравнение с CPU должно использовать одинаковую задачу и точность.

HDL

Тестбенч обязателен.

Проверьте нормальные случаи, границы, reset и переполнение.

Не доказывайте корректность одной waveform.

Двоичная арифметика

Следите за signed/unsigned, overflow, bit width и fixed point.

Ошибки здесь часто скрыты, пока не появится граничный вход.

Fixed point

Для embedded/FPGA можно заменить float.

Но оцените диапазон, квантование и ошибку.

Не уменьшайте разрядность без проверки точности.

Benchmark

Проводите несколько повторов, warm-up и одинаковую конфигурацию.

Покажите медиану и разброс.

Один запуск слаб.

Профилирование

До оптимизации используйте profiler.

Найдите функцию, которая реально занимает время.

Не переписывайте весь код ради микроскопической экономии.

Оптимизация

Правильный цикл:

1. measure;
2. locate;
3. change;
4. measure again.

Не объявляйте оптимизацию успешной без повторного измерения.

Прототип

Даже системная курсовая должна иметь воспроизводимый результат:

  • код;
  • схема;
  • стенд;
  • конфигурация;
  • тест.

Не оставляйте только теоретический проект.

Практическая глава

Структура:

1. задача;
2. архитектура;
3. реализация;
4. эксперимент;
5. профиль;
6. оптимизация;
7. повторный эксперимент;
8. ограничения.

Бауманский контекст

На ИУ5 и других подразделениях направление ИВТ связано с обработкой информации, управлением, вычислительными системами и сетями. Конкретная курсовая может быть намного более системной, чем веб-разработка.

Поэтому ориентируйтесь на профиль своей кафедры.

Защита

Будьте готовы нарисовать архитектуру, показать bottleneck, объяснить benchmark, назвать hardware, показать профиль и объяснить, почему ускорение получено.

Сильная курсовая по информатике и вычислительной технике в Бауманке показывает, как устроена вычислительная система и чем подтверждается её поведение в реальном эксперименте.

Степан Сергеев

Автор – Степан Сергеев

Кандидат физико-математических наук (PhD). Четыре диплома о высшем образовании. Помогаю разобраться в учебных и исследовательских задачах.

Ещё по теме