Survey of Memory Management Techniques for HPC and Cloud Computing <s> B. RESOURCE AND USER ALLOCATION <s> Vertical elasticity is recognized as a key enabler for efficient resource utilization of cloud infrastructure through fine-grained resource provisioning, e.g., allowing CPU cycles to be leased for as short as a few seconds. However, little research has been done to support vertical elasticity where the focus is mostly on a single resource, either CPU or memory, while an application may need arbitrary combinations of these resources at different stages of its execution. Nonetheless, the existing techniques cannot be readily used as-is without proper orchestration since they may lead to either under-or over-provisioning of resources and consequently result in undesirable behaviors such as performance disparity. The contribution of this paper is the design of an autonomic resource controller using a fuzzy control approach as a coordination technique. The novel controller dynamically adjusts the right amount of CPU and memory required to meet the performance objective of an application, namely its response time. We perform a thorough experimental evaluation using three different interactive benchmark applications, RUBiS, RUBBoS, and Olio, under workload traces generated based on open and closed system models. The results show that the coordination of memory and CPU elasticity controllers using the proposed fuzzy control provisions the right amount of resources to meet the response time target without over-committing any of the resource types. In contrast, with no coordinating between controllers, the behaviour of the system is unpredictable e.g., the application performance may be met but at the expense of over-provisioning of one of the resources, or application crashing due to severe resource shortage as a result of conflicting decisions. <s> BIB001 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> B. RESOURCE AND USER ALLOCATION <s> Cloud computing is growing in popularity among computing paradigms, but in practice the energy consumption of the cloud data centers is very high. In this paper, we build the resource model of the cloud data center and the dynamic power model of the physical machine, and then propose a three-dimensional virtual resource scheduling method for energy saving in cloud computing (TVRSM), in which the process of virtual resource scheduling are divided into three stages: virtual resource allocation, virtual resource scheduling and virtual resource optimization. For the different objective of each stage, we design three different algorithms, respectively. The simulation results prove that the TVRSM is able to efficiently allocate and manage the virtual resources in the cloud data center. And compared with other traditional algorithms, the TVRSM can effectively reduce the energy consumption of the cloud data center and significantly minimize the amount of violations of Service Level Agreement (SLA). We propose a three-dimensional virtual resource (VR) scheduling method.We present a bin packing problem based heuristics VR allocation algorithm.We demonstrate a multi-dimensional power-aware based VR scheduling algorithm.We put forward a VR optimization algorithm to reduce energy consumption.The simulation results demonstrate the effectiveness of the proposed method. <s> BIB002 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> B. RESOURCE AND USER ALLOCATION <s> Abstract With the rapid development of cloud computing, how to reduce energy consumption as well as maintain high computation capacity has become a timely and important challenge. Existing Virtual Machines (VMs) scheduling schemes have mainly focused on enhancing the cluster resource utilization and reducing power consumption by improving the legacy “bin-packing” algorithm. However, different resource-intensive applications running on VMs in realistic scenarios have significant effects on the system performance and energy consumption. Furthermore, instantaneous peak loads may lead to a scheduling error, which can significantly impede the energy efficiency of scheduling algorithms. In this paper, we propose a new scheduling approach named P r e A n t P o l i c y that consists of a prediction model based on fractal mathematics and a scheduler on the basis of an improved ant colony algorithm. The prediction model determines whether to trigger the execution of the scheduler by virtue of load trend prediction, and the scheduler is responsible for resource scheduling while minimizing energy consumption under the premise of guaranteeing the Quality-of-Service (QoS). Through extensive analysis and simulation experiments using real workload traces from the compute clusters of Google, the performance results demonstrate that the proposed approach exhibits excellent energy efficiency and resource utilization. Moreover, this approach offers an effective dynamic capacity provisioning model for resource-intensive applications in a heterogeneous computing environment and can reduce the consumption of system resources and energy when scheduling is triggered by instantaneous peak loads. <s> BIB003 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> B. RESOURCE AND USER ALLOCATION <s> Abstract Distributed Stream Processing Systems (DSPS) are “Fast Data” platforms that allow streaming applications to be composed and executed with low latency on commodity clusters and Clouds. Such applications are composed as a Directed Acyclic Graph (DAG) of tasks, with data parallel execution using concurrent task threads on distributed resource slots. Scheduling such DAGs for DSPS has two parts—allocation of threads and resources for a DAG, and mapping threads to resources. Existing schedulers often address just one of these, make the assumption that performance linearly scales, or use ad hoc empirical tuning at runtime. Instead, we propose model-driven techniques for both mapping and allocation that rely on low-overhead a priori performance modeling of tasks. Our scheduling algorithms are able to offer predictable and low resource needs that is suitable for elastic pay-as-you-go Cloud resources, support a high input rate through high VM utilization, and can be combined with other mapping approaches as well. These are validated for micro and application benchmarks, and compared with contemporary schedulers, for the Apache Storm DSPS. <s> BIB004 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> B. RESOURCE AND USER ALLOCATION <s> Cloud computing offers simplified system maintenance and scalable resource management with Virtual Machines (VMs). Users access resources of data centers by allocating VMs to hosts. Therefore, to improve the quality of cloud computing environment, not only the conventional multi Quality of Service (QoS) be satisfied, but also specific importance has to be made on certain metrics such as the system accessibility and resource scheduling in a cooperative and dynamic manner. This paper proposes a method called, Moving Average-based Fuzzy Resource Scheduling (MV-FRS) for virtualized cloud environment to optimize the scheduling of resources through virtual machines. Initially, the MV-FRS method starts by predicting the resource (i.e. bandwidth, memory and processing cycle) requirements. Then a measure of relationships between availability of resources and the requirements of resources are made. Finally, a fuzzy control theory is designed to accomplish system accessibility between user cloud requirements and cloud users resources availability. The simulations results demonstrate that the MV-FRS method is able to reduce the total waiting time of cloud user resource requirements and also ensure the feasibility and effectiveness of the overall system accessibility in terms of average success rate and resource usage when running in a cloud computing environment. Moving Average-based Fuzzy Resource Scheduling (MV-FRS) for virtualized cloud environment to optimize the scheduling of resources through virtual machines.A fuzzy control theory is designed for system accessibility between user cloud requirements and cloud users resources.MV-FRS method is to reduce the total waiting time of cloud user resource requirements and effectiveness of the system accessibility. <s> BIB005 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> B. RESOURCE AND USER ALLOCATION <s> Ubiquitous service in manufacturing sites prompts the need for cloud-based infrastructure. However, without proper load balance algorithms, implementation of cloud infrastructure would be very costly. This study proposed an effective load-adjusted-profile-oriented (LAPO) allocation algorithm for enhancing memory reusability and improving the performance of servers by balancing their workloads. The LAPO is an enhanced cluster-based algorithm that can place users with the same usage patterns into the same servers to boost memory efficiency. The current study also presented an incremental update algorithm for monitoring and maintaining the reusability of memory. The experiment was conducted on a manufacturing enterprise resource planning which provided ubiquitous service to managers. <s> BIB006 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> B. RESOURCE AND USER ALLOCATION <s> Infrastructure-as-a-service (IaaS) cloud technology has attracted much attention from users who have demands on large amounts of computing resources. Current IaaS clouds provision resources in terms of virtual machines (VMs) with homogeneous resource configurations where different types of resources in VMs have similar share of the capacity in a physical machine (PM). However, most user jobs demand different amounts for different resources. For instance,high-performance-computing jobs require more CPU cores while big data processing applications require more memory. The existing homogeneous resource allocation mechanisms cause resource starvation where dominant resources are starved while non-dominant resources are wasted. To overcome this issue, we propose a heterogeneous resource allocation approach, called skewness-avoidance multi-resource allocation (SAMR), to allocate resource according to diversified requirements on different types of resources. Our solution includes a VM allocation algorithm to ensure heterogeneous workloads are allocated appropriately to avoid skewed resource utilization in PMs, and a model-based approach to estimate the appropriate number of active PMs to operate SAMR. We show relatively low complexity for our model-based approach for practical operation and accurate estimation. Extensive simulation results show the effectiveness of SAMR and the performance advantages over its counterparts. <s> BIB007 </s> Survey of Memory Management Techniques for HPC and Cloud Computing <s> B. RESOURCE AND USER ALLOCATION <s> Abstract The abundance of cloud resources has enabled not only web applications, but also scientific applications to easily scale to meet their objectives, such as performance and costs. However, due to the complex and large-scale nature of scientific workflows, the decision on such scaling (resource management) is much complicated often resulting in inefficient use of resources. In this paper, we present RDAS+ as a resource demand aware scheduling algorithm to optimize resource efficiency for the execution of scientific workflows in clouds. RDAS+ maximizes resource utilization by allocating the minimum number of resources (virtual machines or VMs in clouds) with little sacrifice of completion time (makespan). This optimization eventually leads to cost efficiency for pay-per-use cloud resources. RDAS+ consists of partitioning, resource allocation and task scheduling steps to realize such optimization. We have evaluated RDAS+ using five types of real-world scientific workflows in comparison with three existing algorithms. Our experimental results confirm our claims on achieving resource efficiency. In particular, the average rate of cost savings (32%) outweighs makespan increase (11%). Although these two performance metrics are incompatible, the trade-off RDAS+ optimizes shows significant benefit particularly in clouds. <s> BIB008
The complexity of provisioning algorithms for homogeneous resource allocation is already high and the computational time is long BIB007 . Further considerations on deeply heterogeneous resources add additional dimensions to the computation, which will significantly increase the complexity. The stage of resources allocation in BIB002 is considered to be responsible for allocating VMs to the hosts represented as three dimensional cuboid with CPU, network bandwidth and memory capacity of the host as axes. Heuristics based on multi-dimensional vector bin packing problem for virtual resource allocation was proposed. The allocation model that deals with dispatching a new task to a VM, and with allocating appropriate resources for the task is described in BIB003 . Authors proposed to use the improved ant colony algorithm to allocate running VM to those hosts that have a large capacity of resources while running on low operational power. This approach allows to shut down redundant hosts, thereby reducing energy consumption and improving resource utilisation. In this study, two types of resources, CPU and disk I/O bandwidth, were considered. However, it has been illustrated that the number of resources can be increased. In article BIB004 efficient resources allocation and mapping for DSPSs over nodes or VMs of commodity clusters or Clouds is addressed. For simplicity, the analysis, that is limited to CPU and memory resources, can be scaled. The main idea is to preferably map the full available slot for a bundle of tasks, rather than allocate a single resource for each task. For all partial bundle of unmapped tasks, the best-fit slot is selected, such as the one whose sum of available CPUs and memory is the smallest, albeit sufficient, to satisfy resource requests. The resource provisioning through Markov Decision model proposed in BIB005 only assigns the value as zero or one with respect to the availability of resources and requirements of resources. The input variables are the resource requirements (i.e. bandwidth, memory and CPU) and the resource availability of VMs, respectively. The schedules algorithm selects particular resources that are allocated to the cloud users from the corresponding VM based on fuzzy theory that was mentioned above. Resources allocation algorithm presented in BIB008 starts by partitioning the workflow into several task groups. Then the resource allocation step divides VMs between determined partitions such that the resultant allocation is envy-free Pareto-efficient by employing a weighted version of the max-min fairness allocation policy. The approach proposed in  is a three-stage methodology that utilises a fully connected Neural Network to classify a given application, calculates the performance-cost sensitivity of application and solves a bounded knapsack problem using dynamic programming and finding a configuration that maximises the performance per cost ratio. An autonomic resource controller with a coordination technique based on the fuzzy control approach is presented in BIB001 . The controller dynamically adjusts the right amount of CPU and memory required to meet the response time using the estimated coefficient that determines the degree of influence of CPU, memory, or both on the application performance change. An approach described in BIB006 aims at increasing the efficiency of memory utilisation through an efficient user allocation mechanism. The profile-oriented clustering algorithm (POCA) positioned users with similar profiles into the same application servers to share and save memory space by reusing the application programs. The goal of resources provisioning is to use the minimum number of physical machines (PMs) to house a set of given VMs. Classical bin-packing algorithms for resource provisioning were modified to apply in the cloud environment to deal with the multi-dimensional resources (such as CPU, memory), the different bin sizes (to represent the heterogeneity) and multi-objective optimisation functions (such as energy, utilisation, reliability). Particularly, optimising all resources at the same time may result in exceeding a reasonable time for solving resource provisioning. Only for memory allocation, there can be considered such objectives as memory usage per instance (average and variances) and on the hypervisor (average, variances, the variance of situated virtual instances and their intersections). Several studies propose heuristics to address the pure optimisation problem for the integrated model of the considered resources. Most of the proposed algorithms allow finding the optimal resource allocation on the fly, which does not guarantee the performance and efficiency of the cloud in the long-term period. Recent studies use machine learning algorithms to provide efficient resources allocation for a long-term period by predicting future resource utilisation or classifying memory behaviour. The general scheme of the use of the classification is shown in Figure 17 . 