Parallel Algorithms and Systems (MAE840): Διαφορά μεταξύ των αναθεωρήσεων
Από Wiki Τμήματος Μαθηματικών
Γραμμή 73: | Γραμμή 73: | ||
=== Syllabus === | === Syllabus === | ||
# Historical review of parallel and distributed processing. | # Historical review of parallel and distributed processing. | ||
Von Neumann model. Flynn categorization. Tubing. Multiprocessors, Multi-computers. | # Von Neumann model. Flynn categorization. Tubing. Multiprocessors, Multi-computers. | ||
# Distributed and Shared Memory Systems. Memory architectures for single and non-unified access time. | # Distributed and Shared Memory Systems. Memory architectures for single and non-unified access time. | ||
Performance calculations and metrics. System scalability, partitioning and optimization. Parallel computer interface networks. | # Performance calculations and metrics. System scalability, partitioning and optimization. Parallel computer interface networks. | ||
# Law of Grosch, of Amdahl, of Gustafson Barsis. Design of parallel applications. | # Law of Grosch, of Amdahl, of Gustafson Barsis. Design of parallel applications. | ||
# Program parallelization - MPI. Synchronization. Dependency charts, shared resources and racing conditions. Scheduling. Shared Memory Affinity. MESI. Parallel Processing using parallella FPGA cores. | # Program parallelization - MPI. Synchronization. Dependency charts, shared resources and racing conditions. Scheduling. Shared Memory Affinity. MESI. Parallel Processing using parallella FPGA cores. | ||
Γραμμή 91: | Γραμμή 91: | ||
# Using Gather-Scatter-Reduce-Broadcast Collective Methods and Examples. | # Using Gather-Scatter-Reduce-Broadcast Collective Methods and Examples. | ||
# Basic structures for organizing distributed programs. Examples of distributed calculations. Advanced data types using MPI. Creating # Complex Data Structures with MPI And Sending Data Structure Messages. | # Basic structures for organizing distributed programs. Examples of distributed calculations. Advanced data types using MPI. Creating # Complex Data Structures with MPI And Sending Data Structure Messages. | ||
# Parallel programming OpenMP and Epiphany-SDK, BSP. | # Parallel programming OpenMP and Epiphany-SDK, BSP. | ||
=== Teaching and Learning Methods - Evaluation === | === Teaching and Learning Methods - Evaluation === | ||
{| class="wikitable" | {| class="wikitable" |
Αναθεώρηση της 20:24, 29 Ιουνίου 2022
General
School |
School of Science |
---|---|
Academic Unit |
Department of Mathematics |
Level of Studies |
Undergraduate |
Course Code |
MAE840 |
Semester |
8 |
Course Title |
Parallel Algorithms and Systems |
Independent Teaching Activities |
Lectures-Laboratory (Weekly Teaching Hours: 3, Credits: 6) |
Course Type |
Special Background |
Prerequisite Courses |
Introduction to programming, Introduction to Computers, Database Systems and Web applications development |
Language of Instruction and Examinations |
Greek |
Is the Course Offered to Erasmus Students |
Yes(in English) |
Course Website (URL) | https://spooky.math.uoi.gr/eclass |
Learning Outcomes
Learning outcomes |
Students knowledge acquisition of:
|
---|---|
General Competences |
|
Syllabus
- Historical review of parallel and distributed processing.
- Von Neumann model. Flynn categorization. Tubing. Multiprocessors, Multi-computers.
- Distributed and Shared Memory Systems. Memory architectures for single and non-unified access time.
- Performance calculations and metrics. System scalability, partitioning and optimization. Parallel computer interface networks.
- Law of Grosch, of Amdahl, of Gustafson Barsis. Design of parallel applications.
- Program parallelization - MPI. Synchronization. Dependency charts, shared resources and racing conditions. Scheduling. Shared Memory Affinity. MESI. Parallel Processing using parallella FPGA cores.
- Models and process communication mechanisms. Vector Processing. Arrays and computational grid. Examples of application parallelization. Synchronization issues
Course laboratory part
- Introductory programming concepts using gcc. Pointers, classes, dynamic structures. Creating processes in Linux, separating user-space and kernel-space concepts, parenting processes and parent-child relationships, Process Management.
- Containers, Templates, STL (C++ standard templates library).
- Introduction to Boost and advanced C ++ aspects.
- Introduction to C ++ Armadilo
- Process intercommunication. Static memory areas, pipelines, shared memory areas, process signalling.
- Threads creation and thread management. shared thread memory areas, critical areas, producer-consumer model, threads signalling.
- Thread Management and Synchronization, critical areas protection using mutex locks and semaphores. Presentation of conditional execution threads and sync barriers.
- Introduction to MPI, MPI settings, MPI key features presentation, preliminary MPI programs.
- Presentation of basic modern methods of sending and receiving messages in MPI. Presentation of asynchronous upload methods. Examples.
- Using Gather-Scatter-Reduce-Broadcast Collective Methods and Examples.
- Basic structures for organizing distributed programs. Examples of distributed calculations. Advanced data types using MPI. Creating # Complex Data Structures with MPI And Sending Data Structure Messages.
- Parallel programming OpenMP and Epiphany-SDK, BSP.
Teaching and Learning Methods - Evaluation
Delivery |
Classroom | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Use of Information and Communications Technology | Use of Micro-computers Laboratory | ||||||||||
Teaching Methods |
| ||||||||||
Student Performance Evaluation |
|
Attached Bibliography
- Parallel Scientific Computing in C++ and MPI: A Seamless Approach to Parallel Algorithms and their Implementation, G.M. Karniadakis and R.M. Kirby, 2003, Cambridge University press, ISBN: 0-521-81754-4
- Using OpenMP, Portable Shared Memory Parallel Programming., B. Chapman, G. Jost and R. Pas, 2008, MIT press, ISBN: 9780262533027
- Learning Boost C++ libraries, A. Mukherjee, 2015, PACKT, ISBN:978-1-78355-121-7
- Boost C++ Application Development Cookbook - Second Edition: Recipes to simplify your application development, 2 Edition, A. Polukhin, 2017, PACKT, ISBN:978-1-78728-224-7
- C++17 STL Cookbook, J. Galowicz, PACKT,978-1-78712-049-5, 2017