Skip to content

canbula/ParallelProgramming

Repository files navigation

Parallel Programming 2023

Repository for Parallel Programming course given by Assoc. Prof. Dr. Bora Canbula at Computer Engineering Department of Manisa Celal Bayar University.

made-with-python MIT license GitHub stars GitHub forks GitHub contributors GitHub total-pull-requests GitHub pull-requests merged

Course Information

This course is about parallel programming using Python. Students will learn the basic concepts of parallel programming like threads, processes, and distributed systems. They will also learn how to use Locks, Semaphores, and Queues to synchronize threads and processes. Course starts with a brief introduction to Python and then continues with the asynchronous programming using asyncio. In the following sections, students will learn how to create multithread and multiprocess applications. Finally, students will learn how to create distributed applications using cluster computing with containers. You can find some supplementary videos for this course on my YouTube channel.

Wiki

Some concepts are emphasized in Wiki pages, you can find them in the following link.

Wiki Pages

Weekly Content

You can find the codes that written in the laboratory in the folder WeekXX.

Lecture Notes and Problem Sets

In the root folder there is a LectureNotes.pdf file, which is updated weekly after every lecture. At the end of the every chapter, you will also find a Problem Set.

Homeworks

Students are requested to submit their homeworks to folders WeekXX, as defined in the LectureNotes.pdf. The codes will be subject to certain GitHub action workflows to be tested automatically.

Variable Types and Sequences
Week02 Homework

Functions and Decorators
Week03 Homework

Coroutines
Week04 Homework

Monte Carlo Pi Estimator as a Generator
Week06 Homework

Codes and Videos from Previous Years

You can change the branch to see the codes from previous years. Also there is a YouTube playlist, which includes the supplementary videos for the course as given in 2021. The videos do not include the introductory Python and asynchronous programming part, so they start from Week06.

https://www.youtube.com/playlist?list=PL30NBs02RsiUbmXVPDo56APsU0xa6gfL2