Lectures

Lectures#

Lectures recordings#

Recordings from 2024 are available in the YouTube playlist.

Lectures#

#Date  TopicsSlides
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, threadsslides
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