ParallelProgramming
ParallelProgramming copied to clipboard
Repository for Parallel Programming course given by Assoc. Prof. Dr. Bora Canbula at Computer Engineering Department of Manisa Celal Bayar University.
Parallel Programming 2023
Repository for Parallel Programming course given by Assoc. Prof. Dr. Bora Canbula at Computer Engineering Department of Manisa Celal Bayar University.
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.
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.
Monte Carlo Pi Estimator as a Generator
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