Software performance: methodology and techniques
Profesor:
- Arzhan Kinzhalin, Intel, Argentina
9+ years in the industry. MS in Theoretical and Mathematical Physics. Major areas of technical competency are operating systems, network protocols, database servers, computer architecture; C and Java programming languages at expert level; performance analysis methodologies; software design and development methodologies; project planning, building project teams in disperse and distributed environments.
Idioma:
Inglés
Turno:
Tarde (14 a 17 hs)
Requisitos:
C y ensamblador seria deseable pero no es requerido.
>Síntesis:
Software performance is rarely recognized as a separate discipline, the one similar to Quality Engineering or Software Design. The purpose of the course is to introduce students to essentials of software application performance analysis: theoretical background, methodology of performance analysis and tools that are used for analysis as well as implementing optimizations produced by such analysis.
The course starts with a brief overview of computer architecture and continues with theoretical background. Methodology of performance analysis is covered after. Approaches to analysis and tools available to analyze performance will have major focus. A set of common optimizations techniques and compiler optimization overview will close the class. Class activities will be supplemented with some hands-on experience on performance analysis and software optimization.
Cronograma:
Día 1 - Computer Architecture Overview
- Pipelines
- Instruction-level parallelism
- Memory hierarchy
- I/O subsystem
Día 2 -Quantitative Approach and Performance Methodology
- Performance laws, equations and rules of thumb
- Methodology of the performance analysis
Día 3 -Performance Tools
- Approaches to performance analysis
- VTune Performance Analyzer
- Operating system tools
Día 4 -Common Optimization Techniques
- Common developer mistakes
- Getting friends with a compiler
- Memory-aware optimizations
- Exploiting instruction-level parallelism
Día 5 -Performance in Parallel Applications
- POSIX threads
- OpenMP
- Common pitfalls
- NUMA programming environments
Bibliografía:
1 J. L. Hennessy, D.A. Patterson. Computer Architecture: A Quantitative Approach. 3rd edition. 2002.
2 D.R. Butenhof. Programming with POSIX® Threads. 1997.
3 Intel* Architecture Optimization Manual. Available for download from http://www.intel.com