ScholarQuill logoScholarQuillUniversity Notes
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
Study Tools
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
Contact
ScholarQuill logo
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
ScholarQuill logoScholarQuillUniversity Notes
Study PortalCOMP3139Introduction Parallel …
Ctrl + K
Login
Explore
Search
Semester
Papers
CGPA
    COMP3139

    Parallel & Distributed Computing

    Progress0 / 33 done
    Topics33
    1Introduction to Parallel and Distributed Systems2Why Use Parallel and Distributed Systems?3Speedup and Amdahl's Law
    4Multi Processors (Shared Memory)5Networks of Workstations (Distributed Memory)6Clusters (Latest Variation)
    7Threads and Shared Memory8Processes and Message Passing9Distributed Shared Memory (DSM)10Distributed Shared Data (DSD)11Parallel Algorithms12Concurrency and Synchronization13Data and Work Partitioning14Common Parallelization Strategies15Granularity16Load Balancing
    17Parallel Search18Parallel Sorting19Shared-Memory Programming20Threads in Shared-Memory Programming21P Threads22Locks and Semaphores23Distributed-Memory Programming24Message Passing25Map Reduce26Distributed-Memory Programming with PI27Google's Map Reduce28Hadoop29Other Parallel Programming Systems30Tread Marks31Distributed Shared Memory
    32Scoped Behavior and Abstract Data Types
    33Process Templates
    4 min read
    Topic 1 of 33
    Topic Study Note Illustration
    01

    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...

    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 view and download past papers

    Click on Show Past Papers to load available exam papers.

    Reading Progress
    0%
    4mremaining
    751words
    Beginnerlevel
    On This Page

    No headings found

    Study Toolkit

    Subject Portal

    Parallel & Distributed Computing