This paper presents a user-level runtime system which provides memory malleability to programs running on nondedicated computational nodes. Memory malleability is analogous to processor malleability in the physical memory space. It lets a program shrink and expand its resident set size in response to runtime events, while preserving execution correctness. Malleability becomes relevant in the context of grid computing, where loosely coupled distributed programs run on non-dedicated computational nodes with fluctuating CPU and memory loads. User-level malleable memory is proposed as a portable solution to obtain as much as possible out of the available physical memory of a computational node, without thrashing, and before reverting to coarse-grain load balancing via checkpointing and migration. Malleable memory mapping copes also with the unpredictable behavior of existing virtual memory systems under over-sized memory loads. The current prototype is simple but leaves plenty of room for both applicationdependent and application-independent optimizations. The presented results show that user-level malleable memory can improve the throughput of remotely executed programs running on non-dedicated computational nodes by at least an order of magnitude.
In REF , the same author suggested the use of dynamic memory mapping for controlling the resident set of a program within a range of available physical memory.
Malleable memory mapping: user-level control of memory bounds for effective program adaptation
Proceedings International Parallel and Distributed Processing Symposium
Proceedings International Parallel and Distributed Processing Symposium
Computer Science