Skip to content

pushpsood/ParallelConcurrentDistributedProgrammingConcepts

Repository files navigation

Track of my approach on learning the fundamentals of parallel, concurrent, and distributed programming. I started with the specialization on Coursera taught by Vivek Sarkar named Parallel, Concurrent, and Distributed Programming in Java Specialization and build Maven projects in this repo to showcase key learning outcomes through practical implementation.

ScreenShot

Skills Gained:

  • Java Programming
  • Computer Science
  • Apache Spark
  • Servers
  • Scalability
  • Functional Design
  • Performance Tuning
  • Data Structures
  • Java
  • Distributed Computing
  • Algorithms
  • Network Protocols

Important Resources:

References:

How to use:

  1. Clone the repository:
    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:
    ## Command to generate the tree:
    ## If required get the package(macOS): brew install tree
    ## tree -o readmeTree.md
    
    ├── README.md
    ├── Media
    │  ├── ParallelConcurrentDistributedProgramming.pdf 
    ├──ParallelProgrammingInJava
    │  ├── README.md
    │  ├── ReciprocalArraySumUsingJavaForkJoinFramework
    │  ├── AnalyzingStudentStatisticsUsingJavaParallelStreams
    │  ├── ParallelizingMatrixMatrixMultiplyUsingLoopParallelism
    │  ├── UsingPhasersToOptimizeDataParallelApplications
    ├── ConcurrentProgramminginJava
    │  ├── README.md
    │  ├── LockingandSynchronization
    │  ├── GlobalAndObjectBasedIsolation
    │  ├── SieveofEratosthenesUsingActorParallelism
    │  ├── ParallelizationOfBoruvkaMinimumSpanningTreeAlgorithm
    ├── DistributedProgramminginJava
    │  ├── README.md
    │  ├── FileServer
    │  ├── MatrixMultiplyInMPI
    └  └── PageRankWithSpark
    
  4. You can test the projects by running the respective Test classes in each module.
    • For example, to test the ReciprocalArraySumUsingJavaForkJoinFramework module, run the ReciprocalArraySumTest.java class.

Troubleshooting:

  • If you're getting the below errors while cloning the repository, run the mentioned command:
    ## 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

Specialization:

https://www.coursera.org/account/accomplishments/specialization/CJKSM1MQ59H1

Working Notes:

Reach-out:

If you need any help while going through the repository, feel free to ping me on LinkedIn Pushp Sood

Releases

No releases published

Packages

No packages published

Languages