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›Why Use Parallel and Distributed Systems?
    Parallel & Distributed ComputingTopic 2 of 33

    Why Use Parallel and Distributed Systems?

    7 minread
    1,224words
    Intermediatelevel

    Why Use Parallel and Distributed Systems?

    Parallel and distributed systems are used to address some of the biggest challenges in computing, particularly when solving complex problems that require more computational power, faster processing, or better fault tolerance. Let's explore why these systems are necessary in more detail:


    1. Increased Computational Power

    Many modern problems, such as those in science, engineering, and data analysis, involve large datasets or complex calculations that can’t be processed efficiently on a single machine. Parallel and distributed systems can provide the necessary computational power to solve these problems in a reasonable amount of time.

    • Parallel Systems: By using multiple processors (or cores) within a single machine or a tightly coupled system, parallel computing can drastically speed up tasks. For example, a multi-core processor can run multiple parts of a program simultaneously, reducing the time required to complete complex calculations.

    • Distributed Systems: A distributed system connects multiple machines across a network, combining the computational power of many computers to tackle larger problems. This is useful for tasks like running simulations, analyzing big data, or processing large-scale machine learning models.

    Example:

    • Weather Forecasting: Weather predictions rely on processing vast amounts of data from satellites, sensors, and models. A distributed or parallel system can process all this data faster, providing timely and accurate forecasts.

    2. Scalability: Handling Growing Demand

    As data grows (e.g., in social media, scientific experiments, or financial transactions), the demand for computational resources also increases. Scalability refers to a system's ability to handle increasing workloads by adding more resources (like processors or machines) to the system.

    • Parallel Systems: Scaling vertically (adding more cores or processors to a single machine) is one approach, but it’s limited by hardware constraints. There's only so much power a single machine can provide.

    • Distributed Systems: Scaling horizontally (adding more independent machines or nodes to the system) allows distributed systems to handle much larger workloads. This means that if more processing power is needed, more computers can be added, making it easier to grow the system as needed.

    Example:

    • E-commerce Websites: During big sales or events (e.g., Black Friday), websites may experience millions of users at once. Distributed systems allow them to quickly scale by adding more servers to handle the traffic, ensuring the site remains responsive even under heavy load.

    3. Fault Tolerance: Dealing with Failures

    In a single machine or computer, if a failure occurs (like a processor crashing), it can take down the entire system. Fault tolerance ensures that systems remain operational even when individual components fail.

    • Parallel Systems: If one processor or core fails, the entire task could be delayed or stop unless the system is designed to handle such failures. However, this is often harder to manage in a tightly coupled system.

    • Distributed Systems: Distributed systems are more fault-tolerant because they are designed with redundancy and failover mechanisms. If one machine fails, others can take over its tasks without disrupting the whole system. This is especially important for mission-critical applications like online banking or medical services.

    Example:

    • Cloud Storage Services: If a storage server goes down, cloud storage services (like Google Drive or Dropbox) can redirect users to other available servers, preventing data loss and service downtime.

    4. Cost Efficiency: Using Available Resources

    Distributed systems, in particular, can be cost-effective because they allow organizations to use existing resources rather than investing in expensive high-performance machines. By connecting many inexpensive, off-the-shelf computers (such as in a cloud environment), you can create a powerful system that’s much more affordable than purchasing a single supercomputer.

    • Parallel Systems: While expensive, high-performance parallel systems (like supercomputers) can provide massive computational power for tasks that require them.

    • Distributed Systems: Distributed systems can be built with inexpensive hardware, and they are highly flexible. They can run on commodity hardware (e.g., regular desktop computers or cloud servers) and still deliver great performance at a lower cost.

    Example:

    • Data Centers: Instead of building a supercomputer, many organizations opt to set up large data centers with thousands of standard servers, which together can perform large-scale computations much more efficiently and affordably.

    5. Efficient Resource Utilization

    Parallel and distributed systems can make better use of available resources (like CPU power, memory, and storage). They can balance workloads across multiple processors or computers, ensuring that no single resource is overloaded while others are idle.

    • Parallel Systems: In a multi-core processor, the workload can be evenly distributed across the cores, ensuring efficient use of the CPU power.

    • Distributed Systems: Distributed systems distribute tasks across multiple machines, which can each handle a portion of the workload. This ensures that resources are fully utilized, and bottlenecks are avoided.

    Example:

    • Big Data Analytics: In fields like finance, healthcare, and research, big data analytics requires significant computational power. Distributed systems ensure that the processing is spread across multiple machines, making it possible to analyze terabytes or petabytes of data efficiently.

    6. Faster Processing for Time-Sensitive Tasks

    Certain applications, such as real-time systems (e.g., video streaming, online gaming, financial transactions), need fast processing with minimal delays. Parallel and distributed systems allow these applications to process data much faster by leveraging multiple processors or computers.

    • Parallel Systems: By splitting tasks into smaller sub-tasks and running them in parallel, you can achieve faster computation times, which is critical for tasks like rendering high-definition videos or real-time simulations.

    • Distributed Systems: Distributed systems allow for faster processing by delegating tasks to various machines, which can process different aspects of the task simultaneously. This reduces the time taken to complete large-scale operations.

    Example:

    • Real-Time Gaming: Online multiplayer games require quick processing of actions from players all over the world. Distributed systems allow game servers to handle requests from multiple players simultaneously, providing a smooth and responsive experience.

    7. Flexibility and Adaptability

    Distributed systems, in particular, are often more flexible and adaptable than single machines. They can be designed to handle a wide range of tasks, and new nodes can be added or removed as needed without major disruptions to the system.

    • Parallel Systems: While parallel systems can handle specific types of tasks more efficiently, they are usually more rigid in their configuration, as they depend on tightly coupled hardware (e.g., multi-core processors).

    • Distributed Systems: Distributed systems can adapt to changing demands. For instance, cloud-based services can automatically allocate resources to meet spikes in demand, such as during a traffic surge on a website.

    Example:

    • Cloud Computing: Cloud platforms like Amazon Web Services (AWS) and Microsoft Azure allow users to scale up or down their computing resources as needed, providing flexibility to meet demand in real-time.

    Conclusion: Why Parallel and Distributed Systems Are Crucial

    Parallel and distributed systems offer several key benefits, such as:

    • Increased computational power to handle large and complex problems.
    • Scalability to accommodate growing workloads or data.
    • Fault tolerance to ensure reliability and uptime.
    • Cost efficiency by utilizing available resources and spreading tasks across multiple machines.
    • Efficient resource utilization to avoid bottlenecks and underutilized resources.
    • Faster processing for time-sensitive or real-time applications.
    • Flexibility and adaptability to adjust to changing demands.

    By using parallel and distributed systems, we can address the computational challenges posed by modern problems, from data analysis to scientific research and beyond. These systems enable faster, more reliable, and scalable solutions, making them indispensable for many industries and applications.

    Previous topic 1
    Introduction to Parallel and Distributed Systems
    Next topic 3
    Speedup and Amdahl's Law

    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 time7 min
      Word count1,224
      Code examples0
      DifficultyIntermediate