A refactoring method for cache-efficient swarm intelligence algorithms

With advances in hardware technology, conventional approaches to software development are not effective for developing efficient algorithms for run-time environments. The problem comes from the overly simplified hardware abstraction model in the software development procedure. The mismatch between the hypothetical hardware model and real hardware design should be compensated for in designing an efficient algorithm. In this paper, we focus on two schemes: one is the memory hierarchy, and the other is the algorithm design. Both the cache properties and the cache-aware development are investigated. We then propose a few simple guidelines for revising a developed algorithm in order to increase the utilization of the cache. To verify the effectiveness of the guidelines proposed, optimization techniques, including particle swarm optimization (PSO) and the genetic algorithm (GA), are employed. Simulation results demonstrate that the guidelines are potentially helpful for revising various algorithms.

[1]  Andries Petrus Engelbrecht,et al.  A study of particle swarm optimization particle trajectories , 2006, Inf. Sci..

[2]  David B. Fogel,et al.  Evolutionary Computation: The Fossil Record , 1998 .

[3]  Anant Agarwal,et al.  Column-associative caches: a technique for reducing the miss rate of direct-mapped caches , 1993, ISCA '93.

[4]  Choon Seong Leem,et al.  ACASH: an adaptive web caching method based on the heterogeneity of web object and reference characteristics , 2006, Inf. Sci..

[5]  Norman P. Jouppi,et al.  Improving direct-mapped cache performance by the addition of a small fully-associative cache and pre , 1990, ISCA 1990.

[6]  Sanghamitra Bandyopadhyay,et al.  Multi-Objective Particle Swarm Optimization with time variant inertia and acceleration coefficients , 2007, Inf. Sci..

[7]  Young Jae Lee,et al.  DIG: Degree of inter-reference gap for a dynamic buffer cache management , 2006, Inf. Sci..

[8]  P. Suganthan Particle swarm optimiser with neighbourhood operator , 1999, Proceedings of the 1999 Congress on Evolutionary Computation-CEC99 (Cat. No. 99TH8406).

[9]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

[10]  Joseph A. Fisher,et al.  Predicting conditional branch directions from previous runs of a program , 1992, ASPLOS V.

[11]  Nancy A. Lynch,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[12]  Herman H. Goldstine,et al.  Preliminary discussion of the logical design of an electronic computing instrument (1946) , 1989 .

[13]  Kip Irvine Assembly Language for Intel-Based Computers, Book and CD-Rom (5th Edition) , 2006 .

[14]  Jen-Jou Hung,et al.  An energy efficient re-access scheme for data caching in data broadcast of a mobile computing environment , 2007, Inf. Sci..

[15]  Nicholas Nethercote,et al.  Valgrind: a framework for heavyweight dynamic binary instrumentation , 2007, PLDI '07.

[16]  Mehmed Kantardzic,et al.  Data Mining: Concepts, Models, Methods, and Algorithms , 2002 .

[17]  Hsiang-Cheh Huang,et al.  A Programming Model for Distributed Content-Based Image Retrieval , 2007, Third International Conference on Intelligent Information Hiding and Multimedia Signal Processing (IIH-MSP 2007).

[18]  Douglas W. Clark Pipelining and performance in the VAX 8800 processor , 1987, ASPLOS 1987.

[19]  Kip Irvine,et al.  Assembly Language for Intel-Based Computers , 1998 .

[20]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[21]  David A. Patterson,et al.  Computer Organization and Design, Fourth Edition, Fourth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design) , 2008 .

[22]  Petr Tuma,et al.  Investigating Cache Parameters of x86 Family Processors , 2009, SPEC Benchmark Workshop.