Issue No.06 - November/December (2010 vol.36)
pp: 838-851
Brian Doughtery , Vanderbilt University, Nashville
Douglas C. Schmidt , Vanderbilt University, Nashville
Search-based software engineering is an emerging paradigm that uses automated search algorithms to help designers iteratively find solutions to complicated design problems. For example, when designing a climate monitoring satellite, designers may want to use the minimal amount of computing hardware to reduce weight and cost while supporting the image processing algorithms running onboard. A key problem in these situations is that the hardware and software designs are locked in a tightly coupled cost-constrained producer/consumer relationship that makes it hard to find a good hardware/software design configuration. Search-based software engineering can be used to apply algorithmic techniques to automate the search for hardware/software designs that maximize the image processing accuracy while respecting cost constraints. This paper provides the following contributions to research on search-based software engineering: 1) We show how a cost-constrained producer/consumer problem can be modeled as a set of two multidimensional multiple-choice knapsack problems (MMKPs), 2) we present a polynomial-time search-based software engineering technique, called the Allocation-baSed Configuration Exploration Technique (ASCENT), for finding near optimal hardware/software codesign solutions, and 3) we present empirical results showing that ASCENT's solutions average over 95 percent of the optimal solution's value.
Algorithms, computer aided software engineering, optimization methods, distributed computing.
Brian Doughtery, Douglas C. Schmidt, "ASCENT: An Algorithmic Technique for Designing Hardware and Software in Tandem", IEEE Transactions on Software Engineering, vol.36, no. 6, pp. 838-851, November/December 2010, doi:10.1109/TSE.2010.77
[1] M. Abdelhalim and S.-D. Habib, "Modeling Communication Cost and Hardware Alternatives in PSO Based HW/SW Partitioning," Proc. Int'l Conf. Microelectronics, pp. 111-114, Dec. 2007.
[2] M. Akbar, E. Manning, G. Shoja, and S. Khan, "Heuristic Solutions for the Multiple-Choice Multi-Dimension Knapsack Problem," Proc. Int'l Conf. Computational Science-Part II, pp. 659-668, 2001.
[3] E. Alba and J. Francisco Chicano, "Software Project Management with GAs," Information Sciences, vol. 177, no. 11, pp. 2380-2401, 2007.
[4] G. Antoniol, M. Di Penta, and M. Harman, "A Robust Search-Based Approach to Project Management in the Presence of Abandonment, Rework, Error and Uncertainty," Proc. Int'l Symp. Software Metrics, pp. 172-183, Sept. 2004.
[5] A. Barreto, M. Barros, and C. Werner, "Staffing a Software Project: A Constraint Satisfaction and Optimization-Based Approach," Computers and Operations Research, vol. 35, no. 10, pp. 3073-3089, 2008.
[6] E. Barros, W. Rosenstiel, and X. Xiong, "A Method for Partitioning UNITY Language in Hardware and Software," Proc. European Design Automation Conf. with EURO-VHDL, Sept. 1994.
[7] P. Chiu, Y. Chen, and K. Lee, "A Request Scheduling Algorithm to Support Flexible Resource Reservations in Advance," Proc. Canadian Conf. Electrical and Computer Eng., May 2004.
[8] L. Chung, Non-Functional Requirements in Software Engineering. Springer, 2000.
[9] J. Clark and J. Jacob, "Protocols Are Programs Too: The Meta-Heuristic Search for Security Protocols," Information and Software Technology, vol. 43, no. 14, pp. 891-904, 2001.
[10] T.H. Cormen, C.E. Leiserson, and R.L. Rivest, Introduction to Algorithms. MIT Press, 1990.
[11] S. Curtis, "The Magnetospheric Multiscale Mission...Resolving Fundamental Processes in Space Plasmas," NASA STI/Recon technical report N, Dec. 1999.
[12] K. Deb, "An Efficient Constraint Handling Method for Genetic Algorithms," Computer Methods in Applied Mechanics and Eng., vol. 186, nos. 2-4, pp. 311-338, 2000.
[13] R. Dick and N. Jha, "MOGAC: A Multiobjective Genetic Algorithm for Hardware-Software Cosynthesis of Distributed Embedded Systems," IEEE Trans. Computer-Aided Design of Integrated Circuits and Systems, vol. 17, no. 10, pp. 920-935, Oct. 1998.
[14] C. Gebotys and M. Elmasry, Optimal VLSI Architectural Synthesis: Area, Performance and Testability. Kluwer Academic Publishers, 1992.
[15] J. Gosling, Introductory Statistics. Pascal Press, 1995.
[16] M. Harman, "The Current State and Future of Search Based Software Engineering," Proc. Int'l Conf. Software Eng., pp. 342-357, May 2007.
[17] M. Harman and B. Jones, "Search-Based Software Engineering," Information and Software Technology, vol. 43, no. 14, pp. 833-839, 2001.
[18] P.-A. Hsiung, P.-H. Lu, and C.-W. Liu, "Energy Efficient Co-Scheduling in Dynamically Reconfigurable Systems," Proc. Int'l Conf. Hardware/Software Codesign and System Synthesis, pp. 87-92, Oct. 2007.
[19] P. Huber, Robust Statistics. Wiley, 1981.
[20] T. Ibaraki, T. Hasegawa, K. Teranaka, and J. Iwase, "The Multiple Choice Knapsack Problem," J. Operations Research Soc. of Japan, vol. 21, pp. 59-94, 1978.
[21] O. Ibarra and C. Kim, "Fast Approximation Algorithms for the Knapsack and Sum of Subset Problems," J. ACM, vol. 22, no. 4, pp. 463-468, 1975.
[22] S.E. Institute, "Ultra-Large-Scale Systems: Software Challenge of the Future," technical report, Carnegie Mellon Univ., June 2006.
[23] M. Islam, M. Akbar, H. Hossain, and E. Manning, "Admission Control of Multimedia Sessions to a Set of Multimedia Servers Connected by an Enterprise Network," Proc. IEEE Pacific Rim Conf. Comm., Computers, and Signal Processing, pp. 157-160, 2005.
[24] M. Kim, S. Banerjee, N. Dutt, and N. Venkatasubramanian, "Design Space Exploration of Real-Time Multi-Media MPSoCs with Heterogeneous Scheduling Policies," Proc. Int'l Conf. Hardware/Software Codesign and System Synthesis, pp. 16-21, 2006.
[25] E. Lagnese and D. Thomas, "Architectural Partitioning for System Level Design," Proc. Int'l Conf. Design Automation, pp. 62-67, June 1989.
[26] S. Martello and P. Toth, "Algorithms for Knapsack Problems," Surveys in Combinatorial Optimization, vol. 31, pp. 213-258, Elsevier Science, 1987.
[27] P. McMinn, "Search-Based Software Test Data Generation: A Survey," Software Testing, Verification & Reliability, vol. 14, no. 2, pp. 105-156, 2004.
[28] D. Saha, R. Mitra, and A. Basu, "Hardware Software Partitioning Using Genetic Algorithm," Proc. Int'l Conf. VLSI Design, pp. 155-160, Jan. 1997.
[29] Q. Tong, X. Zou, Q. Zhang, F. Gao, and H. Tong, "The Hardware/Software Partitioning in Embedded System by Improved Particle Swarm Optimization Algorithm," Proc. Fifth IEEE Int'l Symp. Embedded Computing, pp. 43-46, Oct. 2008.
[30] Y. Toyoda, "A Simplified Algorithm for Obtaining Approximate Solutions to Zero-One Programming Problems," Management Science, vol. 21, pp. 1417-1427, 1975.
[31] F. Vahid, D. Gajski, and J. Gong, "A Binary-Constraint Search Algorithm for Minimizing Hardware during Hardware/Software Partitioning," Proc. Conf. European Design Automation, pp. 214-219, Sept. 1994.
[32] P. Van Hentenryck, H. Simonis, and M. Dincbas, "Constraint Satisfaction Using Constraint Logic Programming," Constraint-Based Reasoning, MIT Press, 1994.
[33] D. Vanderster, N. Dimopoulos, and R. Sobie, "Metascheduling Multiple Resource Types Using the MMKP," Proc. Seventh IEEE/ACM Int'l Conf. Grid Computing, pp. 231-237, Sept. 2006.
[34] T. Wiangtong, P. Cheung, and W. Luk, "Comparing Three Heuristic Search Methods for Functional Partitioning in Hardware-Software Codesign," Design Automation for Embedded Systems, vol. 6, no. 4, pp. 425-449, 2002.