We present the essential runtime support mechanisms, techniques, programming interface, and performance of a user-level, runtime library, MMlib, that embeds memory malleability in scientific applications. MMlib automatically controls the DRAM allocations to specified objects in an application, to enable it to execute optimally under variable memory availability. In our earlier work we introduced a basic framework for MMlib, in which DRAM is treated as a dynamic size cache for large memory objects residing on local disk. Optimal use of the DRAM cache is achieved through an algorithm that accurately ascertains memory shortage and availability.
In this talk we review this work and we describe three major enhancements to MMlib. First, we present a general framework that enables fully customizable, memory malleability in a wide variety of scientific applications. Second, we present solutions to some problems posed by the extended functionality of our framework, and some enhancements to its environment sensing capabilities. Third, we introduce a remote memory capability, based on MPI communication of cached memory blocks between `compute nodes' and designated memory servers. The increasing speed of interconnection networks makes a remote memory approach attractive, especially at the large granularity present in large scientific applications.
We present experimental results from three important scientific applications that we link with MMlib. The results show that the memory-adaptive implementations of the applications perform nearly optimally under constant memory pressure and execute harmoniously with other applications competing for memory, without thrashing the memory system. We observe execution time improvements of factors between three and five over relying solely on the virtual memory system. These factors are further improved when remote memory is employed.
Andreas Stathopoulos received a BS in Mathematics in 1989 from University of Athens, Greece, and his MS and Ph.D. degrees in Computer Science from Vanderbilt University in 1991 and 1995 respectively. From 1995 to 1997 he was an NSF CISE postdoctoral associate at the University of Minnesota. Currently, he is an associate professor in the department of Computer Science and affiliated with the Computational Sciences Cluster at the College of William and Mary. His research interests include numerical linear algebra, high performance computing, and scientific applications. He is a member of SIAM, IEEE and IEEE Computer.