Автоматическая настройка программ (проект) — различия между версиями
м |
м |
||
Строка 33: | Строка 33: | ||
* Оптимизация по нескольким критериям | * Оптимизация по нескольким критериям | ||
* Создание веб-сервиса и веб-интерфейса | * Создание веб-сервиса и веб-интерфейса | ||
+ | * Визуализация результатов | ||
=== Критерии оценки === | === Критерии оценки === |
Версия 14:35, 1 декабря 2014
Ментор | Олег Сухорослов |
Учебный семестр | Весна 2015 |
Учебный курс | 1-й курс |
Проект можно развивать на летней практике | |
Что это за проект?
Реализация библиотеки или консольной утилиты для автоматической настройки программ (autotuner). На вход автотюнеру передаются программа, оптимизируемые параметры (например, флаги компилятора, число потоков, размер подзадач) и критерии оптимальности (например, время выполнения программы, используемый объем памяти, энергопотребление). Результатом работы автотюнера являются наилучшие значения параметров при заданных критериях. Полезность подобных систем очевидна, например они используются для оптимизации выполнения программ на параллельных, встраиваемых и облачных системах. Основные сложности при реализации автотюнеров связаны с большим числом комбинаций параметров (полный перебор работает долго) и невозможностью использования аналитических методов оптимизации (программа и вычислительная система являются "черными ящиками").
Чему вы научитесь?
- Создавать библиотеки и консольные утилиты на Python
- Работать с внешними процессами и потоками
- Реализовывать и использовать на практике методы оптимизации
Какие начальные требования?
- Программирование на Python
- Умение работать с Linux
Какие будут использоваться технологии?
- Python
- git
Темы вводных занятий
- Обзорная лекция по автотюнерам и применяемым в них методам оптимизации
Направления развития
- Поддержка различных методов оптимизации
- Распараллеливание (потоки, несколько серверов)
- Оптимизация по нескольким критериям
- Создание веб-сервиса и веб-интерфейса
- Визуализация результатов
Критерии оценки
- 4-5 - автотюнер с полным перебором и случайным поиском
- 6-7 - реализация одного из методов оптимизации
- 8-10 - параллельный запуск нескольких методов