Course Name
Parallel Computing
Course Overview 
Level of study	Master Degree 	
Workload	ECTS: 		3
Total Hours:	108
Contact Hours:	48
•	Lectures:	16
•	Labs:		16
•	Seminars:	16	
Course Code	B3.V.2.2	
Semester	Fall	
Prerequisites	Modern issues of informatics and computer science, Intelligent
systems, Decision making theory	
Course Objectives	The main goal - to prepare students for research and design activity.	
Learning Outcomes	To study Parallel Computing a student should:
Know: 
•	modern tendencies of development of parallel computing and technology;
•	basics of creation of parallel programs for shared memory systmes;
•	principles of functioning and technologies of parallel computing;
•	basic parallel constructs that control over a parallel program execution.
Be able to: 
•	apply mathematical methods, theory of algorithms, theory of programming to   solve different tasks;
•	develop parallel programs using the OpenMP, MPI, OpenCL, CUDA technologies;
•	evaluate the performance of parallel programs and increase their efficiency.
•	transform sequential programs into their parallel implementation;
Have skills of: 
•	designing of parallel algorithms;
•	designing of parallel programs;
•	optimizing of parallel algorithms;
•	optimizing of parallel programs;	
Syllabus	Topic 1 Introduction to parallel and distributed computing (lectures 2)
47
Topic 2 Technologies of parallel computing for multi-core processors (lectures 2, labs 4)
Topic 3 Technologies of parallel computing for GPU (lectures 4, labs 4)
Topic 4 Technologies of distributed computing (lectures 4, labs 4)
Topic 5 Hybrid computing methods
(lectures 4, labs 4)	
Labs	Lab 1 OpenMP model for multi-thread processing 
Lab 2 CUDA technologies 
Lab 3 OpenCL model for heterogeneous computing 
Lab 4 MPI technology for distributed processing
Lab 5 Project (Team Work)	
Assessment	Credit test	
Resources	Compulsory
1.	Hoffman S., Lienhart R. Informatik im focus. OpenMP: - Berlin: Springer, 164 s.
2.	M Snir, SW Otto, S Huss-Lederman, DW Walker, J (1998) MPI—The Complete Reference: Volume 1, The MPI Core. MIT Press, Cambridge, MA.
3.	Aoyama, Yukiya; Nakano, Jun (1999) RS/6000 SP: Practical MPI Programming
4.	Quinn Michael J, Parallel Programming in C with MPI and OpenMP McGraw-Hill Inc. 2004.
5.	R. Chandra, R. Menon, L. Dagum, D. Kohr, D. Maydan, J. McDonald, Parallel Programming in OpenMP. Morgan Kaufmann.
6.	Chapman B., Jost G., van der Pas R. Using OpenMP portable shared memory parallel programming., Cambridge, MA, MIT Press, 2008. – 353 p.
Software and Internet resources
1.	NVIDIA official site. CUDA Technology. URL: http://www.nvidia.com
2.	MPI official web-page. Message Passing Interface Forum. URL: http://mpi-forum.org 
3.	OpenMP official page. The OpenMP API specification. URL: http://openmp.org
4.	OpenCL official page. OpenCL – The open standard for parallel programming of heterogeneous systems. URL: http://www.khronos.org/opencl/	
Instructors	Axyonov Sergey Vladimirovich
Assistant Professor
Optimization System Control Department
Institute of Cybernetics
http://portal.tpu.ru/SHARED/a/axoenowsw/eng