Parallel Computer Architectures
- Department of Computer Systems
The students gain a good overview of present parallel architectures and processors:parallel (ILP) microarchitectures, multithreaded and multicore processors, SoCs and MPSoCs, GPUs, and neural processors. Students also get hands-on experience with programming these systems.
Programming in C, parallel algorithms, computer architectures, principles of pipelining.
- Syllabus of lectures:
1. Introduction, compiler optimizations
2. SIMD architectures. programming, data dependency solutions, hiding latency of instructions.
3. VLIW architectures, programming, speculative solutions of data dependences, solutions for exceptions.
4. Homogeneous multi-core architectures, memory subsystem, interrupts, Programming environments and tools for multicore architectures
5. GPU architectures
6. Programming environments and tools for GPUs I
7. Programming environments and tools for GPUs II
8. Programming environments and tools for GPUs III
9. Programming environments and tools for GPUs (OpenCL).
10. Heterogeneous multi-core architectures, shared and local memory, data transfers.
11. Digital signal processors, DSP VLIW architectures.
12. Special parallel architectures, virtual architectures, neural networks. Systems on chip (SoC, NoC), switching networks, synchronous and asynchronous module interconnections.
13. Final prezentation, conclusions
- Syllabus of tutorials:
1. Introduction, assigning projects to students
2. Development tools, technologie OpenMP
3. Project consultation, project presentation I
4. Project consultation
5. Project presentation II
6. Project presentation III, assessment
- Study Objective:
Nowadays, the importance of parallel computing rapidly grows due to the fact that Moore's law moved to parallelization of processors, multiprocessor systems are becoming a commodity, and even any PC end-user meets these systems. These trends bring challenges for SW developers, since common applications should be optimally parallelized. The goal of the module is to provide an overview of present parallel architectures in PCs, emebedded systems, mobile computing devices, GPUs. The aim is to teach students tools and methods for programming these systems.
- Study materials:
1. El-Rewini, H., Abd-El-Barr, M. ''Advanced Computer Architecture and Parallel Processing''. Wiley-Interscience, 2005. ISBN 0471467405.
2. De Micheli, G., Benini, L. ''Networks on Chips: Technology and Tools''. Morgan Kaufmann, 2006. ISBN 0123705215.
3. Jerraya, A., Wolf, W. ''Multiprocessor Systems-on-Chips''. Morgan Kaufmann, 2004. ISBN 012385251X.
4. Keckler, S. W., Olukotun, K., Hofstee, H. P. ''Multicore Processors and Systems''. Springer, 2009. ISBN 1441902627.
- Further information:
- No time-table has been prepared for this course
- The course is a part of the following study plans:
- Specialization System Programming, Presented in Czech, Version 2014, 2015 (elective course)
- Specialization Web Engineering, Presented in Czech, for Students who Enrolled in 2014 and 2015 (elective course)
- Knowledge Engineering, in Czech, Presented in Czech, for Students who Enrolled in 2015 (elective course)
- Master Informatics, Presented in Czech, Version for Students who Enrolled in 2015 (VO, elective course)
- Specialization Web and Software Engineering, in Czech, Version 2016, 2017 and 2018 (elective course)