Performance Analysis and Optimization
Course Lecturer: ȘL. dr. eng. Călin BÎRĂ
Laboratory Assistant: ȘL. dr. eng. Călin BÎRĂ
The role of this course is to introduce the basic tools needed for engineers to evaluate and improve applications and it has a very important place in the core competencies set since it is a requirement for more advanced system and architecture design and implementation.
The objectives are to train students to be able to profile an application using specific tools, to identify and mitigate bottlenecks, and write high performance code, to understand the operating systems, CPU microarchitecture and runtime concepts relevant to performance optimization, to identify the major blocks of a compiler / interpreter, give examples from language internals, identify major hotspots in compiler / interpreter and propose optimizations.
Course is 25% of the time, lab is 75% of the time. Students are taught practical estimation, speed and code-size/ram optimizations. Profiling is done using valgrind and cachegrind.
Used architectures & technologies are: 8-bit PIC C/ASM, x64, x64-SIMD, GP-GPU (OpenCL), custom hardware