Skip to main content
Skip header

Methods of Efficient Programming

Type of study Follow-up Master
Language of instruction Czech
Code 460-4174/01
Abbreviation MEP
Course title Methods of Efficient Programming
Credits 4
Coordinating department Department of Computer Science
Course coordinator Ing. Petr Olivka, Ph.D.

Subject syllabus

Outline of lectures and exercises:

- Code optimization and why it is important
- The influence of jump instructions on the speed of code execution, profiling.
- Memory models and the operation of CPU caches.
- Data organization in programs and optimal use of caches.
- Use of the CPU integer unit to accelerate selected algorithms.
- Calculations with large numbers in a combination of C language and machine code.
- Fixed and floating point decimal numbers. Conversions and calculations.
- Use of the SSE unit for calculations with floating point numbers.
- CPU units SSE and AVX their use as SIMD.
- Parallelization at the process and thread levels, their benefits.
- The importance of process and processor core affiliation.
- Optimal communication with disks at the OS level.

Literature

[1] Jim Ledin, 2020, Modern Computer Architecture and Organization: Learn x86, ARM, and RISC-V architectures and the design of smartphones, PCs, and cloud servers, Packt Publishing, ISBN-13: 978-1838984397 
[2] Jim Ledin,2022, Modern Computer Architecture and Organization: Learn x86, ARM, and RISC-V architectures and the design of smartphones, PCs, and cloud servers, 2nd Edition, Packt Publishing, ISBN-13, 978-1803238234
[3] Denis Bakhvalov, 2024, Performance Analysis and Tuning on Modern CPUs: Learn to write fast software like a pro, Independently published, ISBN-13: 979-8342846448 
[4] Comer, D. ,2024, Essentials of Computer Architecture (3rd ed.). Chapman and Hall/CRC. https://doi.org/10.1201/9781003410140

Advised literature

[1] Intel, 2025, Intel® 64 and IA-32 Architectures Software Developer’s Manual,https://cdrdv2.intel.com/v1/dl/getContent/671200
[2] Stevens, W. Richard, Rago, Stephen A., 2013, Advanced Programming in the UNIX Environment, 3rd Ed., Addison-Wesley Professional, ISBN-13: 978-0321637734