This project examines various aspects of distributed computing. We have concentrated recently on efficient communication mechanisms for distributed programming and on global resource management in networks. Our efforts are often geared to parallel programming as well as distributed programming. Following are just a few brief descriptions:
The emergence of a new generation of networks and workstations will dramatically increase the attractiveness of using workstation clusters as a multiprocessor or multicomputer. The key to achieving high performance in this environment is efficient network access, because the cost of remote access dictates the granularity of parallelism that can be supported. Thus, in addition to traditional distribution mechanisms such as RPC, workstation clusters should support lightweight communication paradigms for executing parallel applications.
We propose a simple communication model based on the notion of remote memory access. Applications executing on one host can perform direct memory read or write operations on user-defined remote memory regions. The model provides protected and efficient access to the network in the presence of time-slicing and virtual memory. The model separates control and data transfer allowing either or both to be optimized. We have shown that this model can be supported safely and efficiently on current systems; e.g., a 40-byte remote write operation completes in 30 microseconds on our 140 Mb/s ATM-based network with 19.5 SPECint DECstation hosts. The model allows distributed systems to be implemented very efficiently by separating out data and control transfers. It also helps in implementing transport protocols as user-level libraries as well as in writing medium-grained scientific applications on workstation clusters.
As network latencies decrease, the time to fetch a page from the memory of another node in the network becomes smaller than the time to read a page from local disk. This allows the operating system to exploit the now enormous collection of network-wide RAM to avoid or greatly reduce disk reads in many cases. We have developed an algorithm to manage memory globally in the network. In our system, one node that is heavily paging will use memory in other network nodes that are lightly loaded. The scheme is global in that, on a page replacement, we try to remove the globally least valuable page, in order to keep the globally most valuable pages loaded in primary memory on the network. We have implemented our algorithm by modifying the virtual memory and file buffer system on the DEC Alpha OSF/1 system, and have measured a 20-node ATM-based (DEC AN2) network to demonstrate the performance advantages of our approach. As well, we have demonstrated how subpages may be used to improve performance for remote paging on higher-speed networks. Current work involves the integration of file and virtual memory prefetching with the global memory system.