Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2019/2020

Efficient Implementation of Algorithms

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
BIE-EIA Z,ZK 5 2P+1C
Přednášející:
Ivan Šimeček (gar.)
Cvičící:
Ivan Šimeček (gar.)
Předmět zajišťuje:
katedra teoretické informatiky
Anotace:

Students learn to combine their programming skills (ability to design efficient algorithms) and HW knowledge (utilization of all available features of a particular processor and memory architecture). Students learn the basics of code tuning and optimization.

Požadavky:

Subject BI-EFA. Knowledge of C or C++ programming, active knowledge of assembly language. Good knowledge of processor and memory architecture concepts.

Osnova přednášek:

1. Recap of basic computer architecture concepts (pipeline, vector instructions, cache memory, TLB).

2. New architecture features of modern CPUs.

3. Multicore architectures.

4. Multicore programming in OpenMP API.

5. Efficient algorithms, asymptotic complexity.

6. Efficient data structures and their combinations.

7. Basic routines for numerical linear algebra (dense matrices).

8. Basic routines for numerical linear algebra (sparse matrices).

9. Source code transformations I.

10. Source code transformations II.

11. Compilers and optimizations.

12. Models of cache behavior.

13. Models of cache behavior in multicore environments.

Osnova cvičení:

1. Introduction, laboratory equipment

2. Performance metrics.

3. Algorithms for searching elements.

4. Algorithms for searching patterns in text, evaluation of logical expressions

5. Event counters based profiling, assignment No. 1.

6. Experiments with compiler's settings

7. Sorting of arrays and linked lists.

8. Sorting on external memories, checking the assignment No. 1

9. FFT algorithm, modelling of multi-element interaction, assignment No. 2

10. Graph algorithms, assignment No. 3.

11. Encryption, data compression, checking the assignment No. 2

12. Available math libraries.

13. Checking the assignment No. 3.

Cíle studia:

The aim of the module is to develop an ability to write efficient and practically usable programs by linking knowledge of HW and SW, which is often taught separately. The module teaches how to combine knowledge of both fields to create an efficient program for a given machine (for instance, in asymptotic complexity analysis, multiplicative constants are disregarded as uninteresting, while in real world they are relevant). The students learn how to get maximum performance from a computer and how to recognize that the maximum has been reached.

Studijní materiály:

1. Wolfe, M. ''High-Performance Compilers for Parallel Computing''. Addison Wesley, 1995. ISBN 0805327304.

2. Wadleigh, K. R., Crawford, I. L. ''Software Optimization for High Performance Computing: Creating Faster Applications''. Prentice Hall PTR, 2000. ISBN 0130170089.

Poznámka:

Rozsah=prednasky+proseminare+cviceni2p+1c

Rozvrh na zimní semestr 2019/2020:
Rozvrh není připraven
Rozvrh na letní semestr 2019/2020:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 16. 9. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet1447006.html