ScholarQuill logoScholarQuillUniversity Notes
  • Notes
  • Past Papers
  • Blogs
  • Todo
Login
ScholarQuill logoScholarQuillUniversity Notes
Login
NotesPast PapersBlogsTodo
More
SubjectsDiscussionCGPA CalculatorGPA CalculatorStudent PortalCourse Outline
About
About usPrivacy PolicyReportContact
Notes
Past Papers
Blogs
Todo
Analytics
    Current Subject
    🧩
    Parallel & Distributed Computing
    COMP3139
    Progress0 / 33 topics
    Topics
    1. Introduction to Parallel and Distributed Systems2. Why Use Parallel and Distributed Systems?3. Speedup and Amdahl's Law4. Hardware Architectures: Multi Processors (Shared Memory)5. Hardware Architectures: Networks of Workstations (Distributed Memory)6. Hardware Architectures: Clusters (Latest Variation)7. Software Architectures: Threads and Shared Memory8. Software Architectures: Processes and Message Passing9. Software Architectures: Distributed Shared Memory (DSM)10. Software Architectures: Distributed Shared Data (DSD)11. Parallel Algorithms12. Concurrency and Synchronization13. Data and Work Partitioning14. Common Parallelization Strategies15. Granularity16. Load Balancing17. Examples of Parallel Algorithms: Parallel Search18. Examples of Parallel Algorithms: Parallel Sorting19. Shared-Memory Programming20. Threads in Shared-Memory Programming21. P Threads22. Locks and Semaphores23. Distributed-Memory Programming24. Message Passing25. Map Reduce26. Distributed-Memory Programming with PI27. Google's Map Reduce28. Hadoop29. Other Parallel Programming Systems30. Tread Marks31. Distributed Shared Memory32. Aurora: Scoped Behavior and Abstract Data Types33. S Enterprise: Process Templates
    COMP3139›Introduction to Parallel and Distributed Systems
    Parallel & Distributed ComputingTopic 1 of 33

    Introduction to Parallel and Distributed Systems

    4 minread
    751words
    Beginnerlevel

    Introduction to Parallel and Distributed Systems

    Parallel and Distributed Systems are two types of computing architectures that are designed to solve large and complex problems more efficiently by using multiple resources, such as processors, computers, or networks. Let’s break down each of these concepts and how they work.


    Parallel Computing

    Parallel computing is a type of computing where several processors (or cores) work together at the same time (in parallel) to solve a problem. The idea is to split a big problem into smaller tasks, and each task is processed simultaneously by different processors. This can make solving problems much faster than using a single processor.

    Key Points about Parallel Computing:

    • Multiple Processors: In parallel computing, multiple processors or cores perform calculations simultaneously.
    • Speedup: The goal of parallel computing is to speed up computations. By dividing tasks among multiple processors, you can complete tasks much faster than if a single processor were doing everything alone.
    • Shared Memory: In some parallel systems, all processors can access a common memory space (this is called shared memory). This allows the processors to work on the same data.
    • Types of Parallelism:
      • Data Parallelism: The same operation is applied to different pieces of data. For example, processing multiple items in a list at the same time.
      • Task Parallelism: Different tasks or operations are run at the same time, where each processor is working on a different part of the overall task.

    Examples of Parallel Computing:

    • Running scientific simulations (e.g., climate modeling) where large datasets are processed quickly.
    • Image or video processing tasks where each pixel can be handled independently.

    Distributed Computing

    Distributed computing, on the other hand, involves multiple computers (or nodes) that work together over a network to solve a problem. Each computer in a distributed system may have its own memory and processor, and they communicate over a network to share information and coordinate tasks. Unlike parallel computing, the systems in distributed computing might be physically separate, possibly located in different places.

    Key Points about Distributed Computing:

    • Multiple Computers: Distributed systems involve several independent computers or nodes connected through a network.
    • Independent Resources: Each computer typically has its own memory, CPU, and storage, and they work together to solve a larger problem.
    • Communication: These computers communicate via a network (like the internet or a local network) to exchange data and coordinate tasks.
    • Fault Tolerance: Distributed systems are designed to handle failures gracefully. If one computer fails, the others can still continue to work on the problem.
    • Scalability: Distributed systems can scale easily. If the workload increases, you can add more computers (or nodes) to handle the additional load.

    Examples of Distributed Computing:

    • Cloud computing platforms (like AWS or Google Cloud), where services are distributed across multiple servers.
    • Distributed databases that store data across multiple machines to handle large amounts of data efficiently.

    Key Differences between Parallel and Distributed Systems:

    Aspect Parallel Computing Distributed Computing
    Scope Uses multiple processors (often in the same machine). Uses multiple independent computers over a network.
    Memory Shared memory (in some systems). Each node has its own memory.
    Communication Can be within a single system, often with fast communication. Relies on network communication, which can be slower.
    Failure Typically, failure of one processor affects the whole system. More fault-tolerant; if one node fails, others continue.
    Examples Supercomputers, multi-core processors. Cloud services, distributed databases, peer-to-peer networks.

    Why Use Parallel and Distributed Systems?

    Both parallel and distributed computing are important because they allow us to solve larger and more complex problems that would be impossible or too slow to solve on a single computer.

    • Parallel Computing is used when a problem can be broken down into smaller, independent tasks that can be computed simultaneously (e.g., simulations, processing large datasets).
    • Distributed Computing is used when tasks need to be spread out across many machines, often located in different places, or when the system needs to handle failures without crashing (e.g., running web services, large-scale data storage systems).

    By combining these approaches, modern computing systems can be both fast and reliable, and they can scale to handle an ever-growing amount of data and computation.


    Conclusion

    In summary:

    • Parallel computing focuses on using multiple processors or cores to solve a problem faster.
    • Distributed computing focuses on using many independent computers, often located in different places, to work together on a task.

    Both approaches help us handle complex, large-scale problems in a more efficient way than relying on a single computer or processor.

    Next topic 2
    Why Use Parallel and Distributed Systems?

    Past Papers

    Open this section to load past papers

    Click on Show Past Papers to see past papers.
    On This Page
      Reading Stats
      Est. reading time4 min
      Word count751
      Code examples0
      DifficultyBeginner