1. Introduction into parallel and distributed computing. Parallelism and pseudoparallelism, processes, threads.
2. Classification of parallel and distributed systems. Flynn's taxonomy. Shared and distributed memory systems.
3. Programming for shared memory systems. OpenMP, C++11, Thread Building Blocks.
4. Other up-to-date parallel processing models for shared memory systems. Programming languages Go, Rust. Parallelism in Python.
5. Distributed memory systems. Interconnect networks and their properties.
6. Message passing interface (MPI). Point-2-point and collective communication.
7. Task/channel model of parallel computing. Message queues, Message Oriented Middleware (MOM). Posix queues.
8. Distributed shared memory, Partitioned Global Address Space (PGAS) model. Programming languages Unified Parallel C (UPC) and UPC++.
9. General purpose graphic cards for parallelization/acceleration of computing.
10. Cloud computing. Map-Reduce model and frameworks Hadoop, Spark, and Flink.
11. Web services and their use for distributed computing. Remote procedure call. Architectural style Representational State Transfer (REST).
12. TensorFlow and its use. Application framework Caffe2.
13. Parallel and distributed methods for Big Data processing.
2. Classification of parallel and distributed systems. Flynn's taxonomy. Shared and distributed memory systems.
3. Programming for shared memory systems. OpenMP, C++11, Thread Building Blocks.
4. Other up-to-date parallel processing models for shared memory systems. Programming languages Go, Rust. Parallelism in Python.
5. Distributed memory systems. Interconnect networks and their properties.
6. Message passing interface (MPI). Point-2-point and collective communication.
7. Task/channel model of parallel computing. Message queues, Message Oriented Middleware (MOM). Posix queues.
8. Distributed shared memory, Partitioned Global Address Space (PGAS) model. Programming languages Unified Parallel C (UPC) and UPC++.
9. General purpose graphic cards for parallelization/acceleration of computing.
10. Cloud computing. Map-Reduce model and frameworks Hadoop, Spark, and Flink.
11. Web services and their use for distributed computing. Remote procedure call. Architectural style Representational State Transfer (REST).
12. TensorFlow and its use. Application framework Caffe2.
13. Parallel and distributed methods for Big Data processing.