2012/2013 - Анализ и оптимизация на софтуерни приложения (спец. курс)

Анотация

С развитието на съвременните процесори и хардуерни архитектури възниква съществен проблем при разработката на софтуерните приложения: те не могат да се възползват максимално добре от новостите. Много често се оказва, че на пръв поглед добре реализирана програма използва само малка част от възможностите на хардуерните компоненти. Това се дължи на различни взаимосвързани фактори като: реализирания проблем, дизайна, алгоритмите и данните, качеството на реализация, компилатора и библиотеките, наличния хардуер, набора инструкции, микроархитектурата на ЦП и реализацията на интегралните схеми. Много често се обръща внимание само на първите няколко фактора, а това не е достатъчно, защото те зависят от останалите.

Съвременните изчислителни платформи предоставят огромни възможности за извършване на изчисления. На практика, обаче, постигането на добра производителност изисква сериозно разбиране на всички слоеве на целевата платформа, подробно осъзнаване на изчисленията, изобретателност и находчивост. Наградата от овладяването на тази сложен процес е в постигането на производителност в пъти повече и почти невъзможна в стандартната практика.

Основната цел на курса е да направи въведение в областта на анализ и оптимизация на производителността на софтуерни приложения, да предложи възможни практически съвети за решаване или минимизиране на проблемите при използването на наличния съвременен хардуер. Студентите ще получат теоретични и практически познания в областта и ще се запознаят със съвременни инструменти за анализ като Intel VTune Amplifier, AMD CodeAnalyst и други.

Литература

  • Intel Corporation, Intel VTune Amplifier XE 2011 Getting Started Tutorials for Linux OS, Intel Software Product Tutorials, Intel, 2011
  • Gian-Paolo D. Musumeci, Mike Loukides, System Performance Tuning (2nd Edition), O'Reilly Media, 2002, 352 pages, ISBN 0-596-00284-X
  • Phillip G. Ezolt, Optimizing Linux Performance: A Hands-On Guide to Linux Performance Tools, Prentice Hall, 2005, 384 pages, ISBN 0-131-48682-9
  • Victor Pankratius, Ali-Reza Adl-Tabatabai, Walter Tichy, Fundamentals of Multicore Software Development, CRC Press, 2011, 330 pages, ISBN 1-439-81273-X
  • Henry H. Liu, Software Performance and Scalability: A Quantitative Approach, Wiley, 2009, 375 pages, ISBN 0-470-46253-1
  • CodeAnalyst Linux Users Manual - http://developer.amd.com/tools/CodeAnalyst/codeanalystlinux/assets/CodeA...
  • OProfile - http://oprofile.sourceforge.net/doc/index.html

Помощни материали