Parallel and Distributed Processing Symposium, International
Download PDF

Abstract

This paper presents a user-level runtime system which provides memory malleability to programs running on non-dedicated 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 application-dependent 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.
Like what you’re reading?
Already a member?
Get this article FREE with a new membership!

Related Articles