Survey of Memory Management Techniques for HPC and Cloud Computing <s> C. MEMORY ALLOCATION <s> Energy consumption is now a growing problem and leads to high costs in large data center based on virtualization technology. In data center, large memory consumes the main part of total energy, up to 41%. Observed from our experiments, we find that the dispersion characteristic of the virtual machine memory has a great impact on the overall energy consumption. This paper redesigns virtual machine's memory allocation scheme to reduce memory's energy consumption in virtual machine monitor. Two heuristic algorithms of allocating memory for virtual machines are proposed. Besides, based on the new memory allocations, we also design a dynamic memory management system for runtime environment. Experimental results show that our scheme achieves above 50% power reduction. Reducing memory's energy consumption based on virtual machine memory allocation.Heuristic algorithms of allocating memory for virtual machines.A dynamic memory management system for runtime environment. <s> BIB001 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> C. MEMORY ALLOCATION <s> Recent expansions of Internet-of-Things (IoT) applying cloud computing have been growing at a phenomenal rate. As one of the developments, heterogeneous cloud computing has enabled a variety of cloud-based infrastructure solutions, such as multimedia big data. Numerous prior researches have explored the optimizations of on-premise heterogeneous memories. However, the heterogeneous cloud memories are facing constraints due to the performance limitations and cost concerns caused by the hardware distributions and manipulative mechanisms. Assigning data tasks to distributed memories with various capacities is a combinatorial NP-hard problem. This paper focuses on this issue and proposes a novel approach, Cost-Aware Heterogeneous Cloud Memory Model (CAHCM), aiming to provision a high performance cloud-based heterogeneous memory service offerings. The main algorithm supporting CAHCM is Dynamic Data Allocation Advance (2DA) Algorithm that uses genetic programming to determine the data allocations on the cloud-based memories. In our proposed approach, we consider a set of crucial factors impacting the performance of the cloud memories, such as communication costs, data move operating costs, energy performance, and time constraints. Finally, we implement experimental evaluations to examine our proposed model. The experimental results have shown that our approach is adoptable and feasible for being a cost-aware cloud-based solution. <s> BIB002 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> C. MEMORY ALLOCATION <s> Heterogeneous memory management combined with server virtualization in datacenters is expected to increase the software and OS management complexity. State-of-the-art solutions rely exclusively on the hypervisor (VMM) for expensive page hotness tracking and migrations, limiting the benefits from heterogeneity. To address this, we design HeteroOS, a novel application-transparent OS-level solution for managing memory heterogeneity in virtualized system. The HeteroOS design first makes the guest-OSes heterogeneity-aware and then extracts rich OS-level information about applications' memory usage to place data in the 'right' memory avoiding page migrations. When such pro-active placements are not possible, HeteroOS combines the power of the guest-OSes' information about applications with the VMM's hardware control to track for hotness and migrate only performance-critical pages. Finally, HeteroOS also designs an efficient heterogeneous memory sharing across multiple guest-VMs. Evaluation of HeteroOS with memory, storage, and network-intensive datacenter applications shows up to 2x performance improvement compared to the state-of-the-art VMM-exclusive approach. <s> BIB003 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> C. MEMORY ALLOCATION <s> Memory allocation has a major influence on multiuser systems, cloud-based services, virtual machines, and other computer systems. Memory allocation is a process that assigns physical or virtual memory space to programs and services as efficiently and quickly as possible. Economical memory allocation management needs allocation strategies with minimum wastage. In this paper, we introduce a new memory allocation algorithm based on sequential fits and zoning for on-demand (online) cloud services. The memory is divided into multiple zones, where a subgroup of relative request sizes compete in reverse order. We use simulation to compare our new mechanism with existing memory allocation methods that have been deployed using Amazon Elastic Compute Cloud as a test bed. The proposed algorithm is more efficient, and the average saving for the normalized revenue loss is about 7% better than best-fit and 15% better than first-fit memory allocation. In addition, we show that proposed algorithm is robust and faster and has a fairness index that is superior to that of existing techniques. <s> BIB004 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> C. MEMORY ALLOCATION <s> Cloud computing has been growing at a staggering rate by offering a flexible and financially attractive venue for businesses and consumers. Within this context, memory allocation has a significant bearing on cloud-based services. Currently, all major cloud service providers support a small set of discrete memory sizes. We propose a cloud computing service that advertises continuous (any) memory request size, while actually supporting a small number of quantized memory sizes. This scheme redefines and transforms the manner in which cloud services are offered to the public by simplifying the ever-increasing level of pricing complexity. Our proposal targets the root causes of complexity. A service provider with a continuous service model will have a distinct advantage over the competition. We utilize mathematical algorithms to quantize and map the continuous (any) memory request sizes into a small number of quantized sizes optimally, with minimal loss. Furthermore, we investigate different factors affecting the continuous model, such as worth structure, size request distribution, total memory size, and granularity. A simulation is used to conduct our study and confirm our findings. <s> BIB005
Some studies focus on the memory allocation problem as a separate part of resource allocation to highlight the memory allocation challenges. Appropriately to the memory requests behaviour, memory allocation in Cloud can be divided on the online and offline memory allocation. When the memory requests are known in advance, the memory allocation strategy can be configured optimally before computation. When memory requests arrive randomly, online memory allocation strategies are used. The well-known offline resource allocation solver is a problem of packing bins, where a finite number of objects of different volumes must be packed into a finite number of bins of fixed capacity. However, both offline and online memory allocations in Cloud require the optimal heuristic algorithms to effective manage the memory in an acceptable time. In order to manage memory heterogeneity in virtualised systems and to address max-min fairness across multiple resources, HeteroOS BIB003 uses extended Dominant Resource Fairness (DRF) algorithm. However, FastMem capacity is small, so that, according to this algorithm, most VMs always have SlowMem as the dominant resource. To deal with this limitation, weights for calculating the dominant memory, shown in Figure 18 (a), were proposed to use. The main algorithm supporting Cost-Aware Heterogeneous Cloud Memory Model BIB002 is Dynamic Data Allocation Advance Algorithm that uses genetic programming to determine the data allocations on the memories. This approach focuses on a set of critical factors affecting the performance of cloud memory, such as communication costs, operating costs for moving data, energy performance and time constraints. Two heuristic algorithms of allocating memory for VMs are proposed in BIB001 . This approach, shown in Figure 18(b) , provides the strategy to select the memory ranks for reducing the number of ranks occupied by VM and for minimising the global rank set for all VMs. An algorithm presented in BIB004 divides the memory into multiple zones, shown in Figure 18(c) , where a subgroup of relative request sizes compete in reverse order. In addition to this algorithm, BIB005 proposes a cloud computing service that provides a continuous memory size. A mathematical and an approximation model for different request size distributions, traffic intensities, memory sizes, and granularity values allow calculating optimal quantised sizes.