Multithreaded programming of PC clusters - Schulz, M. (Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622), 2000)
Modern operating systems offer comprehensive and flexible thread APIs that allow the efficient implementation of multithreaded applications. These APIs can, however, only be utilized within Symmetric Multiprocessors (SMPs), which have a very limited scalability. For larger systems, which are in the PC world mostly represented as clusters of SMPs, other paradigms like message passing or handcrafted hybrid systems have to be used. These approaches are generally more difficult to program and require, in contrast to pure shared memory programming models, major code changes compared to sequential codes. This work presents a system that extends the native thread APIs of Windows NT and Linux to clusters of PCs, providing both ease-of-use and scalability. It is based on an efficient hybrid hardware/software DSM solution that is responsible for the creation of a global virtual memory abstraction. On top of this global memory, multithreaded applications can be executed directly using the well known thread API calls. This drastically eases the use of clusters and opens cluster architectures to a whole range of new potential users and applications.