{"id":25019625,"url":"https://github.com/djeada/parallel-and-concurrent-programming","last_synced_at":"2025-04-13T04:09:00.477Z","repository":{"id":114372153,"uuid":"249668988","full_name":"djeada/Parallel-And-Concurrent-Programming","owner":"djeada","description":"Concurrent and parallel programming might seem complex, but this guide simplifies it. Learn about sequential vs non-sequential programming, processes, and threads. Explore examples in popular languages like C++, Python, and JavaScript to apply your new knowledge to your projects.","archived":false,"fork":false,"pushed_at":"2025-02-22T21:13:33.000Z","size":1080,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-13T04:08:41.442Z","etag":null,"topics":["async","concurrency","mpi","multiprocessing","multithreading","parallel","parallelism"],"latest_commit_sha":null,"homepage":"https://adamdjellouli.com/articles/parallel_and_concurrent_programming","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djeada.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-24T09:46:26.000Z","updated_at":"2025-04-04T14:14:54.000Z","dependencies_parsed_at":"2025-01-31T06:15:31.976Z","dependency_job_id":null,"html_url":"https://github.com/djeada/Parallel-And-Concurrent-Programming","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FParallel-And-Concurrent-Programming","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FParallel-And-Concurrent-Programming/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FParallel-And-Concurrent-Programming/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djeada%2FParallel-And-Concurrent-Programming/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djeada","download_url":"https://codeload.github.com/djeada/Parallel-And-Concurrent-Programming/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248661704,"owners_count":21141450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","concurrency","mpi","multiprocessing","multithreading","parallel","parallelism"],"created_at":"2025-02-05T11:51:14.670Z","updated_at":"2025-04-13T04:09:00.427Z","avatar_url":"https://github.com/djeada.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parallel and Concurrent Programming\n\nConcurrent and parallel programming are powerful techniques that can enhance the performance and responsiveness of your applications. This guide demystifies these concepts, covering the differences between sequential and non-sequential programming, as well as the fundamentals of processes and threads. You'll find practical examples in popular languages like C++, Python, and JavaScript, enabling you to apply your new knowledge effectively to your projects.\n\n![Programmer Thinking with Threads](https://user-images.githubusercontent.com/37275728/220352641-fb9487f6-e2a6-4433-943d-fffef4141c02.jpeg)\n\n## Notes\n\n| No. | Description                                                         | Markdown                                                            |\n| --- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |\n| 1   | Basic terminology for parallel and concurrent programming concepts | \u003ca href=\"https://github.com/djeada/Parallel-And-Concurrent-Programming/blob/master/notes/01_basic_terminology.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e \u003c/a\u003e |\n| 2   | Covers the basics of multithreading, including how to create and manage threads, synchronization, and thread safety. | \u003ca href=\"https://github.com/djeada/Parallel-And-Concurrent-Programming/blob/master/notes/02_multithreading.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e \u003c/a\u003e |\n| 3   | Introduces multiprocessing and covers the creation and management of processes, inter-process communication, and synchronization. | \u003ca href=\"https://github.com/djeada/Parallel-And-Concurrent-Programming/blob/master/notes/03_multiprocessing.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e \u003c/a\u003e |\n| 4   | Covers the basics of asynchronous programming, including async/await syntax and asyncio library in Python. | \u003ca href=\"https://github.com/djeada/Parallel-And-Concurrent-Programming/blob/master/notes/04_asynchronous_programming.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e \u003c/a\u003e |\n| 5   | Introduces Message Passing Interface (MPI), a standard for message-passing used in parallel computing. Covers its architecture, implementation, and basic concepts. | \u003ca href=\"https://github.com/djeada/Parallel-And-Concurrent-Programming/blob/master/notes/05_mpi.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e \u003c/a\u003e |\n| 6   | Covers the hardware components and architectures used in parallel computing, including shared-memory and distributed-memory systems, clusters, and GPUs. | \u003ca href=\"https://github.com/djeada/Parallel-And-Concurrent-Programming/blob/master/notes/06_hardware.md\"\u003e\u003cimg src=\"https://img.icons8.com/color/344/markdown.png\" height=\"50\" /\u003e \u003c/a\u003e |\n\n## References\n\n- [Operating Systems Overview](https://www.personal.kent.edu/~rmuhamma/OpSystems/os.html)\n- [The Art of Computer Programming](https://www.oreilly.com/library/view/the-art-of/9780596802424/)\n- [Raymond's Keynote at PyBay 2017](https://pybay.com/site_media/slides/raymond2017-keynote/index.html)\n- [Cornell CS100 Lecture 17](https://courses.cs.cornell.edu/cs100/1999su/lectures/lecture17/sld003.htm)\n- [UC Berkeley CS152 Lectures](https://inst.eecs.berkeley.edu/~cs152/fa16/lectures/)\n- [Princeton Parallel Programming Bootcamp](https://princetonuniversity.github.io/PUbootcamp/sessions/parallel-programming/)\n- [OpenCSF Book on Concurrent Systems](https://w3.cs.jmu.edu/kirkpams/OpenCSF/Books/csf/html/)\n- [Understanding Asyncio](https://lucumr.pocoo.org/2016/10/30/i-dont-understand-asyncio/)\n- [Node.js API Documentation](https://www.cs.unb.ca/~bremner/teaching/cs2613/books/nodejs-api/)\n\n## Contributing\n\nContributions are welcome! If you have suggestions for improvements or want to add new content, please follow these steps:\n\n1. **Fork the Repository**: Click the \"Fork\" button at the top right of this page to create your own copy.\n2. **Create a Branch**: Create a new branch for your feature or bug fix.\n3. **Commit Changes**: Make your changes and commit them with clear messages.\n4. **Open a Pull Request**: Submit a pull request describing your changes and why they should be merged.\n\nFor major changes, please open an issue first to discuss your ideas.\n\n## License\n\nThis project is licensed under the [MIT License](https://choosealicense.com/licenses/mit/).\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=djeada/Parallel-And-Concurrent-Programming\u0026type=Date)](https://star-history.com/#djeada/Parallel-And-Concurrent-Programming\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjeada%2Fparallel-and-concurrent-programming","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjeada%2Fparallel-and-concurrent-programming","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjeada%2Fparallel-and-concurrent-programming/lists"}