20 июн. 2009 г.

Конспект лекций по оптимизации

Есть хорошие и плохие новости.

Плохая новость заключается в том, что партком моей кафедры решил, что в 2009/2010 учебном году студенты третьего курса останутся без курса по оптимизации. Это связано не с тем, что курс сложный или никому не нужный. В этом году я убедился, что если взять почитать методички, то среднему студенту под силу разобраться. Скорее всего это связано с распределением нагрузки преподавателей. Теперь этот курс можно будет услышать только на вечерних занятиях на нашей кафедре.

Хорошая новость заключается в том, что работы по развитию дисциплин по оптимизации и параллельному программированию на этом не остановятся. В прошлом году я первый раз прочитал этот курс для студентов СКС и успел сделать какие-то слайды. В этом году к слайдам добавился конспект лекций, хоть и не полный, а также методичка по лабораторным работам. Мне хотелось бы пойти дальше и написать большой конспект лекций (книгу?), который бы объединил дисциплины «Многоядерное программирование» и «Введение в оптимизацию производительности программного обеспечения».

Представляю себе, что эта книга должна состоять из нескольких частей. Первая — вводно-мотивирующая, чтобы после её прочтения не осталось сомнений в важности предмета. Также в этой части нужно будет объяснить различные понятия параллельного программирования. Вторая — архитектурная, в которой будет объяснено за счет чего программы на двуядерном процессоре работают в два раза быстрее, и почему срабатывают оптимизации последовательного кода. В третьей части рассказать о различных библиотеках для параллельного программирования: WinAPI/POSIX, OpenMP, Intel TBB. В последней части будет рассказано о последовательных оптимизациях, когда все параллельные библиотеки уже включены, а скорости работы не хватает.

У меня есть черновик такого конспекта. Вы можете легко его загрузить: optimization.pdf. Прошу учесть, что это черновик — некоторые главы не дописаны, некоторых глав нет, рисунки нарисованы криво, местами нет форматирования. Такая себе альфаверсия. Но уже сейчас из него можно узнать:

  1. Отличие различных инструментов анализа производительности.
  2. Немного об Intel TBB.
  3. Основные проблемы работы с памятью.
  4. Немного про оптимизацию ветвлений.
  5. Трансформации циклов.
  6. Автоматические оптимизации в компиляторах.
  7. Введение в OpenMP.
Таким образом, вы уже сейчас можете начать им пользоваться.

Я был бы очень благодарен, если вы напишите ваше видение, что должно быть в таком конспекте. Также, если вы сообщите об ошибках или непонятных местах в текущей версии текста. Возможно, у вас есть какие-то вопросы, на которые нет ответов. Этот блог удобен тем, что можно рассматривать часть вопросов уже сейчас, не дожидаясь финальной версии конспекта.

С удовольствием приму любые комментарии здесь или по адресу электронной почты: volodymyr.obrizan@dnt-lab.com.

Комментариев нет:

Отправить комментарий

Темы

2012 (2) амазон (1) анпакинг (1) артемий лебедев (4) атн (1) аудио (1) аэропорт (1) безопасность (3) бизнес (1) билайн (1) блог (2) будущее (2) видео (11) википедия (5) вымысел (16) гагарин (1) герман (1) гитхаб (1) гугл (3) дед мороз (1) декабрь (1) демотиватор (2) дети (2) дизайн (13) диссертация (2) документация (1) друзья (5) евпатория (1) евро-2012 (1) жадность (1) заяц (1) идея (1) имейл (1) инстаграм (1) интервью (5) интересное (20) интерфейс (13) история (7) как_выжить (4) календарь (1) капитализм (1) картина (1) кмб (6) книга (6) коллекция (4) компилятор (2) конкурс (5) космос (1) лаборатория (1) либералы (1) лингво (1) лузер (6) макаренко (2) макдональдс (2) математика (1) медиапорт (1) ментор (1) металлика (1) металлист (2) метро (7) микрософт (6) миргород (1) москва (2) музыка (3) наркомания (1) новости (17) образование (3) оптимизация (5) основы (14) открытки (3) ошибка (11) памятник (1) патриотизм (3) плагиат (1) плата (1) погода (3) поиск (1) политика (2) полтава (2) праздник (1) программирование (15) прошлое (2) путешествия (8) рейтинг (1) рендер (1) рисунок (2) русские (1) русский язык (1) сайт (4) санкт-петербург (1) сапр (7) сеть (1) си++ (1) синтез (1) системси (1) скриншот (40) социализм (1) соцопрос (3) спектрум (2) спорт (2) срач (2) статистика (1) такси (1) тбб (3) твитер (9) тимошенко (1) украина (5) униан (1) фан (30) фокус (1) фото (39) фотошоп (1) фурсенко (1) футбол (2) хабр (1) харьков (21) хнурэ (19) хобби (4) цитата (2) чехия (1) школа (1) эпл (1) эхостар (1) юмор (1) яндекс (1) clang (2) doxygen (1) english (3) ios (1) llvm (1) msdn (1) outlook (1) PHP (1) stackoverflow (1)

Поиск

Читатели