Students who successfully complete this course will
be able to:
1.
Define parallel architectures.
2. Understand
the technological, architectural trends, economic and application requirements
that dictate the growth of parallel systems.
3.
State some of the motivations behind the development of parallel systems
4.
Understand some of the fundamental design issues of the parallel computer
Systems such as Resource allocation, data access, performance and
scalability.
5.
Understand and Classify Parallelism. ILP, task level and program level
parallelism.
6.
Understand and illustrate the Taxonomy of Parallel computers and the Flynn
taxonomy
7.
Study the different types of Parallel architectures such as SIMD, MISD, MIMD
8.
Understand the concept of memory hierarchies and its big impact on the
Performance of applications.
9.
Study the operation of memory hierarchy and analyze the range of Performance
issues influencing its design.
10.
Classify the components/levels of memory hierarchy such as register, Cache
(SRAM), Memory (DRAM), Disk etc.
11.
Understand the Cache memory, its organizations (Direct Mapped, Set
associative and fully associative), and addressing and performance metrics.
12.
Understand the concept of prefetching in multiprocessor systems and how it is
used to improve the cache performance.
13.
Understand the concept of shared memory, its advantages and disadvantages.
14.
Classify the Shared Memory Multiprocessors Variations. Uniform and
Non-Uniform Memory Access (UMA) Multiprocessors
15.
Study the shared memory multi-processor organization. (Shared cache, shared
bus and distributed shared memory).
16.
Understand the type of hardware support required to construct a shared Memory
multi-processor.
17.
Assess the key technical challenges in the design of such machines (such as
organization and implementation of the shared memory subsystem).
18.
Understand issues for a shared memory architecture (Cache coherence, Memory
consistency models, synchronization support)
19.
Explain the cache coherence problem, cache coherence protocols,
Implementations (snooping, directory) and assessing their behavior)
20.
List and compare key characteristics of the bus based and shared cache Multi
processors.
21.
Understand cache coherence in bus-based multiprocessors.
22.
Study the Bus-Snooping cache coherence protocol.
23.
Analyze the impact of the cache design on Cache coherence performance.
24.
Understand the different types of synchronization in parallel architectures such as (event and group synchronization)
25.
List the components of a synchronization event.
26.
Study some synchronization operations such as locks and barriers, their Performance
criteria, implementation, illustration and drawbacks.
27.
Compare different synchronization operations.
28.
Understand the limitations of the Symmetric shared multi processors.
29.
Understand the concept of scalable-shared memory systems.
30.
Study the implementation of distributed shared memory coherence protocols.
31.
Describe the advantages (reduce bandwidth demands) limitations and the
Performance criterion of directory based protocol.
32.
Define the inter connection networks
33.
Describe the network characteristics such as topology, routing algorithm,
Switching strategy, and flow control.
34.
Compare between different network topologies
35.
Analyze the impact of network characteristics on the performance and
functionality of the communication system.
36.
Study the organizational structure of parallel computer networks.
37.
Describes the different classes of routing algorithms used in modern
machines.
38.
Understand key properties of good routing algorithms (producing deadlock-free
routes, maintaining low latency, spreading load evenly, and
tolerating faults)
39.
Understand the multi core processors.
40.
Contrast single core and multi-core processors
41.
List some of the advantages and applications of multi-core processors.
42.
Study the multi-core memory hierarchy, issues, design space and constraints.
43.
Multi core memory hierarchy issues design space and constraints
44.
Cache coherence problem and its solution in multi-core architectures.
45. Compare SMT
(Simultaneous Multi-threading) and Multi-core systems
|