EUt+ Mobility
Go back

Course Page ✏️


Parallel Programming
BCSCe15

Description
AIMS AND OBJECTIVES OF THE COURSE: The main goal of the course is to create the necessary basis for understanding and applying the general theory of parallel programming, as well as the features of the design of parallel and asynchronous software implementations for specific classes of parallel computers for different application areas. At the end of the course, students are expected to be able to: explain the basic concepts, principles of parallel and distributed computing, parallel algorithm design methodology; apply the acquired knowledge in the design of parallel software implementations for a wide range of modern parallel computing platforms.
DESCRIPTION OF THE COURSE: The course is an introduction to the methodology and technology of parallel programming and parallel software design. Particular attention is paid to basic concepts and principles, problems, techniques for optimization, and technologies for parallel program implementation. The application aspect of the implementation of parallel and asynchronous code in .NET and Java applications is also considered Main topics: Basics of parallel programming - concepts and terminology in parallel calculations; Design and synthesis of parallel algorithms - basic approaches and stages of synthesis; Implementation of parallelism in applications - functional and parallelisms; Parallel programming for computing platforms based on shared, distributed, and distributed shared memory. Application programming interfaces. Parallel programming for GPGPU computing platforms. Analysis and evaluation of parallel productivity - approaches, methods, and tools. Competitiveness in the C ++ standard. Application aspects of parallel code in .NET environment; Design of high-performance .NET code - factors; code performance analysis; Asynchronous programming - comparison with multithreaded processing, Testing. Synchronization and scheduling of asynchronous .NET applications; Parallelization of data flow operations with PLINQ. Multithreading in Java - performance of phase-competitive tasks; data exchange between competitive tasks; synchronization of multithreaded applications.

ECTS credits
5

Teaching Language
English

Exam Language
English

Support Materials Language
English

Basic Learning Outcomes

Managing Entity (faculty)