Designing virtual memory systems for parallel and distributed computing
Veronica Lagrange Moutinho Dos Reis, Isaac D. Scherson · 1996
Modern parallel machines, such as the CRAY T3D, do not provide virtual memory: it is the programmer's responsibility to adapt the data to the physical memory available or to code any required out-of-core space. However, virtual memory is an important feature in terms of programming convenience, code portability and in providing time-shared environments. Because different machines have different physical memory sizes, virtualization allows programs to be ported across machines without the need to redefine data structures and eventually having to add out-of-core code. Virtual memory also provides a more flexible platform for time-sharing once the real amount of physical memory given to a program may change over time. Starting from an analysis of the current state of the art and previous attempts to implement parallel virtual memory systems, this dissertation analyzes the issues involved and demonstrates why parallel virtual memory is not straightforward from sequential virtual memory. Once the issues are presented, a model and two policies to implement parallel virtual memory are proposed. These policies, called static and dynamic are extensively analyzed and experimented with, through simulations, for different parallel environments: a tightly coupled massively parallel processor (MPP) and a loosely coupled network of workstations. Results collected indicate the feasibility and low cost of providing parallel virtual memory. Between the policies proposed, however, it is not clear which one would provide better performance in any environment. This is the case because the different policies presented conflicting results under different environments. For example, in the single user case, the dynamic policy is a marginally better choice for an MPP while the static policy is a clearly better choice for a network of workstations. For the time-shared environments simulated, on the other hand, dynamic policy presented a better performance in nearly all cases (for both an MPP and a network of workstations).