AuthorDipanzan, Sarwat Islam
MetadataShow full item record
AbstractSoftware efficiency has taken a toll in recent times and code quality and optimization is often an afterthought nowadays. Also there exists no standard operating system support or unified tooling to gather fine grained energy consumption data about source code. Current tooling that exist tackles this problem by running the entire process/application as a whole, therefore localizing the exact part in source code is a blind endeavour. It is also time consuming and expensive to improve such efficiency concerns during the development phase. Coupled with the fact that recent hardware leaps has made it possible to write non-performant software to run relatively fast without much regards to code efficiency. The downside to this phenomenon is that, the hardware compensates for bad code quality by using far more resources increasing energy usage. In this thesis, we focus on an energy centric view of running applications and devise tooling to assist the software developer when choosing libraries, frameworks, programming languages and critical architecture designs. We propose a standard unified way of gathering energy consumption data from the operating system kernel and propose two solutions: a kernel energy module and associated energy reading libraries. The objective is to introspect process/applications without massively altering source code. The idea is to probe into source code and gather energy data for comparison against different implementations to create awareness amongst software developers. The tooling is designed to be application and programming language agnostic so that it can infer runtime metrics without much assumption of the underlying software. This allows to gather virtually any scenario and compare software models with different versions, environments and systems. The thesis also does extensive machine-learning tests using different libraries and synthetic datasets to shed light on ML experiments and their energy consumption. Together with these approaches, the developers can make informed decisions about which part to prioritize improvement and achieve greener software.
The following license files are associated with this item:
- Creative Commons