Research Proposal - Software Engineering — Supervisor: Dr. Sarah Nadi
The Problem Statement and Background
Reducing Power Consumption has become a challenging concern in cloud systems, and is expected to become more and more important in the near future. Cloud systems are the main structure of most of the modern businesses in the growing area of Information and Communication Technology (ICT) \cite{columbus} \cite{maney}. There are many efforts to overcome the challenge of power consumption in cloud systems from both hardware technologies and Software methodologies perspectives. While hardware solutions such as integrating with smart grids are costly \cite{Wang_2014}, software engineering provides effective and inexpensive solutions to the challenge of energy consumption in smart grids \cite{Beik_2012}. One of the most well-known paradigms for building software systems is Software Product Line Engineering (SPLE) \cite{B_ckle_2005} , which divides the software into multiple reusable components. After this, different combinations of these components lead to different variations of the software versions, which diff in both functional and non-functional characteristics; such as the amount of power used for solving the same task on the same hardware platform.
The Proposed Solution and Methodology
The proposed method is based on designing a mathematical model to learn a mapping from the features of the software to the power consumption. We aim to investigate the benefits of using deep neural networks in this application. The target system determines whether a specific configuration is acceptable from the power consumption point of view so that it can be seen as a solution to a classification problem. The main steps of the proposed method are as follows. First, we create a dataset for cloud systems containing the software configurations as the features of training data, and power consumption of the corresponding system as the desired output. Second, we extract a set of meaningful and independent features by considering the causal network. Third, we employ representation learning \cite{Bengio_2013} for creating a novel feature space. We aim to investigate the benefits of using deep neural networks in this application. Finally, we design and train a classifier for the training data set by considering the causal relations as a priori.
Contributions
There are two main contributions in this paper as follows:
- We introduce a new representation of data by considering the causal relationships between the raw data.
- A novel classifier is designed to use the causality network as the apriori.
Relevant Accomplishments
Our background covers the main directions of our proposed methodology. A successful usage of deep learning for dynamic systems is introduced in \cite{Souzanchi_K_2016}. Although the application of this work is not relevant to the field of software engineering and cloud systems, the formulation is quite similar. Furthermore, we proposed an effective representation learning technique for classification \cite{Owhadi_Kareshk_2015} which can generally be employed for any classification problem. Finally, we introduced a novel method for classification of complex data \cite{Owhadi_Kareshk_2015a}.