====== Paralelní algoritmy (B4M35PAG), Parallel Algorithms (BE4M35PAG) ====== Lecturer: [[http://people.ciirc.cvut.cz/suchap| Přemysl Šůcha]] Instructor: [[https://dce.fel.cvut.cz/katedra/ing-libor-bukata| Libor Bukata]] Quick links: [[courses:b4m35pag:cviceni|Seminars]], [[http://cw.felk.cvut.cz/upload/|Upload system]], [[https://cw.felk.cvut.cz/forum/thread-3574.html|Forum]], [[http://www.fel.cvut.cz/cz/glance/rooms.html|Lecture and Seminar Rooms]], [[http://www.fel.cvut.cz/cz/education/rozvrhy-ng.B171/public/html/predmety/47/51/p4751806.html|Schedule]], [[http://www.fel.cvut.cz/cz/education/harmonogram1718.html|Academic year time-line]]. ===== Why parallel algorithms? ===== {{pagmotivation.jpg}} ===== News ===== ===== Summary ===== In the introductory lectures, we will focus on general approaches to design of parallel algorithms and their properties important for understanding the fundamental principles of parallel and distributed algorithms. Subsequently, we will talk about fundamental parallel algorithms; typically constituting cornerstones of algorithms for real-world problems. The laboratory exercises will be aimed at hardware platform commonly used in practice (multi-core CPUs, Xeon Phi, ...). ===== Prerequisities ===== The course requires programming skills in C/C++ and good fundamentals algorithms development. ===== Lectures ===== ^ č. ^ Název přednášky ^ Materiály ^ | 1 | Introduction to Parallel Computing | {{:courses:b4m35pag:chap2_slides_selected.pdf| Chapter 2}} | | 2 | Principles of Parallel Algorithms Design | {{:courses:b4m35pag:chap3_slides_selected.pdf| Chapter 3}} | | 3 | Basic Communication Operations | {{:courses:b4m35pag:chap4_slides_selected.pdf| Chapter 4}} | | 4 | Analytical Modeling of Parallel Algorithms | {{:courses:b4m35pag:chap5_slides_selected.pdf| Chapter 5}} | | 5 | Sorting | {{:courses:b4m35pag:chap9_slides_selected.pdf| Chapter 9}}, {{:courses:b4m35pag:bitonic.cpp.txt| bitonic.cpp.txt}} | | 6 | Matrix Algorithms | {{:courses:b4m35pag:chap8_slides_selected.pdf| Chapter 8}} | | 7 | Algorithms for Linear Algebra, TEST | {{:courses:b4m35pag:chap8_slides_selected.pdf| Chapter 8}} | | 8 | Parallel Accelerators | {{:courses:b4m35pag:par_accelerators.pdf| Parallel Accelerators}} | | 9 | Graph Algorithms I. | {{:courses:b4m35pag:chap10_slides_selected.pdf| Chapter 10}} | | 10 | Graph Algorithms II. | {{:courses:b4m35pag:chap10_slides_selected.pdf| Chapter 10}} | | 11 | Combinatorial Algorithms | {{:courses:b4m35pag:chap11_slides_selected.pdf| Chapter 11}} | | 12 | Dynamic Programming | {{:courses:b4m35pag:chap12_slides_selected.pdf| Chapter 12}} | | 13 | Fast Fourier Transform | {{:courses:b4m35pag:chap13_slides_selected.pdf| Chapter 13}} | __There will be a test at lecture #7__. The test starts at the beginning of the lecture and takes approximately 30 minutes. It focuses on knowledge from the lectures and seminars already taught. The test is optional and there will not be any extra one. ===== Clasification and Exam ===== In this subject, we use points for classification. The points can be awarded as follows: * You can get 21 points for homework assignments (3 assignments, 7 points each) * For semestral work you can get up to 14 points. * Up to 10 points can be gain from the test at the lecture (test is optional) * For the written exam, you can get 45 points. * The oral exam can give you 10 points. To obtain the assessment ("zápočet" in Czech), it is necessary to get at least 25 points for homework, semestral work and the test at the lecture. A mandatory condition for obtaining a better grade than "F" is to gain at least 20 points for the written exam. The oral exam is compulsory and the final grade is given by the following table: ^points ^[0,50) ^[50,60) ^[60,70) ^[70,80) ^[80,90) ^[90,100]^ |grade | F | E | D | C | B | A | For the written and oral exam, you will need a pen and few sheets of paper. The exam tests both the knowledge from lectures and seminars. ===== Literatura ===== [1] Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar: [[http://www-users.cs.umn.edu/~karypis/parbook/|Introduction to Parallel Computing]], Second Edition, Addison Wesley, 2003. [2] Georg Hager, Gerhard Wellein: Introduction to High Performance Computing for Scientists and Engineers, CRC Press, 2011. [3] James Reinders, Jim Jeffers: Intel Xeon Phi Coprocessor High-Performance Programming, Newnes, 2013.