Assignment 1 & 2
Assignment 1 & 2
Objective
This assignment evaluates the fundamental concepts, architectures, and models in parallel and
distributed computing, emphasizing understanding of key theoretical principles.
1. What are the key differences between parallel computing and distributed computing?
2. Why has parallel and distributed computing become essential in modern computing
applications?
3. Explain the role of parallel computing in scientific simulations and big data processing.
3. Explain the SIMD model and provide examples of applications that use it.
4. Discuss why MISD is considered a rare architecture and give an example of its application, if
any.
5. Compare and contrast MIMD with SIMD in terms of flexibility and application.
6. How does Flynn’s Taxonomy help in understanding and designing modern processors?
4. What are the main challenges associated with managing multiple threads within a single
program?
1. What is the Data Parallel Model, and in which scenarios is it most useful?
2. Describe the Task Graph Model and give examples of applications that benefit from this
model.
3. How does the Work Pool Model help in dynamic task distribution, and what are its
advantages?
4. Explain the Master-Slave Model and discuss a real-world example where it might be
applied.
5. Describe the Pipeline Model and discuss how it is similar to an assembly line in a factory.
6. What are the advantages and potential drawbacks of using a Hybrid Model for complex
computations?
6. Provide a code example in C/C++ using OpenMP to create a parallel region, and explain its
components.
2. What is strict consistency, and why is it difficult to achieve in large distributed systems?
6. Compare the benefits and trade-offs between strict consistency and eventual consistency.
5. Discuss the difference between hard affinity and soft affinity in scheduling.
6. How does scheduling affect the overall efficiency of a multiprocessor system?
• Question: Select a type of processor or computing system (e.g., Graphics Processing Unit
or a multi-core processor) and classify it according to Flynn's Taxonomy. Explain how its
architecture (e.g., SIMD or MIMD) contributes to its effectiveness in specific applications.
• Question: Choose a case study where a particular type of architecture (such as SIMD or
MIMD) is advantageous. Explain why this architecture is better suited for that application
and how it affects performance and processing power.
• Question: Choose an application that uses the Data Parallel Model, such as image
processing or matrix multiplication. Describe how data parallelism is implemented in this
application and how it benefits performance.
• Question: Explain a real-world scenario where the Master-Slave Model would be an
effective parallel algorithm model. Describe how tasks are distributed and processed and
the advantages and potential challenges of using this model.
• Question: Create a small OpenMP code example (handwritten) that parallelizes a basic
task, such as summing an array of numbers. Explain each part of the code and how
OpenMP makes it easier to implement parallelism.
• Question: Explain the concept of processor affinity in multiprocessor systems and how it
affects performance. Choose an example where processor affinity is applied to enhance
cache performance and reduce latency.
Instructions
• Answer each question in paragraph form, providing in-depth explanations, examples, and
diagrams where necessary.
• Focus on real-world applications, practical challenges, and insights from each topic.
• Diagrams and Code: Include diagrams to illustrate concepts, such as architecture types or
OpenMP code structure. Handwrite any code snippets neatly with comments explaining
each line.
• References: If any textbooks, articles, or online sources were consulted, include a short
references section at the end of the assignment.