10 IEEE EMBEDDED SYSTEMS LETTERS, VOL. 2, NO. 1, MARCH 2010 Evaluation of Dynamic Profiling Methodologies for Optimization of Sensor Networks Ashish Shenoy, Jeff Hiner, Susan Lysecky, Member, IEEE, Roman Lysecky, Member, IEEE, and Ann Gordon-Ross, Member, IEEE Abstract—To reduce the complexity associated with application- specific tuning of sensor-based systems, dynamic profiling enables an accurate view of the application behavior, such that the network can be reoptimized at runtime in response to changing application behavior or environmental conditions. However, dynamic profiling must be able to accurately capture application behavior without in- curring significant runtime overheads. We present several profiling methods for dynamically monitoring sensor-based platforms and analyze the associated network traffic, energy, and code impacts. Index Terms—Application-specific optimization, design automa- tion, dynamic profiling, sensor networks. I. INTRODUCTION N UMEROUS sensor-based platforms have appeared en- abling a wide range of application possibilities. With each application scenario, developers have a unique set of applica- tion requirements such as lifetime, responsiveness, reliability, or throughput that must be met. For example, a disaster re- sponse application requires high responsiveness and reliability to survey damage or detect survivors, but may only require a lifetime of days or weeks. Conversely, an automated vineyard irrigation system would have a longer lifetime requirement as it is intended to operate on the order of years. To achieve various application goals, developers can tune configurable node-level parameters such as voltage levels, processor mode, or configurable baud rates [4]. Furthermore, developers can also consider numerous protocol-level design choices such as power cycling to sensing units [3], or data aggregation and filtering [5]. While the effects of various pa- rameter configurations have on high-level design metrics have been well documented, balancing these numerous competing metrics remains challenging. To further complicate matters, predicting application behavior is extremely difficult at design time. Tuning the underlying platform to inaccurate applica- tion behavior estimates can yield either suboptimal results or negatively impact the resulting system. Currently, application developers are left to specify application-behavior via an input Manuscript received January 22, 2010; revised March 06, 2010: accepted March 06, 2010. Date of publication March 15, 2010. Date of current version April 26, 2010. This work was supported in part by the National Science Foun- dation, under Grants CNS-0834102 and CNS-0834080. A. Shenoy, J. Hiner, S. Lysecky, and R. Lysecky are with the Department of Electrical and Computer Engineering, University of Arizona, Tucson, AZ 85721 USA (e-mail: ashenoy@email.arizona.edu; jhiner@email.arizona.edu; slysecky@ece.arizona.edu; rlysecky@ece.arizona.edu). A. Gordon-Ross is with the Department of Electrical and Computer Engineering, University of Florida, Gainesville, FL 32611 USA (e-mail: ann@ece.ufl.edu). Digital Object Identifier 10.1109/LES.2010.2045634 file [11], a mathematical model [10], or through synthetic data generation [12]. While a few real-time tools have appeared [9], they are not designed for dynamic profiling and incur significant overhead. To alleviate some of the complexity associated with applica- tion-specific tuning of sensor-based systems, we have begun to develop a dynamic profiling and optimization (DPOP) frame- work. Dynamic profiling and optimization not only reduces de- signer effort, but an automated environment increases accessi- bility to nonexpert application developers by abstracting much of the underlying platform specific knowledge. Dynamic pro- filing enables an accurate view of the application behavior while immersed in its intended environment, eliminating the guess- work of trying to create a “good” benchmark. Furthermore, by profiling applications dynamically, we can monitor how the ap- plication responds to changes in environmental conditions or changes in the underlying platform (i.e., a node is disabled), opening opportunities to dynamically reoptimize and update the underlying platform accordingly. However, such dynamic optimization relies upon accurate profiling results collected at runtime. Currently, an accurate and robust method to capture external application-specific stimuli remains elusive. While many dynamic profiling techniques exist, these techniques are highly specific to their intended system and thus, are quite low level. For example, working set analysis [1] monitors the current set of executing instructions to determine changes in system execution. Kaxiras et al. [6] determines changes in cache requirements using counters embedded within the cache structure, while other methods simply observe current idle periods [2]. Whereas idle period observation is a generalized, high-level mechanism to profile a system, this method, when applied to sensor networks, provides little information on overall system behavior. Furthermore, the distributed nature of sensor-based networks complicate adop- tion of previously developed profiling methods to sensor-based networks. One of the major challenges of dynamically profiling sensor-based platforms is accurately capturing application behavior without incurring significant overhead or significantly altering system behavior. In this letter, we present several profiling methods for dynamically monitoring sensor-based platforms and analyze the traffic/energy/code impacts for two prototyped sensor-based systems. II. DPOP ENVIRONMENT Fig. 1 illustrates the proposed dynamic profiling and opti- mization platform. Three main components contribute to the 1943-0663/$26.00 © 2010 IEEE