Repository for Parallel Programming course given by Assoc. Prof. Dr. Bora Canbula at Computer Engineering Department of Manisa Celal Bayar University.
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.
Some concepts are emphasized in Wiki pages, you can find them in the following link.
You can find the codes that written in the laboratory in the folder WeekXX.
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.
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.
You can switch 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