 So the first speaker is Anu Deepa from Unicef Buffer, she's going to tell us about how we can do energy measurements better. Thank you. Hi there. So I'm going to talk about the missing numerator, or in other words, the need for a different perspective when it comes to solving energy management problems for personal mobile devices such as smartphones. Now, it's obvious that mobility is the most important feature for smartphones, right? But these devices are battery powered. So in a way you can say that the biggest enemy of mobility is the charger, because if your phone spends most of the time plugged into the wall, then mobility kind of becomes a mute point, right? And then comes in the human factor. All users have this varied charging behaviors, varied app usage behaviors. So when you consider all these three factors, you get a problem called energy management problem. How to manage energy as a resource so that users can use smartphones to the best of its potential. So this is a very important field, and it says so when research feels as well. Substantial work has been done to find out new, better methodologies to get energy measurements like collect data from devices in a fast and efficient manner to design robust power models that predicts energy consumption at the per app, per component level, get tools that kind of points out energy anomalies and so on. So given this rich contribution, you should be able to answer some simple energy consumption related questions that have good influence on energy management decisions, right? Now, let's answer some of the questions. Say, for example, comparing apps. Now, if you're using an Android phone, then your battery settings will show something like this. App A, app B, two apps running on your phone, maybe for roughly the same period, and they consume energy like app A consumes 31%, app B consumes 21%. Given this information, can you comment something about app A and app B's energy behaviors? For example, energy efficiency, which is more efficient? I'd argue that this is a very hard question to answer, because we do not know anything about these app A's and app B's. They can be from very different categories, like one can be a video track point like Skype, which uses energy intensive components like video, high usage of network, and the other can be relatively lightweight app like Google Key, with relatively low computation and network usage again. Make this problem a little bit simpler. Let's not look at the whole app space. Let's take two apps, different apps, from the same category. Then can we make a comment about the energy efficiency given the same value that app A consumes this percentage of energy and app A consumes something else? I'd say it's still very hard, because these two apps can belong to, say, music streaming, like Spotify and Pandora, but one app might be playing songs offline while the other one is streaming music from using the network. So the usage is different, hence their energy consumption is different. So just based on energy measurement value, it's hard to answer questions like how to compare apps running, same app running on two different devices, or even comparing same app on same user's device for different time intervals is hard to do. And this is why we see this obvious disconnect between researchers and real world users. On one hand, we have the really cool, awesome tools that does accurate energy measurements, but on the other hand, we have real users who are always clearly dissatisfied with the results that they get from currently implemented energy management policies. Now why is this obvious gap? Maybe because we often think that energy management is equivalent to energy measurement, which definitely is not the case. Energy measurement is an important component of energy management, but managing energy is not just maximizing battery lifetime. It needs to cater to also those situations where you are fine with your battery lifetime. And then answer the question about how to allocate system resources between different apps so that you get the best performance of the apps that you love the most while compromising on the performance of the apps that you don't really care about. Relating performance to energy is hard if you want to do just based on energy measurements, it's not enough. This is where it comes in, the missing numerator. We believe that we are living out on some important information, which along with these energy measurement values can provide some important information about the app. We propose that this missing numerator is basically a measurable value of app. So if you can measure a value for each app, then along with the energy consumption value, you can compute the energy efficiency for that particular user at that particular time. Now how will this numerator help us? It will help us answer the questions we were discussing just right now. For example, comparing apps. Because now you have value for app A, app B. Now you can compute the energy efficiency values for app A and app B. Now it's possible to compare these two apps because they are on the same ground, common ground. But then comes the question, value sounds like a very vague concept. Does it really exist? Let's find out. I made the assumption that most of you are using smartphones and you have multiple apps installed on your smartphones. Let's say you guys are going to be the energy managers of your phone for today. So you have to allocate some sense of energy quota to all the apps that you want to use in such a way that in one discharging cycle, if your app runs out of the quota allocated to it, then it won't be able to use the app anymore unless and until you charge your phone. Now will you be able to do that? We're not looking for the correct or the most optimal distribution of energy quota. What I'm trying to say is that will you be able to relatively assign larger quota to certain apps compared to some other apps? For example, I would assign a large chunk of energy to apps that I use like Gmail or Facebook and might ignore apps like some games that I have installed with hardly played. So here we're intuitively assigning value to these apps based on our past experiences or the importance. And based on this sense of value, we can rank the apps from most preferred to least preferred. And most probably we will be allocating larger quota of energy to these most preferred apps while compared to the least preferred ones. So there is a sense of value of an app that already exists. But then comes the question, how do we measure this value? Unfortunately, that's a very hard question and we really don't have any one right answer to this. Okay, maybe we will not come up with the correct way to measure value but we can come up with some simple value measures, right? So we created a value measure which soon proved to be failed but I'll come to that. So we said that for us value is content delivered by app. As if your app is delivering video or audio content then most probably it's more important to you than those apps which don't deliver information via video or audio. So we use screen refresh rate as a parameter to measure video content and audio bitrate to measure audio content. We say that one frame of video gives you more information than one frame of audio so we assign more weight to video to screen refresh rate than to audio bitrate. We instrumented the Android platform to log all these screen refreshes, audio bits that are being played, energy consumption values at per app level. And distributed this platform across phone lab users which is a test fit of having around 250 users using Nexus 5 smartphone and located at a university at Buffalo. So we collected data over two months and then we calculated for each of the apps that we saw in this entire study for simple metric. Now what are these metric? The first is usage phase metric which is basically total energy consumption of an app. There is no sense of value here. Then we have the power metric which is total energy consumed by the app divided by total running time of that. Then we have foreground energy efficiency metric where we only considered the time when that app was in the foreground and the energy consumed when the app was in foreground. Here by foreground I mean screen foreground. And the fourth one is the content efficiency metric that we were just discussing about. So based on these metric, we ran all the apps from having, so we got the top 10 apps which are the highest value for each of these metric and bottom 10 apps which are the lowest value for each of these metric. Let's try to compare these apps. Are they similar when you look across different metric? Apps like Google search, they consumed a lot of energy and their consumption rate is also pretty high. Some other apps, though they consumed a lot of energy, they were very efficient under our foreground efficiency metric and content efficiency metric. Then we have other apps like YouTube, Twitter, which fared pretty well under both the efficiency metrics. But one thing to be noted here, it's that YouTube, now it might be the case that YouTube does a good job of efficiently delivering content, but it might be also the case that maybe it was not delivering video pretty well, it was buffering. But if you think about it, the buffering icon is kind of dynamic, it will create lots of screen refreshers. So we might have ended up overballing this screen refreshers and that is why maybe YouTube or Candy Crush Saga which was another game, these have ranked pretty well under this metric. Then we come to the bottom 10 apps. Here, apps like these, they consume energy pretty fast but over the whole test, they have consumed much less energy. Apps like Chrome browser and WhatsApp passenger, though they have consumed a lot of energy, they rank to the top 10 under usage base metric, they consumed energy at a very lower rate. Then there are other apps which these apps consumed energy at a faster rate as well as they didn't do well under the foreground efficiency metric. Now under the concept of efficiency metric, this is interesting to note that the better apps did the very bad job. Maybe because they did not necessarily provide dynamic information. They provide the important information but they are static so they don't necessarily create a lot of screen refreshers, hence they get undervalued in this metric. Now the second part of our experiment was the survey that we distributed among our users where we asked them that of the nine apps, which ones are you willing to uninstall to improve your battery life? Three apps that were least efficient based on content metric, three apps consume which consume most energy, and three apps that have been randomly selected from the apps that were installed by the user. And we get this. Let me explain you the graph. The x-axis has the responses, we got 47 responses from our sub-users, and the y-axis is the score. Now how do we decide the score? We give one point if the user says yes to uninstalling an app. Point five if the user chose the option maybe, and zero if the user said no to uninstalling an app. Then we compute the aggregate for both the metric, and if one metric has higher score than the other, then we say that it's a win for the former metric. So here we see that we do not have an overwhelming win for the efficiency based metric, which is basically the content efficiency metric. And hence we cannot really conclude that our way of measuring value was really good. But it was not completely a failed attempt because we realized some of the mistakes we learned few lessons. For example, we realized that our way of measuring video content is not really good. We need to find better ways to compute content because content is really interesting. We still believe that it is a good way to understand how valuable an app possibly could be to a user. But we need to figure out ways so that we can differentiate frames between frames which provide information and which do not provide important information. Then from our approach we realize most probably simple metrics won't work. We need a complex approach. And also uninstalling apps might be too extreme of a thing to ask. Even if users agree to your sense of what is least valuable to them, they may not be willing to remove the app completely. So some of the ways to compute value, one can be looking at the background component. So basically your app usually have a background component that runs periodically and provides information via notification. Maybe looking at how many times you ignore notification gives you an idea how important that background work was. If it was not important, maybe you can decrease the frequency of that background service. Foregrounds usage means you want to look only at the time when the user is interacting, how they are interacting, how many times they are launching an app, or how long they were using the app can give you some insights about the possible value of the app. User behavior, profiling, what kind of apps the user usually installs or how they usually interact with different apps can provide you some kind of an idea about what sort of an app they are willing to associate more value with. Now, evaluating this different value measure is also difficult. How will we know which value measure is better than the other? There is no ground truth. So we created a framework called Hewler which exposes energy management mechanisms from the operating systems to the user space. So basically you can take up Rising Energy Managers' app, implementing these different sensor value measures, and you can basically deploy in real world and see which one gives you better results. So this brings us to the end of this talk where we basically try to show you that energy management is not only about energy measurement. We need more information in the form of a per app per user temporarily variant value measure in order to make smart, effective energy management choices. And it's a hard problem to solve and we do not know the right way to measure it, but we believe that this is an important problem to solve and maybe all of us can brainstorm and think about it and come up with the right way to measure value. Thank you and I would be interested in taking questions or solutions. I forgot to mention that Anu Deepa is a third year Ph.D. student at Buffalo, by the way. Hello, Denizzi from University of Colorado at Boulder. So interesting talk, thank you very much. And there is certainly a lack of like real precise measurements of value and energy and related them. So my question is about where do you see like eventually when this like becomes a system or an app? Where do you see it within the, how does it fit within the current ecosystem for Android or iOS? What I mean by the ecosystem like there's an operating system and there's the App Store or the Google Play. Is it going to be like an app that the user will install that will aid them? Okay, so you mean how this value measure is going to help? So it's like wherever you are right now making the energy management policies based on just energy measurement values. Be it in an operating system there or you want to use it as an energy measure app. What we are saying is that just basing it on energy measurement values or consumption values may not be the right way to make decisions about how to allocate your system resources between different apps. For example, I might want my phone to use whatever charge available. For say Gmail or Facebook which I use a lot. Not necessarily for these games which I have installed but never used. Because you often see those notifications they come right? For this apps that you have installed long before. So they are using the energy to do computation which you necessarily don't want as a user. Let me just clarify my question. What I mean here is that sometimes the information is hidden from the user for a reason. The app developers or the companies that develop the apps might not be happy or feeling like this information. Like building a system that can measure the energy consumption and give the user the option to throttle let's say the apps. I imagine that might be a problem for applications, developers or companies and also maybe for the operating system itself. So currently if you want to measure the energy of a certain process you hook up power source and you get the current drain. Because sometimes the API to measure the current drain from the battery is actually taken out. And I think that is taken out for a reason because it reveals problems with the implementation of the operating system. That's what I think. Yeah true but again what I'm trying to say is that right now the phone does not have energy management right? It gets conservative maybe about the frequency in which it will rate the Wi-Fi out for a particular app or function or something right? It does the energy management already in your phone but how does it manage the energy? It's based on this consumption values. Your phone can measure energy consumption maybe not the accurate one but it does some sense of energy measurement for the apps that are installed in your phone already. And it makes the decisions based on those information. But we are saying that what it is already doing based on just measurement value because measurement is already there. It's not something that is hidden from the user or hidden from the system. The system is measuring energy consumption of different apps. If you run an app for long the current Android platform it also tells you this app is running for too long and it's not being used so you may want to close it. So the system is using the measurement values. What I'm saying is that just using the measurement values maybe you're not making the smart choices the operating system. So the measurement values are already there. What we are saying is that you need a sense of how valuable an app is to the user to make smarter decisions inside the phone. Yeah, thank you very much. Yeah, nice work. Brad Gamble from New Jersey Michigan. I was curious so what do you think is the most promising way forward to calculate value? I think the content has got a lot of potential. Like what kind of information that app is provided. But the problem is that again with information there are certain apps that will not fall into this like the weather trailer pedometers. It has a very intensive background service but not necessarily you open the app a lot of times. So if you try to calculate the value just based on content or just based on number of the time period when it was running you might be penalizing these other categories of apps. But we believe if you can kind of combine maybe content with the number of times you're launching the app maybe you're routinely launching the app. Maybe you're using the app only once in a day but if you keep using it every day then maybe it's valuable to you. So we do not know the right way to do it. It sounds like it's not about the one specific thing it's about coming up with a way to combine the different things. Sure because if you think about only one specific thing you would often ignore some other categories of apps.