151 likes | 300 Vues
This final report presents the design and implementation of a user-level distributed shared memory (DSM) system. It details the architecture, including data structures like the page table and essential system calls such as `mmap()` and `mprotect()`. The report discusses the development of a simple API for DSM and highlights performance evaluations using benchmarks like Jacobi's method and parallel matrix multiplication. Key assumptions about network reliability and server congestion are addressed, alongside improvements in communication models and memory consistency strategies. Future work is also outlined.
E N D
An Implementation of User-level Distributed Shared Memory Wei Zhang & Shu Liu
DSM: Shared Memory + Distributed Memory Final Report
Problems & Solutions Final Report
Cont. Final Report
Design Overview Final Report
For a read Final Report
For a write Final Report
Implementation • Data structures: • Page Table in each node • Pageinfo in server • Important system calls • mmap() • mprotect() • SIGSEGV signal: handle page fault • pthread: receive page fault request and send data Final Report
Cont. • MPI: create a cluster and be responsible for communication • #include ”dsm.h”: a simple yet powerful API 2014/9/14 Final Report 9
Cont. Include dsm header file Start dsm system Allocate shared memory Synchronize Free shared memory Exit Final Report
Evaluation • Assumptions: • server congestion is not the bottleneck • network is reliable • Benchmarks: • Jacobi: partial differential equations: Ax=b • MM: parallel matrix multiply: C=AB • Scan: multi-iteration scan program • Focus: multi-iteration write program Final Report
Cont. • Speedup Final Report
Cont. • Page Fault 2014/9/14 Progress Report 13 Final Report
Conclusion & Future work • Achieved what we claimed • Improvement: • Blocking Communication-> Non-blocking Communication • Other Memory Consistency Model (MRMW) • Decrease network communication
Thank you! 2014/9/14 Final Report 15