Solving dynamic memory allocation problems in embedded systems with parallel variable neighborhood search strategies

Similar documents
Variable Neighborhood Search for Solving the Balanced Location Problem

Variable Neighborhood Scatter Search for the Incremental Graph Drawing Problem

VNS-based heuristic with an exponential neighborhood for the server load balancing problem

Variable Neighborhood Search

SOLVING THE TASK ASSIGNMENT PROBLEM WITH A VARIABLE NEIGHBORHOOD SEARCH. Jozef Kratica, Aleksandar Savić, Vladimir Filipović, Marija Milanović

Variable Neighbourhood Search for Uncapacitated Warehouse Location Problems

Scatter Search for the Bi-criteria p-median p-dispersion problem

Tabu Search for the Dynamic Bipartite Drawing Problem

Metaheuristics for Clustered Vehicle Routing Problems

Variable neighborhood search algorithm for the green vehicle routing problem

Variable Neighborhood Search Based Algorithm for University Course Timetabling Problem

SCATTER SEARCH BASED METAHEURISTIC FOR ROBUST OPTIMIZATION OF THE DEPLOYING OF DWDM TECHNOLOGY ON OPTICAL NETWORKS WITH SURVIVABILITY

GAUSSIAN VARIABLE NEIGHBORHOOD SEARCH FOR THE FILE TRANSFER SCHEDULING PROBLEM

Metaheuristics: a quick overview

Scatter Search and Path Relinking: A Tutorial on the Linear Arrangement Problem

IMPLEMENTATION OF A FIXING STRATEGY AND PARALLELIZATION IN A RECENT GLOBAL OPTIMIZATION METHOD

Learning the Neighborhood with the Linkage Tree Genetic Algorithm

Variable Neighborhood Search for the Dial-a-Ride Problem

Heuristics and Meta-Heuristics for 2-Layer Straight Line Crossing Minimization

Improving Iterated Local Search Solution for the Linear Ordering Problem with Cumulative Costs (LOPCC)

Multiple Variable Neighborhood Search Enriched with ILP Techniques for the Periodic Vehicle Routing Problem with Time Windows

A Study of Neighborhood Structures for the Multiple Depot Vehicle Scheduling Problem

USING INJECTION POINTS IN REFORMULATION LOCAL SEARCH FOR SOLVING CONTINUOUS LOCATION PROBLEMS

polygonal approximations

Greedy randomized adaptive search procedures: Advances, hybridizations, and applications

A NEW LOCAL SEARCH FOR THE P-CENTER PROBLEM BASED ON THE CRITICAL VERTEX CONCEPT

A tabu search based memetic algorithm for the max-mean dispersion problem

A Modular Multiphase Heuristic Solver for Post Enrolment Course Timetabling

AN INVESTIGATION OF VARIABLE NEIGHBOURHOOD SEARCH FOR UNIVERSITY COURSE TIMETABLING

SIMD OPTIMIZATION OF EUCLIDEAN DISTANCE TRANSFORMS FOR PATTERN RECOGNITION

3D Packing of Balls in Different Containers by VNS

Size-reduction methods for the unrelated parallel machines problem and makespan criterion

Artificial Intelligence Methods (G52AIM)

International Journal of Combinatorial Optimization Problems and Informatics. E-ISSN:

New Trials on Test Data Generation: Analysis of Test Data Space and Design of Improved Algorithm

Solving Capacitated P-Median Problem by Hybrid K-Means Clustering and Fixed Neighborhood Search algorithm

Multi-objective approaches for the open-pit mining operational planning problem

A simulated annealing algorithm for the vehicle routing problem with time windows and synchronization constraints

Adaptive Large Neighborhood Search

Solving the p-center Problem with Tabu Search and Variable Neighborhood Search

A Course on Meta-Heuristic Search Methods for Combinatorial Optimization Problems

Local search with perturbations for the prize collecting Steiner tree problem in graphs

Solving Large Aircraft Landing Problems on Multiple Runways by Applying a Constraint Programming Approach

Chapter 8 GREEDY RANDOMIZED ADAPTIVE SEARCH PROCEDURES 1 INTRODUCTION. Mauricio G.C. Resende AT&T Labs Research

Experimental Comparison of Different Techniques to Generate Adaptive Sequences

LOCAL SEARCH WITH PERTURBATIONS FOR THE PRIZE-COLLECTING STEINER TREE PROBLEM IN GRAPHS

Impressum ( 5 TMG) Herausgeber: Fakultät für Wirtschaftswissenschaft Der Dekan. Verantwortlich für diese Ausgabe:

Combining In-Transit Buffers with Optimized Routing Schemes to Boost the Performance of Networks with Source Routing?

Effective probabilistic stopping rules for randomized metaheuristics: GRASP implementations

Genetic Algorithm with Path Relinking for the Orienteering Problem with Time Windows

Adaptive feasible and infeasible tabu search for weighted vertex coloring

CHAPTER 6 ORTHOGONAL PARTICLE SWARM OPTIMIZATION

A hybrid heuristic for the p-median problem

GRASP. Greedy Randomized Adaptive. Search Procedure

A Relative Neighbourhood GRASP for the SONET Ring Assignment Problem

A Diversified Multi-Start Algorithm for Unconstrained Binary Quadratic Problems Leveraging the Graphics Processor Unit

A Tabu Search solution algorithm

Outline. Optimales Recycling - Tourenplanung in der Altglasentsorgung

SCIENCE & TECHNOLOGY

Characterizing Storage Resources Performance in Accessing the SDSS Dataset Ioan Raicu Date:

CHAPTER 5 ANT-FUZZY META HEURISTIC GENETIC SENSOR NETWORK SYSTEM FOR MULTI - SINK AGGREGATED DATA TRANSMISSION

On step fixed-charge hub location problem

A Black-Box Scatter Search for Optimization Problems with Integer Variables

A SIMULATED ANNEALING ALGORITHM FOR SOME CLASS OF DISCRETE-CONTINUOUS SCHEDULING PROBLEMS. Joanna Józefowska, Marek Mika and Jan Węglarz

GRASP with evolutionary path-relinking for the antibandwidth problem

Branch and Bound Algorithm for Vertex Bisection Minimization Problem

Deterministic Parallel Graph Coloring with Symmetry Breaking

Complementary Graph Coloring

Ant Based Hyper Heuristics with Space Reduction: A Case Study of the p-median Problem

Chapter 8 SCATTER SEARCH 1. INTRODUCTION

Dynamic Lexicographic Approach for Heuristic Multi-objective Optimization

A simple stochastic local search for multi-mode resource-constrained multi-project scheduling

Optimization solutions for the segmented sum algorithmic function

Variable Neighborhood Search for solving Bandwidth Coloring Problem

An Integrated Design Algorithm for Detailed Layouts Based on the Contour Distance

A Design of an Active OTA-C Filter Based on DESA Algorithm

NTIGen: a Software for Generating Nissan Based Instances for Time and Space Assembly Line Balancing

Scatter Search: Methodology and Applications

A Variable Neighborhood Search for the Single Machine Total Stepwise Tardiness Problem

CHAPTER 6 MODIFIED FUZZY TECHNIQUES BASED IMAGE SEGMENTATION

Adaptive Multi-operator MetaHeuristics for quadratic assignment problems

Iterated maxima search for the maximally diverse grouping problem

A Clustering Approach to the Bounded Diameter Minimum Spanning Tree Problem Using Ants. Outline. Tyler Derr. Thesis Adviser: Dr. Thang N.

A Randomized Algorithm for Minimizing User Disturbance Due to Changes in Cellular Technology

Exploring Lin Kernighan neighborhoods for the indexing problem

Parallel Machine Scheduling: A (Meta)Heuristic Computational Evaluation IRCCyN, Avril 2001, Nantes

Genetic algorithms to minimize the weighted number of late jobs on a single machine

Parallel Computing in Combinatorial Optimization

Using Genetic Algorithms for Maximizing Technical Efficiency in Data Envelopment Analysis

2-C3OP: An Improved Version of 2-Consistency

A Hybrid Genetic Algorithm for the Distributed Permutation Flowshop Scheduling Problem Yan Li 1, a*, Zhigang Chen 2, b

A Genetic Approach for Solving Minimum Routing Cost Spanning Tree Problem

Automatic Drawing for Tokyo Metro Map

Outline. TABU search and Iterated Local Search classical OR methods. Traveling Salesman Problem (TSP) 2-opt

An Ant Colony Optimization Meta-Heuristic for Subset Selection Problems

TABU search and Iterated Local Search classical OR methods

HEARIN CENTER FOR ENTERPRISE SCIENCE

The fastclime Package for Linear Programming and Large-Scale Precision Matrix Estimation in R

SCALING UP VS. SCALING OUT IN A QLIKVIEW ENVIRONMENT

Maximum Clique Problem

Transcription:

Available online at www.sciencedirect.com Electronic Notes in Discrete Mathematics 47 (2015) 85 92 www.elsevier.com/locate/endm Solving dynamic memory allocation problems in embedded systems with parallel variable neighborhood search strategies Jesús Sánchez-Oro a,1 Marc Sevaux b,4 André Rossi b,5 Rafel Martí c,3 Abraham Duarte a,2 a Dept. de Informática y Estadística, Universidad Rey Juan Carlos, Móstoles, Spain b Lab-STICC, UMR6285 CNRS, Centre de Recherche, Université de Bretagne-Sud, Lorient, France c Dept. Estadística e Investigación Operativa, Universidad de Valencia, Burjassot, Spain Abstract Embedded systems have become an essential part of our lives, thanks to their evolution in the recent years, but the main drawback is their power consumption. This paper is focused on improving the memory allocation of embedded systems to reduce their power consumption. We propose a parallel variable neighborhood search algorithm for the dynamic memory allocation problem, and compare it with the state of the art. Computational results and statistical tests applied show that the proposed algorithm produces significantly better outcomes than the previous algorithm in shorter computing time. Keywords: dynamic memory allocation problem, variable neighborhood search, parallelism, embedded systems, metaheuristics. http://dx.doi.org/10.1016/j.endm.2014.11.012 1571-0653/ 2014 Elsevier B.V. All rights reserved.

86 J. Sánchez-Oro et al. / Electronic Notes in Discrete Mathematics 47 (2015) 85 92 1 Introduction Embedded systems have become an essential part of our lives, thanks to their evolution in the recent years, but the main drawback is their power consumption. This paper is focused on improving the memory allocation of embedded systems, which is a problem that have been recently studied. A mixed linear formulation and a variable neighborhood search algorithm for the static version of the problem is proposed in [10]. In [9], the authors focused on the dynamic memory allocation problem in embedded systems. In this paper, we propose a parallel variable neighborhood search algorithm for the dynamic memory allocation problem, and compare it with the state of the art. The memory architecture used for testing the proposal is quite similar to the one present in a TI C6201 device [6] but can be adapted to many other devices. The memory is divided into m different memory banks where each one can store up to c j kilobytes (kb). The memory scheme also presents an external memory (m + 1), whose capacity is large enough to be considered unlimited. However, the access to that external memory is slower than the access to the rest of memory banks. In particular, we need q milliseconds to access data structures placed in a memory bank, and p q milliseconds to access the external memory. Each program to be executed in the device uses a set of n data structures, each one with a different size s i,with1 i n. The program is split in T time intervals, in such a way that for each t T the program executes a set of operations (A t )whereeachonea A t needs to access to one or two data structures. The processor allows simultaneous access to data structures located in different memory banks (in a specific time interval). Having defined the structure of the program and the memory architecture, we need to analyze the time needed by the processor to execute a program. A solution for the dynamic memory allocation problem (DMAP) consists of the state of the memory in each time interval, with all the data structures placed in one of the memory banks or in the external memory. We define b(i, t) as the function that finds the memory bank of interval t in which the data structure i is located. Then, the objective function value (DMAP-value) for a solution is computed as the sum of the move and access costs for all the 1 Email: jesus.sanchezoro@urjc.es 2 Email: abraham.duarte@urjc.es 3 Email: rafael.marti@uv.es 4 Email: marc.sevaux@univ-ubs.fr 5 Email: andre.rossi@univ-ubs.fr

J. Sánchez-Oro et al. / Electronic Notes in Discrete Mathematics 47 (2015) 85 92 87 data structures and operations in each time interval. Specifically, the move cost for a data structure i in a time interval t is computed as follows: 0 if b(i, t 1) = b(i, t) MoveCost(i) = l s i if b(i, t 1) b(i, t) m +1 v s i otherwise where l denotes the milliseconds needed to move a kilobyte between memory banks and v represents the milliseconds needed to move a kilobyte between the external memory and a memory bank. Each operation a for an interval t is a 3-tuple: the two data structures involved in the operation (a 1,a 2 ) and the cost of the operation, a cost. So we can define the cost of accessing to the corresponding data structures as follows: a cost if b(a 1,t) b(a 2,t) m +1 2 a cost if b(a 1,t)=b(a 2,t) m +1 AccessCost(a) = 2 p a cost if b(a 1,t)=b(a 2,t)=m +1 p a cost otherwise where p is a penalization access factor for data structures placed in the external memory. The first case considers that both data structures are in different memory bank (but not in the external memory), so they can be accessed parallely. The second case identifies the situation where data structures are in the same memory bank and therefore they must be sequentially accessed (two access). The third and fourth cases are variations of the first and second one where at least one of the data structures are located in the external memory (which involves a penalization p). With these definitions, the DMAP-value of a solution S for a program with n data structures and a set of operations A t for each time interval t T can be computed as: DMAP(S) = ( MoveCost(s)+ ) AccessCost(a) t T s n a A t The rest of the paper is organized as follows. Section 2 presents our algorithmic approach based on the variable neighborhood search framework, including the description of the shake procedure (Section 2.1) and the proposed local search method (Section 2.2). Section 3 reports the computational experience performed to validate the proposed algorithm. Finally, Section 4 summarizes the main conclusions of our research.

88 J. Sánchez-Oro et al. / Electronic Notes in Discrete Mathematics 47 (2015) 85 92 2 Parallel Variable Neighborhood Search Variable neighborhood search (VNS) is a metaheuristic for solving optimization problems based on systematic changes of neighborhood structures, without guaranteeing the solution s optimality. In recent years, a large variety of VNS strategies have been proposed. Some of the most relevant variants are reduced VNS, variable neighborhood descent (VND), basic VNS, skewed VNS, general VNS, or variable neighborhood decomposition search, among others (see [5] for a complete review of the methodology, and [2,7,8] for some example of successful research in VNS). The parallelization of VNS has been recently studied and successfully applied to some problems in the literature (see for instance the p-median problem [4] or the cutwidth minimization problem [3]). Authors in [4] propose several parallelizations for the VNS metaheuristic: Synchronous Parallel VNS, Replicated Parallel VNS, Replicated Shaking Parallel VNS and Cooperative Neighborhood VNS. In this paper we focus on the Synchronous Parallel VNS (SPVNS) variant, which is intended for the parallelization of the local search method in the sequential VNS. There are different technologies to implement parallel algorithms, which are usually programming language dependent. All the algorithms in this paper have been implemented in Java, so we have selected Java threads as parallelization technology. Java threads allow us to take advantage of the architecture of the computer by executing the algorithms simultaneously in different processors, launching one or more threads (independent executions) in each processor. Algorithm 1 shows the pseudo-code of the SPVNS method proposed. We use a multi-start scheme, since the initial solution is generated at random, so we can start exploring from different points of the solution space in each iteration. SPVNS receives two input arguments: the maximum neighborhood to be explored, k max, and the maximum number of iterations for the multistart scheme, iters. Firstly, the algorithm checks the available processors (step 2). Then, SPVNS performs the indicated iterations (steps 3-16). Each iteration is an independent sequential run of the simple SPVNS. The first step is the generation of a random initial solution (step 4) and the selection of the first neighborhood (step 5). Then, the method iterates over all neighborhoods until reaching the maximum neighborhood allowed (steps 6-14). For each iteration, the algorithm perturbs the solution (step 7), and then it proceeds with the parallel local search method. For each processor, SPVNS establishes the region that the local search will improve and starts the corresponding thread (step 10). Notice that steps 9-11 are executed in parallel, so the main

J. Sánchez-Oro et al. / Electronic Notes in Discrete Mathematics 47 (2015) 85 92 89 Algorithm 1 SPVNS(k max, iters) 1: S 2: P AvailableProcessors() 3: for i iters do 4: S RandomSolution() 5: k 1 6: while k<k max do 7: S Shake(S) 8: S S 9: for p P do 10: LS parallel (S,p) 11: end for 12: Synchronize() 13: k NeighborhoodChange(S, S,k) 14: end while 15: Update(S,S) 16: end for 17: return S algorithm waits in step 12 until all the processors have finished. Finally, the algorithm updates the best solution found if necessary (step 15). Once all the iterations have finished, the algorithm ends, returning the best solution found (step 17). 2.1 Shake The main aim of a shake procedure in the VNS context is the diversification of the search to escape from local optima. The shake procedure proposed in this paper traverses the memory through each time interval, generating a new solution in a neighborhood k by perturbing the original solution. We define the move for a data structure i in a time interval t as Move(i, t, j), where 1 j m + 1 indicates the bank where the data structure will be placed. Note that the method will only accept feasible moves. In particular, a data structure will only be moved to a memory bank with enough free space for storing it. The proposed shake method iterates over all time intervals t T selecting k data structures at random and moving them to a random memory bank in which there is enough free space for the data structure.

90 J. Sánchez-Oro et al. / Electronic Notes in Discrete Mathematics 47 (2015) 85 92 2.2 Parallel local search The parallel local search proposed in this paper is designed to make the most of the computer architecture, by balancing load among the available processors in the computer. This is conducted by following a divide and conquer strategy. In particular, if the computer has P available processors and the instance that we are solving has T time intervals, then each processor is focused on improving a total of T/P periods. Then, the first processor will improve the periods in the range [1,T/P], the second one periods in range [T/P +1, 2 (T/P)], and so on. In general, the processor p {1,...,P} will improve periods in the range [(p 1) (T/P),p (T/P)]. Then, the corresponding partial local search improves each time period of its designated interval as follows. The first step in each time interval consists of ordering the data structures in descending order according to its contribution to the objective function value. The contribution Δ DMAP (S, i, t) of a data structure i in a time interval t in a solution S can be defined as the sum of the move cost for that data structure plus the access cost of each operation in which the data structure is involved in that time interval. More formally, Δ DMAP (S, i, t) =MoveCost() + a At a 1 a 2 =i AccessCost(a) Then, each partial local search traverses the ordered data structures finding the best bank in which it can be moved. The selection of the best bank is performed by checking the change in the objective function value for moving the data structure to each bank j {1,...,m + 1}. The improvement moves produce solutions with lower objective function value, so each data structure is moved to the bank which produces the lowest DMAP-value (as described in Section 2.1). The method stops when no improvement move is found after traversing all data structures in each time interval. 3 Computational experiments This section reports the computational experiments that we have performed for testing the effectiveness and efficiency of the proposed SPVNS algorithm compared to the best algorithm found in the state of the art. The algorithms have been developed in Java SE 7 and all the experiments were conducted on an Intel Core i7 920 CPU (2.67 GHz) and 8GB RAM. The testbed used for testing the algorithm is the same set of 44 instances used in the algorithms of the state of the art (see [9] for a detailed description of the instances).

J. Sánchez-Oro et al. / Electronic Notes in Discrete Mathematics 47 (2015) 85 92 91 Firstly, we have conducted a preliminar experimentation with 8 of the most representative instances to find the best k max parameter value. Specifically, we have tested the following values: 0.10n, 0.25n, and 0.50n, n being the number of data structures. The best k max found have been 0.50n, so it has been used for the final comparison. Avg. Time (s) Dev. (%) #Best GRASP+EC 1060597.74 130.55 5.58 12 SPVNS 1015325.49 32.32 3.49 36 Table 1 Comparison of GRASP+EC and SPVNS Table 1 shows the comparison of the proposed algorithm, SPVNS, and the best previous algorithm found in the literature, GRASP+EC [9], reporting the following statistics: Avg., the average objective function value; Time (s), the average computing time measured in seconds; Dev. (%), the average percentage deviation with respect to the best solution found; and #Best, the number of times that a method matches the best known solution. The results show that the proposed algorithm produces better outcomes in all the metrics analyzed. Specifically, SPVNS obtains a lower average objective function value and a deviation 5% lower than the previous method by requiring three times less computing time. In addition, SPVNS obtains 36 out of 44 best solutions, while GRASP+EC is only able to reach 12 best solutions. These results are confirmed with the Wilcoxon signed statistical test, which presents an associated p-value lower than 0.001. 4 Conclusions In this work we have proposed a parallel variable neighborhood search algorithm for solving the dynamic memory allocation problem (DMAP). The parallel strategy used has been the synchronous parallel VNS (SPVNS), which is focused on the parallelization of the local search method. We also include a shake procedure that perturbs a solution of the DMAP problem randomly to escape from local optima. In addition, we have proposed a new parallel local search for the DMAP that reduces the computing time needed to improve a solution by concurrently improving different regions of a solution. The experiments, supported by the Wilcoxon signed test, show that SPVNS clearly outperforms the best algorithm found in the literature, becoming the state of

92 J. Sánchez-Oro et al. / Electronic Notes in Discrete Mathematics 47 (2015) 85 92 the art for the DMAP. Acknowledgment This research has been partially supported by the Spanish Ministry of Economía y Competitividad, grants ref. TIN2012-35632-C02. References [1] Chimientia, A., Fanucci, L., Locatellic, R. and Saponarac S., VLSI architecture for a low-power video codec system, Microelectronics Journal 33 (2002), pp. 417 427. [2] Duarte, A., L. F. Escudero, R. Martí, N. Mladenović, J. J. Pantrigo and J. Sánchez-Oro, Variable neighborhood search for the Vertex Separation Problem, Computers & Operations Research, 39 (2012), pp. 3247 3255. [3] Duarte, A., J. J. Pantrigo, E. G. Pardo and J. Sánchez-Oro, Parallel variable neighbourhood search strategies for the cutwidth minimization problem, toappear in IMA Journal of Management Mathematics, DOI:10.1093/imaman/dpt026, (2013). [4] García López, F., B. Melián-Batista, J. A. Moreno-Pérez and J. M. Moreno-Vega, The Parallel Variable Neighborhood Search for the p-median Problem, Journal of Heuristics 8 (2002), pp. 375 388. [5] Hansen P., N. Mladenović and J. A. Moreno-Pérez, Variable neighbourhood search: methods and applications, Annals of Operations Research, 175 (2010), pp. 367 407. [6] Julien, N., J. Laurent, E. Senn and E. Martin, Power consumption modeling and characterization of the TI C6201, IEEE Micro 23 (2003), pp. 40 49. [7] Pardo, E. G., N. Mladenović, J. J. Pantrigo and A. Duarte, Variable Formulation Search for the Cutwidth Minimization Problem, Applied Soft Computing, 13 (2013), pp. 2242 2252. [8] Sánchez-Oro, J., J. J. Pantrigo, A. Duarte, Combining intensification and diversification strategies in VNS. An application to the Vertex Separation Problem, Computers & Operations Research, 52 (2014), pp. 209 219. [9] Sevaux, M., A. Rossi, M. Soto, A. Duarte and R. Martí, GRASP with Ejection Chains for the dynamic memory allocation in embedded systems, Soft Computing 18 (2014), pp. 1515 1527. [10] Soto, M., A. Rossi and M. Sevaux, A mathematical model and a metaheuristic approach for a memory allocation problem, Journal of Heuristics 18 (2011), pp. 149 167.