FAKULTETA ZA ELEKTROTEHNIKO, RAΘUNALNIŠTVO IN INFORMATIKO


Subject
 PARALLEL AND DISTRIBUTED COMPUTING 
https://aips.um.si/PredmetiBP5/UcnaEnotaInfo.asp?Zavod=15&Jezik=A&Leto=2019&Nacin=&Predmet=61V124

Study unit code    61V124 2019

Level Study program or it's part Year Semester
1 BV20 COMPUTER SCIENCE AND INFORMATION TECHNOLOGIES 3 Winter

ECTS kredits 5

Hours - Lectures 30
Hours - Tutorial 2
Hours - Computer Work 28
Hours - Individual Student's Work 90

Lecturers
red. prof. dr. BREST JANEZ

Languages - lectures slovene
Languages - tutorial slovene

Prerequisits
None. 
Content (Syllabus outline)
• Introduction: parallel computer systems, distributed computer systems. • Speedup, performance, scalability of parallel algorithms and distributed systems. • Components of parallel computers: memory, interconnection networks, input and output. • Principles of parallel programming: data and control parallelisms, programming languages, message passing and shared memory. • Multi-core processors, threads, critical sections, shared memory. • Parallelization of sequential programs: OpenMP application programming interface. • Programming with message passing, MPI standard. • Graphics processing unit (GPU), parallel computing using GPU. • Distributed systems: distributed models, communication and synchronisation in distributed systems, distributed file systems (GoogleFS, HDFS). High-performance and high-throughput computing using distributed. • Data-driven parallel computing.  
Readings
• Michael J. Quinn: Parallel programming in C with MPI and OpenMP, McGraw-Hill, 2003. • A. Grama, A. Gupta, G. Karypis, V. Kumar: Introduction to Parallel Computing: Design and Analysis of Algorithms, Second Edition, Addison Wesley, New York, 2003. • Anthony Williams: C++ Concurrency in Action, Practical Multithreading, Manning Publications, 2012. • A. S. Tanenbaum, M. van Steen: Distributed Systems: Principles and Paradigms, Second Edition, Pearson Prentice Hall, Upper Saddle River, NJ, USA, 2006.  
Objectives and competences
The objective of this course is that students will be able to understand the basic principles of parallel and distributed computing.  
Intended learning outcomes - knowledge and understanding
On completion of this course the student will be able to: • demonstrate knowledge and use of distributed computer architectures and parallel computer architectures, • demonstrate the understanding and design of parallel program, • identify, describe and analyse situations, which interfere with activities of parallel and/or distributed computing.  
Intended learning outcomes - transferable/key skills and other attributes
• Communication skills: oral lab work defence, manner of expression at written examination. • Use of information technology: web based information search and use of software tools for parallel computing. • • Problem solving: design and implementation of parallel programs.  

Assessment Weight (%)
Lab work 50  
1st midterm written exam 25  
2nd midterm written exam 25  
Comments
If a student has not completed both midterm exams, he replaces them with a written exam in the weight of 50%.  
[EOP]