This dissertation addresses needed functionality in Shared Virtual Memory (SVM) clusters. Existing APIs for shared memory clusters are not as flexible as APIs supported by todays symmetric multiprocessors and distributed shared memory systems. This makes SVM clusters difficult to use and inhibits application portability across different architectures. This dissertation addresses this problem by providing the standard pthreads interface on top of SVM clusters. Our system, CableS, solves issues related to dynamic memory management, thread management, and synchronization. Existing applications that use pthreads can be run on CableS with minimal or no modifications. Furthermore, CableS introduces minimal overhead in data movement and synchronization operations. |