Parallel and distributed systems
Type: Normative
Department: applied mathematics
Curriculum
Semester | Credits | Reporting |
8 | 2 | Setoff |
Lectures
Semester | Amount of hours | Lecturer | Group(s) |
8 | 28 | Ihor Makar | PMp-42 |
Laboratory works
Semester | Amount of hours | Group | Teacher(s) |
8 | 28 | PMp-42 | Ihor Makar, Associate Professor V. M. Biletskyj |
Course description
The approaches to architecture the cloud-based applications for low latency, high availability, fault tolerance and performance are considered.
The main focus is on designing and building massively parallel applications and distributed algorithms at scale.
Students will build the distributed system ‘from scratch,’ starting from designing the parallel and distributed algorithm, ending at the stage of deployment to cloud.
Along the way, you’ll learn the following modern technologies:
– Apache Zookeeper;
– Apache Kafka;
– MongoDB;
– HAProxy;
– JSON;
– Java HTTP Server and Client;
– Protocol Buffers;
– Azure Cloud etc.
Recommended Literature
1. Martin Klepmann Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, O’Reilly, 2017. –611p.
2. Martin Fowler Patterns of Enterprise Application Architecture. Addison Wesley, 2002, ISBN: 978-0-321-12742-6
3. Unmesh Joshi Patterns of Distributed Systems, Addison-Wesley Professional, 2023. – 416p.
4. Jake Brutlag Speed Matters for Google Web Search, googlesearch.blog-spot.co.uk, June 22, 2009
5. Andre Medeiros ZooKeeper’s atomic broadcast protocol: Theory and practice, 2012
http://www.tcs.hut.fi/Studies/T-79.5001/reports/2012-deSouzaMedeiros.pdf
6. Michael Pogrebinsky Distributed Systems & Cloud Computing with Java, Udemy Course‚ https://www.udemy.com/course/distributed-systems-cloud-computing-with-java/
7. Martin Klepmann Lecture Series at University of Cambridge:
8. Michael Pogrebinsky The Complete Cloud Computing Software Architecture Patterns‚ https://everymatrix.udemy.com/course/the-complete-cloud-computing-software-architecture-patterns/
9. MIT Course materials 6.824 Distributed Systems (Spring 2020)‚ https://www.classcentral.com/course/youtube-mit-6-824-distributed-systems-spring-2020-53357/classroom
10. Vivek Sarkar Distributed Programming in Java, Coursers Course, https://www.coursera.org/learn/distributed-programming-in-java?specialization=pcdp
11. Lukasz Antoniak Building Modern Distributed Systems with Java, Udemy Course‚
https://www.udemy.com/course/building-modern-distributed-systems-with-java/