https://github.com/pushpsood/parallelconcurrentdistributedprogrammingconcepts
Resources and projects to get started with parallel, concurrent, and distributed programming.
https://github.com/pushpsood/parallelconcurrentdistributedprogrammingconcepts
actor-framework async-finish atomic-variables concurrent-programming datarace determinism fork-join-framework futures linearization locks parallel-programming phaser
Last synced: 8 months ago
JSON representation
Resources and projects to get started with parallel, concurrent, and distributed programming.
- Host: GitHub
- URL: https://github.com/pushpsood/parallelconcurrentdistributedprogrammingconcepts
- Owner: pushpsood
- License: mit
- Created: 2025-03-25T16:14:16.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-04-23T12:09:02.000Z (8 months ago)
- Last Synced: 2025-04-24T00:58:55.284Z (8 months ago)
- Topics: actor-framework, async-finish, atomic-variables, concurrent-programming, datarace, determinism, fork-join-framework, futures, linearization, locks, parallel-programming, phaser
- Language: Java
- Homepage:
- Size: 40.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
This repo is made to track and show my approach on learning the fundamentals of parallel, concurrent, and
distributed programming. I started with the specialization on Coursera taught by [Vivek Sarkar](https://www.linkedin.com/in/vsarkar)
named [Parallel, Concurrent, and Distributed Programming in Java Specialization](https://www.coursera.org/specializations/pcdp).
### Skills Gained:
- Computer Programming
- Algorithms
- Theoretical Computer Science
- Critical Thinking
- Distributed Computing Architecture
- Programming Principles
### References:
- [Parallel, Concurrent, and Distributed Programming in Java Specialization](https://www.coursera.org/specializations/pcdp)
### How to use:
1. Clone the repository:
```bash
gh repo clone pushpsood/ParallelConcurrentDistributedProgrammingConcepts
```
2. Open the repository in your favorite IDE(preferably intelliJ) and start learning.
3. This repository contains different modules that should be traversed in a specific order, module by module, listed below.
Each module will have a pom.xml file. To make it a workable module, add them as a Maven module in the order listed below:
```bash
## Command to generate the tree:
## If required get the package(macOS): brew install tree
## tree -o readmeTree.md
└── README.md
├── ParallelProgrammingInJava
│ ├── ParallelProgrammingInJavaWorkingNotes.pdf
│ ├── README.md
│ ├── ReciprocalArraySumUsingJavaForkJoinFramework
│ ├── AnalyzingStudentStatisticsUsingJavaParallelStreams
│ ├── ParallelizingMatrixMatrixMultiplyUsingLoopParallelism
│ └── UsingPhasersToOptimizeDataParallelApplications
```
## Troubleshooting:
- If you're getting the below errors while cloning the repository, run the mentioned command:
```bash
## fatal: the remote end hung up unexpectedly
## error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
## send-pack: unexpected disconnect while reading sideband packet
git config --global http.postBuffer 157286400
```
### Reach-out:
If you need any help while going through the repository, feel free to ping me on LinkedIn [Pushp Sood](https://www.linkedin.com/in/pushpsood/)