Memory Flashcards
What are the two main types of shared memory?
- Uniform Memory Access
- Non-Uniform Memory Access (NUMA)
What is SMP?
Symmetric Multiprocessing OR Shared-Memory Multiprocessing : computer processing done by multiple processors that share a common operating system (OS) and memory.
Give 3 advantages of using a shared memory system.
- User-friendly programming - easy access of variables.
- Fast and uniform data sharing can be obtained.
- Better performance for small systems with 10-100 processors.
Give 2 disadvantages of using a shared memory system.
- Scalability is difficult and costly.
- Programmer must ensure correct access to global memory by using synchronization constructs to prevent non-deterministic conditions, etc.
Give 3 advantages of using a distributed memory system.
- Easier for scalability –> processors are directly proportional to memory.
- Cost effective.
- Preferred for larger systems of 100-1000 processors.
Give 2 disadvantages of using a distributed memory system.
- Data communication between processors is difficult –> programmer should handle it.
- Time for accessing memory will not be uniform.
What is the difference between shared memory and distributed memory?
- In shared memory the processors have a shared global address space that is accessible to all N processors.
- In distributed memory each processor has a private/local memory.
Draw diagrams of each of the 4 parallel machines.
<draw>
1. SISD
2. SIMD - global clock to sync lockstep
3. MISD
4. MIMD
</draw>
List the 4 memory access models in shared memory computers
- EREW
- ERCW
- CREW
- CRCW
Calculate the time complexity of a parallel array sum program for each of the shared memory access models.
- do. - slides–> L03-18
List 5 methods used for conflict resolution in shared memory computers and explain each.
- Arbitrary choice - select a write value from one processor randomly or based on a priority.
- Priority - select value based on priority value assigned to processor.
- Sum - sum of all values from all processors.
- Min/Max - select the min/max of all values
- Common value - only update if all values from all processors requesting to write are the same.