Lectures#
Lectures recordings#
Recordings from 2024 are available in the YouTube playlist.
Lectures#
| # | Date | Topics | Slides |
|---|---|---|---|
| 1. | 17. 2. | Introduction, modern computer architecture, C compilers. | slides |
| 2. | 24. 2. | Bentley's rules, C compiler, profiling. | slides 1, slides 2, code |
| 3. | 3. 3. | Benchmarking, measurements, metrics, statistics, WCET, timestamping. | slides |
| 4. | 10. 3. | Scalable synchronization – from mutexes to RCU (read-copy-update), transactional memory, scalable API. | slides |
| 5. | 17. 3. | Memory access – efficient programming with caches, dynamic memory allocation (malloc, NUMA, ...). | slides, animations |
| 6. | 24. 3. | Serialization of data structures – JSON, XML, protobufs, AVRO, cap'n'proto, mmap/shared memory. | slides |
| 7. | 31. 3. | Program run – virtual machine, byte-code, Java compiler, JIT compiler, relation to machine code, byte-code analysis, dissasembly of Java byte-code, optimization in compilers, program performance analysis, profiling. | slides |
| 8. | 7. 4. | Data concurrency in JVM – multi-threaded access to data, locks monitoring, atomic operations, lock-less/block-free data structures, non-blocking algorithms (queue, stack, set, dictionary), data races, synchronization. | slides |
| 9. | 14. 4. | Efficient servers, C10K, non-blocking I/O, efficient networking, threads | slides |
| 21. 4. | Easter | ||
| 10. | 28. 4. | JVM – Memory analysis (dynamic/static), data structures, collections for performance. | slides |
| 11. | 5. 5. | JVM – Object allocation, bloom filters, references, effective caching. | slides |
| 12. | 12. 5. | Virtualization (IOMMU, SR-IOV, PCI pass-through, virtio, …). | slides, code |
| 13. | 19. 5. | Memory Management in JVM – Memory Layout, Garbage Collectors. | slides |